四、测试类型
1. 设计方法对测试类型的覆盖
其中,第二章设计方法主要针对程序本身功能、逻辑的测试,可以基本覆盖的测试类型有:基本功能测试、边界测试、等价类测试、等价边界测试、容错性(无效等价类)等。
而针对程序在系统中的与其他程序的交互、受内存环境的影响、实际使用中的性能表现、安全性等测试类型没有完全覆盖。因此需要从测试类型角度进行补充,这样的测试类型有:集成(接口)测试、压力测试、兼容性测试、安全性测试、并发测试(运行时接电话、收短信、锁屏、充电、闹铃,等功能相关、资源竞争的逻辑)。用例设计人员可以通过测试类型来检查当前以设计的用例的缺陷之处,加以补充。
后者在实践中已经渐渐形成“专项测试”,测试深度和用例质量的要求也随之提升。
2. 测试类型的含义
(1) 基本功能测试:业务功能的覆盖、分解。
(2) 边界测试:由边界值分析方法设计出来的测试。
(3) 等价类测试:由等价类划分方法设计出来的测试。
(4) 等价边界测试:结合边界值分析方法和等价类划分方法设计出来的测试。
(5) 容错性(无效等价类)
在非法输入或非法操作时,错误出现状态和出现比率以及错误恢复能力。
考虑弱健壮等价类测试和强健壮等价类测试方法设计出来的测试。其中,弱健壮等价类测试为:基于单缺陷假设,考虑无效等价类,选取的测试用例要覆盖每一个有效等价类和无效等价类,但时不能同时覆盖两个无效等价类。强健壮等价类测试为:考虑了多缺陷,每个无效等价类和有效等价类的组合都要覆盖到,根据等价类笛卡儿积考虑所有的有效和无效情况。
(6) 集成(接口)测试
业务功能的组合(功能项关联)、冲突(比如资源共享)和串联操作。
一个API或者函数可以作为一个单元,对这个单元进行单元测试,你可以用黑盒方法,也可以用白盒方法。
黑盒方法就是不去看这个单元的实现代码,只根据这个单元的功能说明来设计测试用例并进行测试。测试的时候你可能需要写一点简单的代码来做数据准备,然后去调用需要测试的接口,一般也需要写一些代码来接收或者验证被测单元的输出是否正确;
白盒测试方法就是你通过分析被测单元的实现代码,根据不同的测试策略(如分支覆盖或者逻辑覆盖等)来设计测试用例并作相应的测试。平台产品的需求很多是来自网站,简而言之,平台产品提供API供网站研发使用。我们需要测的就是这些暴露出来的API,确保这些API在功能上没有缺陷。
(7) 压力测试
在正常情况下,使被测对象直接超出正常负荷N倍的情况下,检查错误出现的状态和概率。
(8) 兼容性测试
兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试。主要内容:
① 测试软件是否能在不同的操作系统平台上兼容,或测试软件是否能在同一操作平台的不同版本上兼容;
② 软件本身能否向前或向后兼容;
③ 测试软件能否与其他相关的软件兼容;
④ 数据兼容性测试,主要是指数据能否共享等
(9) 安全性测试
尤其涉及到个人私密信息,包括账户密码、聊天记录、金钱流量等敏感领域,甚至包括抵御常见黑客攻击的鲁棒性等等。
(10) 并发测试
评估系统或业务在渐增式并发情况下处理瓶颈以及能够接受业务的性能过程。
五、环境因素
(1) 复杂的现网
弱信号、无网络信号:屏蔽室、现网网络覆盖弱的地点;
外场测试中的小区选择、小区切换等。涉及多小区的的复杂场景当前设备供应商暂无解决方案。
(2) 空间满、空间次满apk
(3) 低电、断电
(4) 环境光、环境噪声等