不管在传统软件公司还是互联网公司,测试用例的设计和编写一直是测试人员一个非常重要的基本工作。
开发一个软件产品,会发布多个版本,伴随着测试用例(Test case)的不断维护, 使测试用例不断完善并与产品功能、特性(features)的变化保持一致,所以测试用例是和产品版本相关联的。特别是对提供软件服务的软件产品,多个版本常常共存,为客户提供服务,这时多个版本的测试用例也是并存的,所以在新建、修改、删除测试用例时要十分小心,并有相应的规则。
一、为什么要使用测试用例
1、理清思路,避免遗漏
如果我们测试的项目大而复杂,我们可以把项目功能细分,根据每一个功能通过编写用例的方式来整理我们测试系统的思路,避免遗漏掉要测试的功能点。
2、跟踪测试进展
通过编写测试用例,执行测试用例,我们可以很清楚的知道我们的测试进度。
3、历史参考
在我们所做的项目中,也许会有很多功能是相同或相近的,我们对这类功能设计了测试用例,便于以后我们遇到类似功能的时候可以做参考依据。
4、重复性
我们测试一个系统不是一个人测一遍就算测完的,需要多人反复的进行测试,那么我们就需要测试用例来规范和指导我们的测试行为。
5、测试确认
在少数高风险的测试中,必须证明确实执行了计划执行的测试。
软件产品的版本是随着软件的升级而不断变化的,而每一次版本的变化都会对测试用例集产生影响,所以测试用例集也需要不断地变更和维护,使之与产品的变化保持一致。
根据产品特性和测试用例一致性,分下面几种情况分别处理:
-
产品特性没变,只是根据Late Discovery Bug 或 Remedy Ticket 来完善 test case,只有这时候可以修改Test case,也就意味着当前修改的test case,对目前和以前的版本都有效。
-
原有产品特性发生了变化,不是new feature, 而是enhanced features(功能增强), 这时候原有的 test case 只对先前版本有效,而对新的版本无效,这时绝不能修改 test case ,只能增加新的 test case,这一点很重要。原有的 test case 依然对原有版本有效。
-
原有功能取消了,这时只要在新版本上使之对应的test case置为inactive(无效)。
-
完全新增加的特性,大家比较清楚,增加对应的、新的测试用例。
这样,新旧版本的相同测试用例得到一致的维护,测试用例数也不会成几、十几倍的增加,可以真正保证 test case 的完整性、有效性!
以下原因可能导致测试用例变更:
-
1)软件需求变更:软件需求变更可能导致软件功能的增加、删除、修改等变化,应遵循需求变更控制管理方法,同样变更的测试用例也需要执行变更管理流程。
-
2)测试需求的遗漏和误解:由于测试需求分析不到位,可能导致测试需求遗漏或者误解,相应的测试用力也要进行变更。特别是对于软件隐性需求,在测试需求分析阶段容易遗漏,而在测试执行过程中被发现,这时需要补充测试用例。
-
3)测试用例遗漏:在测试过程中,发现测试用例未覆盖全部需求,需要补充相应的测试用例。
-
4)软件发布后,用户反馈的缺陷:表明测试不全面,存在尚未发现的缺陷,需要补充或者修改测试用例。
对于提供软件服务的产品,其多个版本常常共存,而对应的测试用例也是共存的,而且测试用例需要专人定期维护。
并遵循以下原则:
1)及时删除过时的测试用例
- 需求变更可能导致原有部分测试用例不再适合新的需求要求。例如,删除了某个功能,那么针对该功能的测试用例也不再需要。所以随着需求的每一次变更,都要删除那些不再使用的测试用例。
2)及时删除冗余的测试用例
- 在设计测试用例时,可能存在两个或者多个用例测试相同内容,降低回归测试效率,所以要定期整理测试用例集,及时删除冗余的测试用例。
3)增加新的测试用例
- 由于需求变更、用例遗漏或者版本发布后发现缺陷等原因,原有的测试用例集没有完全覆盖软件需求,需要增加新的测试用例。
4)改进测试用例
- 随着开发工作进行,测试用例不断增加,某些用例随着系统输入和当前状态的变化而变得不再适用,这些用例难以重用,影响回归测试的效率,需要进行改进,使之可重用可控制。
总结:
测试用例的目的对新人来说,提高了新人的测试效率。假如一款产品停止维护了,那么所有的测试用例随之失效,到此测试用例的生命周期结束。而新起一款产品,新的生命周期又开始了。所以,测试用例伴随着整个产品的生命周期。
总之,测试用例的维护是一个长期的过程,也是一个不断改进和完善的过程。
下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。
对于软件测试的的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你
关注微信公众号【程序员二黑】即可领取Python自动化测试超硬核资源啦