产品最终就是为客户提供的一种经验或解决方案。产品有多个维度,要测试好,我们覆盖的维度必须要全面。
每一个维度都代表了产品独特的一个面。如果测试只是覆盖了一部分,就有可能错过严重的bug。
分析产品的元素,就是分析我们的测试范围,有哪些方面或内容是需要我们测试的。一般人确定测试范围都来自于需求文档,其实需求文档之外还有很多东西需要我们关注,需要我们测试。
Structure结构:产品所包括的一切
- 代码
- 硬件
- 非执行文件
- 其他:如纸质文件、网页链接和内容、包装、许可协议等。
Function功能
- 应用
- 计算逻辑
- 时间相关的功能
- 事务:对系统操作引起变化的功能
- 启动/关闭
- 多媒体:声音、位图、视频、或任何图形显示在嵌入式产品。
- 错误处理:任何从错误中检测、处理、恢复的功能,包括所有的错误信息。
- 交互:产品内的功能之间的任何相互作用
Data数据
- 输入
- 输出
- 预置数据:产品的预置数据,或系统上线后需要提前准备的数据
- 较大的数/小的数
- 无效数据
- 整个生命周期中的数据
Interfaces接口:产品所有的输入或输出方式。
- 用户接口:与用户交互相关的元素,例如:显示器、按钮、字段,无论是物理的还是虚拟的
- 系统接口:除了与用户交互的其他系统,如其他系统、硬件、网络等。
- API/SDK:任何编程接口或工具,旨在允许开发新的应用程序使用该产品
Platform平台
- 外部的硬件
- 外部的软件
- 内部的插件:比如引用的第三方或公司其他部门的插件
Operations操作
- 用户:不同类型、不同角色的用户
- 环境:产品所运作的物理环境,包括噪音、光线和干扰等元素;也可以指运行的物理环境。
- 普通的操作
- 不友好的操作
- 极端的操作使用
Time时间
- 输入/输出
- 快/慢:用“快”或“慢”输入测试;最快和最慢;组合速度快和慢
- 改变频率
- 并发