刘 燕,谢晓妤,刘 岩(中国电子科技集团公司第二十八研究所,南京,210007)
探索式软件测试方法分析
刘 燕,谢晓妤,刘 岩
(中国电子科技集团公司第二十八研究所,南京,210007)
摘要:本文将从探索式软件测试的定义、思维模式和特点上进行阐述,论述如何制定优质的探索章程以及探索式软件测试的应用和未来前景。
关键词:探索式测试;探索式思维过程;探索章程
软件已经与我们的生活息息相关,软件测试是为了发现软件设计和实现过程中的疏忽,保证软件质量的重要手段。软件测试是与软件进行交互,观察其行为并与预期进行比较。一方面,受数据、交互、顺序、配置、时间等因素影响,事先创建覆盖全部情况的测试集用例是不可能的,另一方面,很多的软件缺陷和软件潜在风险并不是通过事先创建好的测试集用例发现的,软件缺陷需要软件测试人员运用探索式软件测试方法,通过自己的能力进行观察发现潜在风险进行探索。
1.1定义
探索式软件测试不是一个新近刚被提出来的测试技术,也不是一种深奥的技术。事实上,许多测试人员在知觉和不知觉地使用了这种技术。2003年,Jame Bach 给出了探索式测试的一个广泛定义,探索式测试就是同时进行学习和同时进行测试设计和执行。之后2008年,Cem Kaner又给出来探索式测试较为完整的定义,探索式软件测试是一种测试风格,强调个人自由和个人测试的责任,不断优化测试人员的工作质量,把测试学习、测试设计、测试执行和测试结果解析视为相互支持的活动,它们在整个项目过程中并行的运行。
1.2探索式思维过程
探索式软件测试的思维模型简称为CPIE:
收集(collation):测试人员需要收集所有关于被测系统的所有信息,去了解和理解;
划分优先级(prioritization):测试人员需要对所有待测试的任务或模块或特性进行优先级的划分;
分析(investigation):测试人员划分好有效级后,就需要对确定即将测试的任务进行仔细的分析并预测其可能输出的结果;
实施(experimentation):测试人员需要实际的去进行测试,看看测试预期是否正确,信息是否正确,就会循环得影响到收集(collation)阶段。
探索式软件测试强调实施(experimentation)阶段,设计的再好的测试集用例,在没有实际进行测试之前,不知道是好还是不好或者还有没有其它更好的测试思路。同样可以发现CPIE过程是一个循环的过程,在探索式软件测试过程中,设计测试和执行测试是互相驱动和完善的过程。
1.3特点
探索式软件测试的立场是测试人员结合场景真正使用了被测试系统,只有对被测试系统有一定的了解和掌握,才能够有效地对该系统进行测试,在我们没有真正接触一个系统之前,我们很难完全了解这个系统,虽然我们可以在测试计划阶段按照需求或设计要求写出测试方案和测试用例,但写出的测试方案和测试用例的可操作性有可能不强。对这种情况,探索式测试给测试者一个测试思路,如果我们可以在对系统的测试中逐步深入地学习该系统,随着测试人员在测试中对该系统越来越深入地了解,测试人员会注意到哪些情况是系统无法应付自如的,这将指导下一个的测试,这使测试变得更加有效率。
2.1章程含义
测试人员进行探索的终极目标是搜寻那些有价值的信息。有价值的信息可分成三大类:
这就是我们的一个简单的探索章程三段式模板。一个优质的探索章程既能提供给测试人员一个明确的导向,又不会过度细化成了测试用例。但如果探索章程太过于宽泛,无法给问题提供足够的关注,即目标太大,可能永远也完不成探索任务。
2.2制定探索章程
探索章程的制定是在提醒软件测试人员集中精力关注某个特定种类的信息或风险。举例说明,在空中交通管制系统中,管制员是系统用户,对用户可能会做的修改经纬度操作制定一个探索章程,如下所示:
这个探索章程只关注于飞行航线编辑功能,只对经纬度的输入错误时进行探索。如果把资源改成“使用负的经纬度”,那制定的这个探索章程就太具体了,已经没有什么可以探索的了,所以探索章程的制定,是在发现了一个不确定性或者是依赖关系不明确的信息进行探索。
探索式软件测试技术在某些情况下,它比脚本测试更高效,那么在什么样的情况下应用更为高效。
探索式软件测试是测试人员根据现实场景进行的一种主动测试,需要在有限的时间中选择并做出正确的事情,需要有明确的战略和方向,但又必须预留一定的空间和时间使每个测试人员可以充分运作起来,在测试的过程中随机应变。探索式软件测试鼓励着测试人员边测试边计划,运用测试中收集到的信息,影响自己正在进行测试的实际方式。
参考文献
[1]James Bach,Exploratory Testing Explained[EB/ OL],2003.4.(1)http://www.satisfice.com/articles/etarticle.pdf
[2]Cem Kaner,A Tutorial in Exploratory Testing[EB/ OL],2008.4:(36).http://http://www.kaner.com/pdfs/ QAIExploring.pdf
Analysis of test method for exploring software
Liu Yan,Xie Xiaoyu,Liu Yan
(twenty-eighth Research Institute, China Electronic Technology Group Corporation,Nanjing,210007)
Abstract:In this paper,the definition,thinking mode and characteristics of exploratory software testing are discussed,and how to make the quality of the articles of association and the application and future prospects of exploratory software testing are discussed.
Keywords:exploratory testing;exploratory thinking process;exploration of the articles of association