如何制定测试计划 测试计划

测试计划(如何制定测试计划)
软件项目通常有详细的项目计划 。
软件测试作为整个项目的重要组成部分,也应该进行详细的测试计划 。所谓运筹帷幄,决胜千里,强调的是提前谋划的重要性和必要性 。
在软件工程的早期实践中 , 软件测试计划的制定通常在需求分析和测试需求分析完成后开始 , 是整个软件开发生命周期中的重要环节 。然而,在敏捷开发模式下,你可能会有疑问,软件测试计划仍然那么重要吗?我的软件项目根本没有正式的测试计划 。没有什么大问题吗?
的确,对于很多非产品互联网公司来说,由于采用敏捷开发模式,确实很少做传统意义上的测试计划,但这并不意味着他们不再做测试计划 。
但是测试计划的形式已经不再是传统意义上的庞大而正式的测试计划文档,更多的是体现在每个冲刺阶段的计划环节,这样的短期测试计划可以根据项目情况非常快速实时的调整 。
所以测试计划还是存在的,只是取代了原来的一次性集中测试计划,变成了一个迭代的、持续的测试计划 。但是对于传统的软件公司,或者制作非互联网软件产品的公司,他们通常会有一个非常正式的软件测试计划 。
可见无论是前期最典型的瀑布式开发模式,还是现在的敏捷开发模式,测试计划的重要性都没有改变 。那么,你可能会问,测试计划的重要性是什么?在回答这个问题之前,我先跟大家说一下,如果没有测试计划会造成什么问题 。
没有测试计划会怎么样?如果没有测试计划,会带来什么问题?
1.很难确切知道具体的测试范围和应该采取的具体测试策略;
2.具体工作量和所需测试工程师数量难以估算,同时各测试工程师分工不明确,导致部分测试重复进行,部分测试遗漏的问题;
3.测试的整体进度完全失控,甚至很难确切知道当前测试的完成情况,更难以预测测试完成时间的确切时间节点 。4.整个项目抗潜在风险能力弱,难以应对需求变化等突发事件 。
从这些问题中,你可以推导出 , 一个好的测试计划应该包括测试范围、测试策略、测试资源、测试进度和测试风险估计五个方面 , 每个部分都要针对可能出现的问题给出解决方案 。
测试范围,顾名思义 , 描述了被测试的对象和主要的测试内容 。
比如对于用户登录模块 , 功能测试需要同时测试浏览器端和移动端,同时还要考虑与登录安全和并发性能相关的非功能性需求的测试 。
测试范围的确定通常是在测试需求分析完成之后进行的 , 因此确定测试范围的过程在一定程度上也是对测试需求分析的进一步测试,这将有助于在前期发现潜在的测试遗漏 。
同时 , 由于不可能进行穷举测试,测试时间和资源有限,所以必须做出一些取舍,进行有针对性的测试 。因此,需要在测试范围中定义“测量什么”和“不测量什么” 。
关于测试策略这个话题,简单来说,测试策略需要明确两个问题:“先测试什么”和“如何测试” 。
疾病有轻重缓急,检测也是 。重要的项目先测试,不重要的项目后测试 。测试策略将要求我们指定测试的关键点和每个测试的顺序 。
比如,就用户登录模块而言,“用户无法正常登录”和“用户无法重置密码”这两个潜在的问题一目了然,所以你应该先测试“用户正常登录” , 再根据优先级测试“用户重置密码” 。
测试策略还需要说明采用什么样的测试类型和测试方法 。这里需要注意的是,不仅要给出为什么要选择这种测试类型的原因 , 还要详细说明具体的实现方法 。
首先 , 功能测试
对于功能测试 , 你应该根据测试需求分析的思维导图来设计测试用例 。
由于主线的功能测试往往需要回归测试,你需要考虑实现自动化测试 , 根据项目技术栈和测试团队成员的习惯和能力选择合适的自动化测试框架 。
这里需要注意的是,你通常应该先实现主干业务流程的测试自动化 。
在实践中,你通常需要先列出主要的功能测试点 , 决定哪些测试点适合自动化测试,决定使用什么样的框架和技术 。
对于需要手工测试的测试点,你要决定采用什么类型的测试用例设计方法,以及如何准备相关的测试数据 。此外,你必须评估被测试软件的可测试性 。如果存在可测性问题,需要提前考虑可行的变通方法,甚至要求开发者提供可测性接口 。

推荐阅读