为什么软件明明通过了各种级别的测试,在交付给用户之后仍然会出现问题,令用户不满?
这可能是我们的测试依据出现了问题。通常测试的依据是系统设计师加工过的需求,而这个需求并没有反映用户的使用环境、使用场景和使用习惯,简而言之,就是没有反映用户真实的、完整的需求。
所以,在需求分析过程中运行方案和场景的分析有助于完善软件需求,获得用户的真实需求。
作为测试人员,则应实施基于客户视角的测试才能确保通过测试的软件顺利交付。
实施基于客户视角的测试,应满足以下要求:
测试输入:在测试设计和执行时,将客户信息作为测试输入信息。
这些信息包括:
- 运行环境,软件运行所需设备、型号、接口、协议等。
- 核心概念,业务、运行维护和管理方面的功能、术语。
- 业务背景,用户的组织架构、角色及其职责、知识背景,以及业务流程、应用场景等。
- 性能指标。
- 可靠性等质量特性需求。
- 验收要求。
测试设计:输入多样化
在测试设计时,通常依据的是需求规格说明、设计说明,有些还会参考合同。但在很多时候,哪怕严格验证了以上文档中的每一条需求、每一个指标,验收的时候还是会出现功能、性能不满足要求的问题。
这主要是因为,客户拟定合同的人和验收、使用产品的人可能分属不同的团队。前者通常是经营或市场团队,他们更关注软件将要实现哪些能力;后者通常是业务操作团队,他们更关注软件对业务的帮助。这就导致测试所依据的合同中常常会出现功能的使用信息是不完整的(约束条件、操作入口、上下文、操作结果等)、业务的指标信息是不完整的问题。
因此,在测试设计中,不仅要依据产品的合同、需求和设计,还需要考虑和客户现有的业务场景、衡量指标、使用习惯等,如果确实需要改变客户现有的习惯,则需要借鉴业界的通行做法。
测试环境:尽可能模拟。
理想的情况下,软件系统测试当然是在真实的客户使用环境(包括设备、软件、用户)下进行,这样不仅测试结果真实,还能最大限度地暴露并解决软件实际使用时产品间、功能间配合的错误。但是这样做的成本是非常高的,有时也难以做到。
大多数情况下,测试都只能在模拟环境中进行。而对测试模拟环境最基本的要求是,保持和客户的真实环境逻辑一致。
测试环境对性能、可靠性安全性等质量特性需求的影响尤其大。在进行这些需求的测试时,测试人员应尽可能地模拟客户的真实环境,并且在测试报告给出环境差异对测试结果的影响分析。
这正是:
软件顺利去交付,客户视角做测试
测试输入需分析,环境高度去模拟
源自公众号 软件工程之思