软件测试生命周期的八个阶段详情
60年代:
90年代:
2000年:
测试的趋势和能力也一直在变化。测试人员现在被要求做更多的面向技术和流程方面的事情。测试现在不仅仅限制在找bug,而且有一个更广阔的工作范围,从项目开始阶段甚至需求还没正式定下来的时候就被需要,被安排工作。
测试也是标准化的。就像软件开发那样有生命周期一样,测试也有自己的生命周期。在后面的内容,我将会讨论什么是测试生命周期以及软件测试是怎么相关联的。
什么是生命周期?
“生命周期”这个简单的词是指从一个形式(状态)到另外一个形式(状态)的一系列的变化。这些变化可以发生有形或无形的事情上。每个实体都有生命周期,从开始到死亡/结束。
类似的,软件也是个实体。就像开发软件包括一系列的步骤,测试也有很多步骤,这些步骤按照一定顺序去执行。
通过系统的有计划的执行测试活动的现象被叫做测试生命周期。
什么是软件测试生命周期(STLC)
它是指测试流程,这个流程是按照一定顺序执行的一系列特定的步骤,去保证产品质量符合需求。在STLC流程中,每个活动都按照计划的系统的执行。每个阶段有不同的目标和交付产物。在STLC中每个组织有不同的阶段;但是基本的是一样的。
下面是STLC的8个阶段:
1.需求阶段(Requirements phase)
2.计划阶段(Planning Phase)
3.分析阶段(Analysis phase)
4.设计阶段(Design Phase)
5.实施阶段(Implementation Phase)
6.执行阶段(Execution Phase)
7.总结阶段(Conclusion Phase)
8.结束阶段(Closure Phase)
1.需求阶段:
在这个阶段,是分析和学习需求的阶段。和其他团队一起头脑风暴,努力去查找需求是不是可测的。这个阶段帮助去辨认测试的范围。如果任何功能是不可测试的,及时沟通,做出一些减轻策略(减小风险)的计划。
2.计划阶段:
在实际场景中,测试计划是测试流程的第一步。在这个阶段我们辨别出哪些活动和资源能匹配测试目标。我们也努力去辨别测试指标,测试方法以及如何追踪这些指标。
计划的基础是什么?只有需求吗?
答案是NO。需求只是一种基础,然而还有其他2方面的因素影响测试计划。他们是:
-组织的测试策略
-风险分析/风险管理和减轻
3.分析阶段:
STLC定义“WHAT”被测试。一般地,我们通过需求文档、产品风险和其他测试依据去辨别测试条件。测试条件应该可以被追溯到需求。有很多因素可以影响测试条件的辨别:
-
测试的层次和深度
-
产品的复杂性
-
产品和项目风险
-
软件开发生命周期被涉及
-
测试管理
-
团队的知识和技能
-
相关干系人的可用性
我们应该努力用一种很详细的方式把测试条件写下来。例如,一个电子商务网站,你有一个测试条件为“用户应该可以支付”。或者你可以详细的描述为“用户应该可以通过信用卡,微信、支付宝等支付”。把详细的测试条件写下来最大的好处是可以提高测试覆盖率,因为测试用例就是通过这些测试条件写的,这些详情触发写出更多的测试用例。同时,也可以分辨出退出测试的标准,比如哪些条件决定可以终止测试。
4.设计阶段:
这个阶段都有“HOW”去测试。包括以下的任务:
-
详述测试条件。拆分测试条件为多个子条件去提供覆盖率。
-
辨别和获取测试数据
-
辨别和搭建测试环境
-
创建需求跟踪指标
-
创建测试覆盖指标
5.实施阶段:
这个阶段最主要的任务是创建详细的测试用例。测试用例的优先级以及哪些用例会成为回归测试的一部分。在最终决定测试用例之前,审核测试用例的正确性是非常重要的。同时在真正执行开始之前也不要忘了sign off(署名,比如新版本发布前的最终测试报告需要发送sign off报告)测试用例。如果你的项目设计自动化,分辨哪些用例适合自动化以及准备测试脚本。不要忘记审核。
6.执行阶段:
从名字可以知道,这个阶段是STLC的真正执行阶段。但在你执行之前,确保你的标准是和需求匹配的。执行测试用例,报bug如果有任何的不匹配。同时填写追踪指标去跟踪你的进度。
7.总结阶段:
这个阶段聚焦在检验标准和报告。依赖你的项目和干系人选择,你能决定是发日报还是周报等等。有不同的报告类型(日报,周报)你可以发送,但重点是,报告的内容是根据你发送对象的不同而变化的。
如果项目经理属于测试背景的,那么他们对技术方面更感兴趣,因此在报告中包含技术方面的内容(用例的pass个数,fail个数,bug个数,严重bug等等)。但是如果你向更高层的干系人报告,他们可能对技术方面不感兴趣,可以给他们发送一些风险相关的,比如通过测试减轻风险的发生。
8.结束阶段:
这个阶段的任务包括:
-
检查测试的完成度。是否所有的用例被执行或是有意减轻一些。检查是否还有S1的bug是激活状态。
-
经验总结会议及书写相关文档。包括哪些做得好,哪些需要提高和如何提高
一起来总结一下STLC
最后下面是我整理出来的一份软件测试工程师发展方向知识架构体系图。
希望大家能在这个成长过程中收益良多。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好“不积跬步,无以至千里。”等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。
下面是一份配套的软件测试资源包:
上面是一些配套资源,这些资源对于软件测试的的朋友来说应该是最全面最完整的备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。关注我的微信公众号:程序员二黑,即可免费获取!
学习软件测试是件需要坚持的事情,学习的过程可能会很枯燥,不过有一些人一起学的话大概就不会了吧,加入我们吧,跟我们一起学习,群号:785128166,有人陪伴,不会孤单
如果您觉得文章还不错,请 点赞、分享、在看、收藏 一下,因为这将是我持续输出更多优质文章的最强动力!