在软件开发过程中,无论是在feature testing还是在final regression testing中,测试策略的好坏在整个质量保证过程中起着至关重要的作用,尤其是在测试资源有限的情况下,影响更为突出。好的测试策略能够更快速的发现软件最有value的缺陷,以便team做出最快的相应。测试策略包括很多方面,比如环境如何搭建,in scope和out of scope,load and performance testing的基准等等。这次我们只讨论测试策略的一个小的分支,即在我们有测试用例(或者指导做测试的mindmap等)和缺乏测试资源的情况下,如何制定我们的挑选策略,下面是我画的一张mindmap:
这里我们的策略是:
优先测试有变更的,其次测试无变更的
优先测试核心功能,其次测试辅助功能
优先测试用户常用情况,其次测试罕见情况
优先测试需求中特别强调的功能点,其实测试需求无特别要求功能点
优先测试具有威胁部分,其次测试安全部分
Ø 优先测试有变更的,其次测试无变更的
这一条是大家在测试过程中经常会用到的策略,比如做新feature,fix bug或者代码重构,都多多少少会对已有产品造成影响,我们一般都会先测试改动的功能是否符合预期,然后转向测试该改动依赖或者被依赖的部分功能是否正常。
Ø 优先测试核心功能,其次测试辅助功能
软件的核心功能是软件的思想,是解决用户痛点的主要部分。辅助功能则是软件的肉体,让软件更加用户友好。所以在条件有限的情况下,我们首先要保证软件能够思考,然后再去保证软件有一个漂亮的肉身(虽说现在是个看脸的社会~)。不如我们测试报表,核心功能是数据能否正确的显示,运算是否正确则是核心功能。报表的风格,字体的选择则是辅助功能。
Ø 优先测试用户常用情况,其次测试罕见情况
用户常用的功能是最有value的地方,那么如何甄别这些常用scenario呢?我们主要通过以下几点考虑:
1. 面对面与客户沟通,了解用户业务中基本场景
2. 如果没有同客户沟通的条件,或者有目标用户群(常用的手机APP用户),那么我们就会通过调查问卷,产品试运行接受反馈(记录用户操作记录,然后做挖掘),或者对现有的数据进行分析等手段推出用户可能的场景。
Ø 优先测试需求中特别强调的功能点,其实测试需求无特别要求功能点
测试需求中着重强调的点一般都是用户比较关心的,比如说性能指标(一般较多的是相应时间,吞吐率),功能指标(比如:结果要能通过手机接收)等。比如说用户强调能通过手机接收报表,我们要着中选择手机接收的用例,其次是报表会以什么形式展现个用户(手机邮件,短信,或者一个网络连接)。
Ø 优先测试具有威胁部分,其次测试无威胁部分
这一部分主要是针对软件容易出错模块,对安全、数据有特殊要求的软件,尤其是一些包含很多逻辑或者算术运算,网络传输数据,数据备份恢复的模块,这些模块通常也是软件的核心功能,需要首先选择。
现在只想到了这几点,各个节点之间可能会有交叉的部分,但根据以上几点应该可以选择出一个比较合理的测试用例集来指导我们测试。