软件质量模型
测试是一面镜子 测试无需为产品质量提升负责,但是要对有效的质量负责 质量评估是看产品是否满足了用户需求
质量模型
图为GB/T 25000.10-2016
常见的测试类型
- 功能性测试:验证产品是否满足用户功能
- 安全性测试
- 兼容性测试
- 配置测试
- 稳定性测试(验证产品在长时间运行的情况下,能否保证系统正常的性能水平,存在异常的情况下系统是否可靠)
- 易用性测试:易于理解、学习、操作
- 性能测试:提供某项功能室对时间和资源的使用情况
- 压力测试
曾经有面试官问我:你怎么理解可靠性测试?我就回答了长时间运行,但见解太浅薄了。
根据软件模型:可靠性代表了系统的成熟度、系统的可用性、容错性、易恢复性,针对这些角度进行的测试都是可靠性测试。
长时间运行可以看系统成熟度,大并发、各种混合业务、新建连接等手段都可以用用来测试成熟程度
人工加大负载、故障注入可以看系统容错性和可恢复性
测试优先级:功能测试一定是最优先的,然后可以进行其他测试,可靠性测试等,否则毫无意义。(写给我自己,感觉自己总是喜欢先提一些优先级比较低的bug,但其实不影响主流程)
另外提示自己,测试计划的执行顺序一定是按照用例的优先级排序的,而不是按照执行难易排序的,也不是按照容易出bug的地方排序的(😊)
功能测试
略()
可靠性测试
- 异常值测试:系统不允许输入的数值
- 故障注入: 实例故障:cpu高负载、内存占用过高、网络隔离、网络分区、实例退出、实例无响应、 java服务调用延迟、抛出自定义异常、内存溢出(OOM)、指定类返回值、进程cpu满载、杀JVM、触发垃圾回收、杀死进程、进程无响应、redis击穿 网络故障:接口拒绝、网络拒绝、接口请求延迟、网络延迟、丢包、乱序、损坏、重复、域名解析故障、 SQL故障:SQL异常注入