探索性测试的实施与理解_第1页
探索性测试的实施与理解_第2页
探索性测试的实施与理解_第3页
探索性测试的实施与理解_第4页
探索性测试的实施与理解_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、探索性测试的方法探讨陕西西安 XXXX学院 XXXX摘要 传统的面向故障的软件测试方法存在限制条件高精确程度与低误报率无法兼得的瓶颈效果。而高误报率直接导致软件测试成本的增加和效率的低下。本文通过对探索性测试方法的研究中得出该方法的使用场合与特点,从而希望能在有限的软件测试成本内找出与脚本测试相结合的最佳方法,利用探索性测试 ,能显著提高软件测试的效率。关键词 软件测试 探索性测试 测试方法 缺陷效率引言 随着软件测试技术的不断发展,各种新颖的测试技术越来越受到软件测试人员的关注。探索性软件测试是其中一种比较前沿的理论,尤其适用于那 些要求在短时间内发现被测软件一些重要缺陷或事先没有能够进行详

2、细测试设计的情况。探索性软件测试强大的缺陷发现效率是其得到众多青睐的重要原因之一 。如何选择合适的测试方法?我们针对三种测试方法 (脚本测试,探索性测试和自动化测试) 区别以及他们之间的合作关系展开一定的讨论。 1 调研目的 11 软件测试现状和问题 软件测试是软件开发生命周期中不可或缺的用来保证软件质量、提高软件可靠性的重要阶段。基于传统理论的软件测试,理论上都要求尽可能早地引入软件测试过程。 而在实际的测试过程中,我们所遇到的问题很多:首当其冲 的就 是 长期处于瀑布模型下的软件工程,将测试工作安排并推迟到了开发周期结束阶段进行,导致大量的测试工作,包括功能测试 、集成测试以及性能测试都堆

3、积到 了末期进行。其次,没有有效地利用自动化测试这一先进技术也是目前软件质量备受质疑的关键因素。虽然很多公司都非常推崇软件测试自动化这一理念。可真正用到实处能够事半功倍的毕竟不是很多。第三,需求变更得频繁性也是一个让项目经理头大的问题。客户一改再改的情况,绝对不是少数。再加上项目进度 、客户压力等其他其他因素,测试工作的时间和内容被一压再压地缩减。这样恶性循环,谁也不敢保证软件质量。 如何在减少重复性的测试工作的同时,发现尽可能多的软件缺陷, 并利用有效的自动化测试降低成本,同时还能够及时高效的覆盖到这些变更的需求。这些正是想要帮助大家解决的问题。 12 探索性测试 探索性软件测试是不同于传统

4、方法的测试技术,在某些情况下,它比脚本测试更高效。尤其适用于那些要求短时间内,或者在频繁的需求变更下发现被测试软件重要缺陷的情况。其实每个测试工程师都在不知不觉地使用探索性测试方法。其定义由James AWhittaker提 出:测试 人员在测试应用程序中可以天马行空的想怎么测试就怎么测试,利用程序所提供的信息自由发挥,没有限制,不受任 何约束的探索程序各个功能,借由这一方法来发现测试用例以外的软件错误。 探 索性测 试,就是对手工测试用例加上自动化测试用例的一种补充。如果说手工测试和自动化测试在整个测试过程中70,那我们所希望的就是通过探索性测试,能够将我们所忽略或者遗漏30覆盖到大部分。1

5、00的覆盖测试是不可能的。我们能做的就是通过各种测试途径、测试方式,包括单元测试代码,代码覆盖率工具等,尽可能的提高我们测试的覆盖范围。 2 三种测试方法的比较 21探索性测试与脚本测试传统手工测试通常是完全按照预先设计好的测试步骤一步一步人工验证所有想要验证的功能。但是人非万人,总有缺漏。因此对于探索性测试的重要性是要予以肯定的。国内外学者对探索性测试和脚本测试方法的缺陷发现率和测试 成本进行比较,如下表1所示。 表1实验数据分析测试方法报告缺陷检出缺陷检出预埋缺陷测试成本脚本测试29221100探索性测试2620375两者结合3023480 以上实验数据是我们国内的学者通过很多次对比试验得

6、出的结果。接下来,我们再来看一组国外研究学者们整理的数据报告,表2。 表2缺陷数据 测试方法#Defect#Defect- mean#Defect-St.devET405.472.148TCT446.062.310Total465.762.239表3缺陷数据难度分布ModeET#%of ETTCT# %of TCTET/TCTTotal%of all0 easiest2810%309.7%93.3%589.8%112343.8%12139.2%101.7%24441.4%211842%14246.0%83.1%26044.1%3 hardest124.3%165.2%75%284.7%Tota

7、l281100%309100%90.9%590100% 我们可以观察到以下:首先在传统测试方法中,结合使用探索性测试方法,缺陷的检出率明显高于单 一的使用传统测试方法;此外探索性测试能发现更多测试设计以外的缺陷;最后进行探索性测试时,测试人员的经验、态度、思维方法等方面都会影响测试的效果。 【1】 朱昭俊,苏赛探索性测试方法分析计算机光盘软件与应用.外国专家也得出 “Defect Detection Effectiveness” (缺陷发现有效率) 类似的结论. 【2】 Exploratory and Test-case based Software Testing, 2013 1) 有效率:

8、脚本测试和探索性测试的缺陷有效率没有区别。(Effectiveness: There is no difference between ET and TCT.) 2) 效率: 探索性测试能高效,因为需要更少的设计工作时间。(Efficiency: ET is more efficient as it requires less design effort) 3) 脚本测试和探索性测试都存在问题,但是他们的问题不同。脚本测试中,对测试用例的质量是需要考量的。同时在探索性测试中对测试活动和测试报告需要进行一定的管理。(Both ET and TCT have problems,but the pr

9、oblems are different in TCT,it is the quality of the test cases,an d in ET,it is managing the testing activities and reporting.) 22 探索性测试与自动化测试 自动化测试就是把手工测试的每个步骤用自动化测试工具来实现 。 好处是不用人来做了,缺点就是机器在执行测试过程中并不会变通 。至于什么时候开始自动化测试,什么时候开始探索性测试? 先自动化后探索性,还是反之,就要看项目产品的具体情况了。既然两种方法都有了,为什么我们不也来比较一下他们的效率和优势呢?首先我们比较手

10、工测试和自动化测试的成本比较。这里有几个数据我们可以一起看一下 表4 手工测试和自动化测试成本表 【3】 史永莉,陈元琰,罗晓曙等 软件自动化测试方案的效益分析田微计算机信息 【4】 徐晖,计算机软件测试技术与深度开发应用探讨 【5】 李翼,陈创,计算机软件测试技术浅谈附录a 探索性测试的优势列举: 1. 它可以鼓励测试人员的创造性 2. 它增加了发现新的或者难以发现的bug。 3. 它允许我们有更多的时间去测试感兴趣的和比较复杂的用例 4. 它可以更有效率的驱使测试人员在一个很短的时间内找到更多的bug和对AUT做一个快速的评估 5. 它显示了一个产品是如何被使用的 6. 它具有非常好的适应

11、性,灵活性,多样性 7. 它比ST更有乐趣 8. 它可以促使测试人员快速的学习一个产品 9. 它可以check其他测试人员的测试工作 10. 它可以很好的应用在敏捷测试项目 11. 它允许我们不用花很多时间在编写那些简单和繁琐的测试用例手工测试软硬件成本开发成本执行成本维护成本手工024184自动1009626表5 某公司自动化测试汇总表ProjectAutomation testing %Manual testing %ToolsTesting developingProject 165%35%Jmeter1:8Project 260%40%LoadRunner1:5Project 360%

12、40%LoadRunner1:5Project 4100%90%LoadRunner1:10 我们可以看到虽然自动化测试大大降低测试工的成本,但不能完全取代手工测试 的工作。完全的自动化测试只是一个理论上的目标,实际上想要达到100的自动化测试是不可能实现的。从数据来看,一个40-60的利用自动化的程度已经 是非常好的了。 3 三种测试方法的结合 各种数据可以告诉我们,脚本测试和探索性测试各有所长、相辅相成 ,不可能互相取代对方的作用 。我们需要做是找到脚本测试和探索性测试的最佳结合点,实现优势互补,更好的完成测试任务。理论上,脚本测试应该可以进行探索性测试所能做到的所有测试工作, 但是脚本测

13、试不可能涵盖所有的测试,原 因很简单:这些已经实现制定好的测试用例或者测试脚本,会规定 了明确死板 的输入和输出。如果想要设计好所有可能性的用例,又会有太多重复性的工作和庞大的文档工作放在面前。如果想发现和业务逻辑有关的系统缺陷 ,那么测试人员所实施的手工测试才是理想的选择。因为它充分调动了测试人员的聪 明才智,能够设计出符合真实情况的场景和案例。如果再用自动化测试代替这些手工 测试, 那么我们即能提高覆盖率又能降低成本 。考虑采用自动化测试,尽可能 的增加多的适用的测试用例期望通过有线的测试找出尽可能多的软件缺陷我们可以使用不同的等价划分法 、边界值分析方法 边界值分析法就是对输入或输出的边

14、界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。,以及白盒测试里的程序控制流分析、数据流分析 、逻辑覆盖 、域覆盖、符号覆盖等其他方式来增加自动化测试的覆盖率。 在真实情况中,在手工测试的过程中已经或多或少使用到探索性测试了。将探索性测试执行过的步骤,加入到脚本测试用例 中 ,或者加入到 自动化测试中。在下一轮的测试中通过各种方式覆盖这个测试,同时测试人 员腾 出手来做其他的探索性测试,这样循环往复,才能真正利用好探索性测试这个方法。 4 结论 任何一种偏向性的软件测试方法,都不能满足当今对软件测试质量越来越 高的用户要求。利

15、用探索性测试能显著提高软件测试的效率。探索性软件是对传 统测试方法的补充,它只在 特定的环境和要求下使用才能达到最好的效果。这是对测试人员根据现实情况进行的一种主动测试, 需要测试人员具备更好的专业素质。需要在有限的时间中选择并做出正确的事情,需要有明确的战略和方 向但是有必须预留一定的空间和时间让每个测试人员的大脑可以充分运作起来,在测试的过程中随机应变。探索性测试鼓励着测试人员边测试边计划,运用测试 中收集到的信息,影响自己正在进行测试的实际方式。测试人员在执行脚本测试的同时,将探索性测试的信息添加到脚本测试的脚本中,以保证下次不遗漏 。尽可能的加到自动化测试用例中,加快测试速度,然后我们就会

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论