今日在学习国内软件测试业界前辈的经验之谈时,碰巧遇到了有关回归测试的问题,结合自身的思考,做个简单的总结记录。
1、回归测试,无法回避的测试活动
从事软件测试的朋友可能有相同的体会,无论所参与的产品采用何种软件开发模型进行开发,在产品生命周期内,测试开展的活动中,必定不会缺少回归测试这项活动。
为什么这么说呢?我个人的理解如下。
- 不同的开发阶段,需要进行不同的测试活动。无论所参与的产品采用何种软件开发模型进行开发,对于测试活动而言,在不同的开发阶段少不了要进行不同的测试活动,比如模块测试、集成测试、系统测试、验收测试等,开展这些测试活动时,测试的对象可能是完整产品的某个功能模块、或某几个功能模块的集成、或所有功能模块的集成等,实际执行测试的时候,可能相同的功能会重复执行多次,当然,每个阶段的测试深度可能会有所不同,这取决于采用的测试策略等。
- 软件质量很大程度上决定了某些测试活动的开展。 比如,集成测试或系统测试阶段,一轮测试结束后,某些功能模块仍存在缺陷,此时就需要按照缺陷管理流程,在缺陷生命周期内进行跟踪、流转,待研发人员将缺陷修复后,进行验证及确认,而后进行回归测试。
- 处于维护阶段的系统,部分功能发生变更后,需要进行回归测试,以确保功能变更对原有功能没有造成影响。
- 迭代更新的系统,新一轮迭代新增的功能构建到原有产品中后,需要对构建后整体的功能进行测试,此时也会涉及到回归测试。
- 其他情况下需要进行回归测试等
2、开展回归测试的流程
回归测试的重要性不言而喻,如何开展回归测试,以提高测试效率和有效性,保证产品的质量呢?这是我一直在思考的问题。通过思考,对该问题有了一定的认识。
回归测试不应草率的进行,应该像其他测试活动一样,提前制定回归测试流程,规范化开展工作。具体来说,有以下几个环节:
- 软件变更分析。变更分析类似于我们做测试分析一样,在了解了变更的需求后,对其进行测试分析,以明确针对变更的需求需要从哪些维度进行测试覆盖。
- 软件变更影响分析。分析变更的功能模块对其他模块是否产生影响,需要重点关注与变更模块有交互的点,以此来确认回归测试的优先级。
- 回归测试策略制定。上述分析完成后,对于测试对象及范围有了一个整体的把握,结合质量目标,考虑相应的测试类型及测试方法。
- 回归测试用例选取
- 执行
- 回归测试结果报告等
3、选取合适的回归测试用例需考虑的因素
如何选择合适的回归测试用例,以下是几个需考虑的因素:
- 功能的重要性。什么功能是客户最经常使用的;哪些功能对客户而言是最重要的;若产品还未发布,没有客户使用过,则需要考虑产品的商业价值、做该产品的目的,以此来划分功能的重要程度。
- 缺陷分布。考虑以前版本中,缺陷的分布情况,以此来划分待回归功能的优先级。通常可以将“二八法则” 应用到缺陷分布分析中。
- 变化量。针对新增加的功能或者升级,对原来的哪些功能和模块的影响是最大的,根据影响程度进行回归测试优先级的划分。
4、小结
以上对回归测试活动、如何开展回归测试及开展回归测试时如何选取合适的测试用例,作了简单的说明。
当然,随着对测试的深入理解,对该项测试活动的了解也会逐渐加深。此文仅记录当下个人的思考与见解,希望有缘的网友一起讨论交流。