[译文]HTSM-Product Elements:产品元素

引言

产品元素是指那些你需要进行测试的东西。软件产品是提供给用户的问题解决方案,具有复杂性和隐蔽性——软件产品有多个维度。测试需要覆盖产品的多个维度,测试那些重要的,而不仅是哪些容易观察到的。

结构:产品的组成部分

1 代码结构

2 硬件结构

3 非可执行文件,例如:多媒体文件、帮助文档等

4 附属产品,例如纸质文档、在线文档、打包文件、许可证书等

功能:产品做的每一件事

1 应用:产品的核心需求的功能

2 计算:产品功能中的算数功能或操作

3 时间相关:超时设定、每日或月末报告、夜晚批处理、时区、工作日节假日、利息计算、项目或权限有效周期、计时功能

4 变化:修改或变更某些东西,例如改变账户余额、修改订单状态等

5 启动和关闭:在请求、初始化以及退出服务时,注意方法和接口的处理

6 多媒体:声音、位图、视频等

7 错误处理:功能对错误的检测、从错误中如何恢复,还有错误的信息提示

8 交互:各服务、接口间的交互通讯

9 可测性:辅助测试的功能,例如诊断功能、日志文件、断言等

数据:产品处理的那些东西

1 输入:产品处理的输入数据

2 输出:产品的处理结构

3 预置:作为产品的一步的数据或者内置的数据,例如:数据库、程序中写死的或配置的默认值

4 持久:需要存储的数据,像记录、样式、状态等

5 顺序/组合:有序的数据,例如:字母顺序、已排序的数据等

6 基数:对象的个数或值域,例如取值范围从1到9,有限个枚举,唯一性

7 大和小:数据的变化区间和集合的最大最小值

8 杂音:无效或具有破坏性的数据、产生于不受控制的或错误的处理过程的数据。

9 生命周期:必须覆盖数据从生成、读取、修改、删除的生命周期。

接口:产品可用的通道

1 用户接口:让用户可以改变数据的元素,例如操作面板、按钮等

2 系统接口:与其他系统、磁盘、网络等交互的接口

3 api/sdk:可编程的接口或工具

4 导入/导出:可以提供打包数据的功能,导入其他数据的功能

平台:产品所依赖的

1 硬件:为了使产品能够提供服务的,非产品本身需要的硬件设备。例如负载均衡器、网络交换器、加密机等

2 软件:为了使产品能够提供服务的,非产品本身需要的软件设施。例如操作系统、驱动程序等

3 其他组件:库或者组件,是产品提供服务所需但产生于项目外部的。

操作:产品将如何使用

1 用户:每类用户使用产品的特征是什么

2 环境:产品将被使用的物理环境怎样?噪音、灯光、网络情况(APP测试特别需要关注)

3 通常的使用:产品通常遇到的输入的形式和操作顺序

4 不受欢迎的使用:不在意的、错误的、恶意的输入形式和操作顺序

5 极端的使用:具有挑战性的输入形式和操作顺序

时间:产品与时间的关系

1 输入输出:什么时候输入,什么时候输出,输入输出间延迟多少

2 快和慢:使用“快”和“慢”的输入操作

3 改变速率:一会快一会慢,例如平缓加快输入、突然加大输入、挂起处理导致瓶颈、中断操作)

4 并发:多用户、时间片、多线程、信号量、共享数据


翻译说明:之前介绍的HTSM模型,弱化了模型的详细内容。HTSM本身只是个框架,现在按James Bach 2015年的版本,做一个翻译。这是译文的第三部分:产品元素。

有不太清楚和错漏的,也欢迎大家指正,在此表示感谢。

另外,HTSM本身最重要的是适合自己的使用。James Bach的版本未必就是适合你的。仅作为参考。所以你发现有你不同意的,或者不以为然,都是正常的。

作者 魏增艺

关键字:产品经理, 产品

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部