软件测试方案浅析

Posted on 2012-04-06 14:55  bendanchenzhicheng  阅读(2191)  评论(0编辑  收藏  举报

 在软件测试过程中,测试方案起到什么样作用? 如何编写测试方案?等等类似关于软件测试方案的问题,往往没有一致的答案。不同的公司往往有自己的测试方案模板,测试工程师的理解也会有所差别。以下是我关于测试方案的理解,希望能够抛砖引玉。

编写测试方案的目的是啥?也许有人会说:根据产品功能需求(比如PRD)文档,参考产品设计文档,测试工程师就可以理解需求、设计测试用例了,不需要测试方案文档,即使写了测试方案,也主要是把产品需求和设计文档内容copy一下而已。有以上这样的想法,是因为没有真正理解测试方案的作用。其实软件测试方案的作用非常类似于产品设计说明(文档),开发工程师根据产品功能需求和设计说明来编码实现功能,而测试工程师需要基于产品功能需求和测试方案来设计和执行测试用例,同时也要参考产品设计说明文档,所以测试方案目的是: 在方向上明确要测什么、怎么测,以及达到什么样质量标准。 

如何产出有效的测试方案? 如果只是把产品需求和部分设计说明内容copy一下,给出测试进度计划,这样的测试方案对用例设计和执行意义不大。我想作为方案,至少要包括几个关键因素:范围,时间,资源和质量,而不同行业产品,测试方案应该相应地进行对这几个关键因素进行分解和调整。对于软件测试方案,我想主要应该包括:测试需求分析,测试策略,测试资源,测试计划,项目风险和质量,如果我们能够明确以上这些因素,这样的测试方案就一定能够有效地指导我们测试设计和执行。 

测试需求分析:测试需求分析就是把产品需求(比如PRD文档)和对用户的理解(用户体验)转化、分解成测试功能点,产品需求是我们测试需求主要输入,但不是全部,我们还需要仔细分析产品设计说明,可以产出更多可测试的功能点(这些功能点往往没有包含在产品需求中)。还要加入对性能、安全、接口和回归测试范围分析。测试需求是确定测试进度计划和资源的主要依据。 

测试策略: 测试需求确定后,我们就要思考如何验证测试需求中的功能点,采用什么测试方法:手工、自动化测试和是否需要新方法或工具,比如新功能采用手工测试,部分回归用例使用自动化脚本,用新方法来准备测试数据,采用合适的工具验证复杂的测试结果。确定测试优先级,确认哪些业务功能是最重要,那个是新代码模块,哪些旧模块改动较大,与之相关的功能点要重点测试,测试不可能100%覆盖,但是对于重要、高危的功能必须要全面验证,保证资源投入到当前最高优先级的任务。 

测试资源:一般情况下,团队同时有多个项目,测试PM需要根据项目的优先级来确定每个项目的测试资源,一般情况下,软件测试资源主要包括:人力和设备机器。 

测试计划:根据测试需求和策略,结合项目优先级和测试资源情况,评估测试进度计划,一般情况下,测试资源越充分,测试进度越乐观,但并非绝对,有时候一些软件BUG会阻塞测试进度,这也是项目风险的一部分。 

风险管理:在测试执行开始之前,对可能的风险进行分析和识别很重要,可以提前进行预防和采取应对措施,所以项目过程中,我们需要定期评估测试进度情况,提前进行风险预警。 

质量:质量是指测试项目需要达到的标准,各个公司和项目都会有相应的标准要求,由于质量标准可以是公司内多数项目共识,所以也可以不必在测试方案中列出。对测试项目来说,比较常见的是以测试用例执行率、通过率和未关闭BUG级别/数量来设定质量标准。 

测试方案初稿完成后,必须要请项目相关测试、开发和需求方同事评审,澄清对需求和设计的理解,讨论测试方法,往往在测试方案评审中,我们能够对产品需求进行完善,给产品详细设计提供更多输入,使开发同事能够提前完善代码逻辑,而且测试工程师也能够进一步理解需求和设计,从而有助于设计完善测试用例设计,保证测试覆盖率。

Copyright © 2024 bendanchenzhicheng
Powered by .NET 9.0 on Kubernetes