探索性测试的实施与理解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

探索性测试的方法探讨

陕西西安XXXX学院XXXX

摘要传统的面向故障的软件测试方法存在限制条件高精确程度与低误报率无法兼得的瓶颈效果。而高误报率直接导致软件测试成本的增加和效率的低下。本文通过对探索性测试方法的研究中得出该方法的使用场合与特点,从而希望能在有限的软件测试成本内找出与脚本测试相结合的最佳方法,利用探索性测试,能显著提高软件测试的效率。

关键词软件测试探索性测试测试方法缺陷效率

引言

随着软件测试技术的不断发展,各种新颖的测试技术越来越受到软件测试人员的关注。探索性软件测试是其中一种比较前沿的理论,尤其适用于那些要求在短时间内发现被测软件一些重要缺陷或事先没有能够进行详细测试设计的情况。探索性软件测试强大的缺陷发现效率是其得到众多青睐的重要原因之一。如何选择合适的测试方法?我们针对三种测试方法(脚本测试,探索性测试和自动化测试)区别以及他们之间的合作关系展开一定的讨论。

1调研目的

1.1软件测试现状和问题

软件测试是软件开发生命周期中不可或缺的用来保证软件质量、提高软件可靠性的重要阶段。基于传统理论的软件测试,理论上都要求尽可能早地引入软件测试过程。而在实际的测试过程中,我们所遇到的问题很多:首当其冲的就是长期处于瀑布模型下的软件工程,将测试工作安排并推迟到了开发周期结束阶段进行,导致大量的测试工作,包括功能测试、集成测试以及性能测试都堆积到了末期进行。其次,没有有效地利用自动化测试这一先进技术也是目前软件质量备受质疑的关键因素。虽然很多公司都非常推崇软件测试自动化这一理念。可真正用到实处能够事半功倍的毕竟不是很多。第三,需求变更得频繁性也是一个让项目经理头大的问题。客户一改再改的情况,绝对不是少数。再加上项目进度、客户压力等其他其他因素,测试工作的时间和内容被一压再压地缩减。这样恶性循环,谁也不敢保证软件质量。如何在减少重复性的测试工作的同时,发现尽可能多的软件缺陷,并利用有效的自动化测试降低成本,同时还能够及时高效的覆盖到这

些变更的需求。这些正是想要帮助大家解决的问题。

1.2探索性测试

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

2三种测试方法的比较

2.1探索性测试与脚本测试

传统手工测试通常是完全按照预先设计好的测试步骤一步一步人工验证所有想要验证的功能。但是人非万人,总有缺漏。因此对于探索性测试的重要性是要予以肯定的。国内外学者对探索性测试和脚本测试方法的缺陷发现率和测试成本进行比较,如下表1所示。

表1实验数据分析

以上实验数据是我们国内的学者通过很多次对比试验得出的结果。接下来,我们再来看一组国外研究学者们整理的数据报告,表2。

表2缺陷数据

表3缺陷数据难度分布

我们可以观察到以下:首先在传统测试方法中,结合使用探索性测试方法,缺陷的检出率明显高于单一的使用传统测试方法;此外探索性测试能发现更多测试设计以外的缺陷;最后进行探索性测试时,测试人员的经验、态度、思维方法等方面都会影响测试的效果。①外国专家也得出“Defect Detection Effectiveness” (缺陷发现有效率)类似的结论.②

1)有效率:脚本测试和探索性测试的缺陷有效率没有区别。(Effectiveness: ThereisnodifferencebetweenETandTCT.)

2)效率: 探索性测试能高效,因为需要更少的设计工作时间。(Efficiency: ET is more efficient as it requires less designeffort)

3)脚本测试和探索性测试都存在问题,但是他们的问题不同。脚本测试中,对测试用例的质量是需要考量的。同时在探索性测试中对测试活动和测试报告需要进行一定的管理。(Both ET and TCT have problems,but the problems are different in TCT,it is the quality of the test cases,an d in ET,itismanagingthetesting activitiesandreporting.)

2.2探索性测试与自动化测试

自动化测试就是把手工测试的每个步骤用自动化测试工具来实现。好处是不用人来做了,缺点就是机器在执行测试过程中并不会变通。至于什么时候开始自动化测试,什么时候开始探索性测试? 先自动化后探索性,还是反之,就要看项目产品的具体情况了。既然两种方法都有了,为什么我们不也来比较一下他们的

效率和优势呢?首先我们比较手工测试和自动化测试的成本比较。这里有几个数据我们可以一起看一下

表4 手工测试和自动化测试成本表③

表5 某公司自动化测试汇总表

我们可以看到虽然自动化测试大大降低测试工的成本,但不能完全取代手工测试的工作。完全的自动化测试只是一个理论上的目标,实际上想要达到100%的自动化测试是不可能实现的。从数据来看,一个40-60%的利用自动化的程度已经是非常好的了。

3三种测试方法的结合

各种数据可以告诉我们,脚本测试和探索性测试各有所长、相辅相成,不可能互相取代对方的作用。我们需要做是找到脚本测试和探索性测试的最佳结合点,实现优势互补,更好的完成测试任务。理论上,脚本测试应该可以进行探索性测试所能做到的所有测试工作,但是脚本测试不可能涵盖所有的测试,原因很简单:这些已经实现制定好的测试用例或者测试脚本,会规定了明确死板的输入和输出。如果想要设计好所有可能性的用例,又会有太多重复性的工作和庞大的文档工作放在面前。如果想发现和业务逻辑有关的系统缺陷,那么测试人员所实施的手工测试才是理想的选择。因为它充分调动了测试人员的聪明才智,能够设计出符合真实情况的场景和案例。如果再用自动化测试代替这些手工测试,那么我们即能提高覆盖率又能降低成本。考虑采用自动化测试,尽可能的增加多的适用的测试

相关文档
最新文档