快速测试是指通过分析测试质量成本、时间人员、风险等因素,明确测试内容及测试方法,从而提高测试效率。
Dr. Cem Kaner、Doug Hoffman、Jonathan Bach等软件工程专家提出了快速测试理论。该理论提出了启发式测试策略模型,通过基于风险的程序、测试覆盖率和测试预见等的研究,得出启发式的测试结论。该测试能提高测试效率,但是该模型对测试人员的要求较高,且没有考虑到模块间的耦合程度,难以解决系统版本基本稳定,但是由于需求变更导致的小版本变化所引起的快速测试需求。
1. 快速测试影响因素
快速测试包括四方面的影响因素,包括风险等级、模块关联度、质量成本、及时间人员。
(1)风险等级
风险主要表示局部改变对于整个系统稳定的影响程度,根据影响的大小,可以划分不同的风险等级,如高、中、低、无风险等。局部的改变包括需求变更、功能增加、功能修改、功能删除等。显然,风险等级越高的改变,则成为重点测试内容。而风险等级很低或者基本无风险的改变,则可以考虑少测或者不测。
(2)模块关联度
模块关联度指被测模块与其他模块的耦合程度,可以分为紧耦合、松耦合、无耦合。若一个模块与被测模块紧耦合,说明被测模块的改变会在很大程度上影响该模块,那么该模块也成为测试的内容。若一个模块与被测模块松耦合,那么被测模块改变对该模块影响较小,可以考虑只测试相关接口部分。若一个模块与被测模块无耦合,该模块无需测试。
(3)质量成本
不管是普通测试还是快速测试,质量和成本因素都是必须考虑的。快速测试也应该在满足质量目标的前提下进行。
(4)时间人员
相对于前面的影响因素,时间和人员是快速测试过程中可以较为灵活调整的因素。时间和人员的多少决定了对于那些风险较低或者松散耦合的模块的测试颗粒度。
通过对以上四方面影响因素的指标进行定标、定量,得到既保证质量又快速有效的测试内容的算法,从而指导测试的实施。
2. 快速测试策略
(1)基于风险的测试策略
测试人员应该用风险等级来划分事情和目标先后顺序,按照测试的风险等级和测试时间确定测试内容,不用急于投入资源展开全面的测试活动。
高风险等级的模块或者功能点,测试覆盖率为100%,测试通过率为100%。
中风险等级的模块或者功能点,测试覆盖率为100%,测试通过率为80%。
低风险等级的模块或者功能点,测试覆盖率为80%,测试通过率为60%。
无风险等级的模块或者功能点,可以根据人员和时间情况选择测试程度。
测试按照风险等级由高到低的顺序进行。
(2)基于模块关联度的测试策略
测试人员应根据模块的关联程度设置待测模块的测试颗粒度。
若一个模块与被测模块紧耦合,对该模块的测试要覆盖全部功能点。
若一个模块与被测模块松耦合,对该模块的测试要覆盖其接口及数据交互部分。
若一个模块与被测模块无耦合,可以根据人员和时间情况选择测试颗粒度。
(3)参考质量和成本的测试策略
测试人员应根据要达到的质量目标和需付出的资金、人员、时间等成本因素确定测试内容。
测试成本应该在满足质量目标的前提下,控制人员数量、时间开销及测试费用。
3. 精简测试流程
测试人员设计测试用例时,应根据测试模块的风险等级和待测模块与修改模块的关联程度设计测试用例,并结合项目的质量目标和成本情况粗化部分用例甚至省略部分功能点的测试用例。
(1)测试过程产生测试缺陷记录,只关注致命和严重问题,以及安全的高、中风险。
(2)测试管理过程中侧重交流和沟通,测试的文档要简洁,清晰。
希望通过本文的介绍能给大家带来帮助。
【编辑推荐】