在《漫谈软件系统测试——问题解决》一文中,文章借鉴控制疫情的四大策略,总结了软件系统质量保障的四大策略。那么在日常工作中,我们应该如何理解测试策略呢?
什么是测试策略?
测试策略是描述软件开发周期的测试方法的概述。测试策略的目的是从组织的高级目标到实际的测试活动提供合理的推论,以从质量保证的角度实现这些目标。
对于一个完整的系统,其测试策略内容一般包含测试范围、测试角色、测试方法、测试工具、测试层级、测试类型、验证环境、风险和处理方案、测试指标和测试可交付成果等内容。如何来理解这些内容呢?我们可以将其简化为四个问题:测什么?由谁测?什么时候测?怎么测?
测什么?
如果按测试范围划分,如果需求是新增独立模块,其测试范围可以只关注新内容。如果需求是旧版本的迭代或者与其他模块存在关联,我们除了关注新增的需求内容,还需要关注旧版本内容和关联模块。
如果按测试类型划分,测试内容除了功能测试,我们还需要开展性能测试、兼容测试和安全测试等工作,这些内容在日常的功能测试中涉及比较少,但是如果从整个产品质量角度考虑,我们还是需要关注的。
如果按测试层级划分,测试内容可以包含单元测试、集成测试、系统测试和验收测试。
由谁测?
只有测试人员可以参与测试么?当然不是。在项目中,负责测试的角色其实还可以包含产品人员、设计人员、开发人员和用户。单元测试主要由开发人员编辑测试代码,同时,开发在需求提交测试前需要完成自测工作。集成测试和系统测试主要由测试人员完成,产品人员和设计人员需要在需求发布前进行验收测试。当然,用户也可以参加测试,例如在正式全量发布前,部分用户可以被邀请参加内测。
除了测试角色,虽然还有其他角色也会参与到测试工作中,但是其测试内容是有限的。在项目开展过程中,需求的质量保障工作主要还是需要由我们测试工程师把控,同时可以引导其他角色的人员对质量保障起到辅助的作用。
什么时候测?
在软件开发生命周期中,开展测试工作阶段主要包含需求开发、需求测试和需求发布阶段。
在需求开发阶段,可以开展单元测试工作。在需求测试阶段,可以开展集成测试和系统测试工作。在需求发布阶段,可以开展验收测试工作。
在不同阶段,对应的测试环境可以包含:开发环境、测试环境、预发布环境和生产环境。其中单元测试主要在开发环境和测试环境进行,集成测试和系统测试主要在测试环境和预发布环境进行,验收测试可以在测试环境,也可以在预发布环境或者是生产环境进行。
怎么测?
测试的方法一般包括黑盒测试、灰盒测试和白盒测试。
黑盒测试方法有等价类划分、边界值分析、错误推测法、因果图测试法和场景法等。灰盒测试方法有矩阵测试、回归测试、模式测试和正交阵列测试等。白盒测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法和基本路径测试法等。
工欲善其事,必先利其器。除了掌握测试方法,我们还需要了解相关测试工具,从而降低测试成本,提高测试效率。常见的测试工具类型包括:UI测试工具、接口测试工具、性能测试工具和安全测试工具等。当我们需要采用某种测试方法开展测试工作时,可以结合对应类型的测试工具,帮助测试工作能够降本提效。
除了掌握常规流程的测试方法,对于当前不可测或者未知的风险,我们一方面需要研究其测试方法,另一方面也需要有合理的风险预案,当风险发生时,我们能够有有效的措施去规避或者最小化影响面。
总结
什么是测试策略?本文将其概括为测什么?由谁测?什么时候测?怎么测?
在了解了测试策略之后,我们就需要在测试工作中运用测试策略开展工作。这时候我们就需要考虑资源和质量的平衡,在有限的资源前提下,我们需要学会采用最合适的测试策略来保障项目的质量。至于如何权衡,大家可以在工作中不断积累经验。
作者简介:Chaofan,爱测角成员之一,专注探索和分享软件质量保障。
原文地址:《漫谈测试成长之探索——测试策略》
相关引文:《漫谈软件系统测试——问题解决》
更多测试成长探索系列文章:
《漫谈测试成长之探索——测试文档》
《漫谈测试成长之探索——测试排期》
《漫谈测试成长之探索——缺陷分析》
《漫谈测试成长之探索——测试用例评审》