软件测试黑书5.5.1:
软件测试分为数据测试和状态测试。
5.5.1状态测试:通过不同的状态验证程序的逻辑流程。(软件状态是指软件当前所处的条件或者模式)
软件状态是指软件当前所处的条件或者模式
和测试数据类似,测试软件的状态和逻辑流程也会遇到同样的问题:可能的测试用例集太大。
对于软件测试,解决办法是运用等价类划分技术选择状态和分支。注意,因为是不完全测试,所以必然要承担风险,但是可以通过合理选择减少风险。
- 建立状态转换图。(一般软件说明书里有,如果没有可以使用专门的软件画状态转换图)
状态转换图:程序可能进入的状态以及进入状态所需要的条件(输入输出),以及进入或者退出某种状态的设置条件和输出结果。
2、测试状态:每个状态必须访问一次,测试所有的错误状态,测试随机状态转换。测试所有常用的状态。
例子:画图程序的状态转换。
失败状态测试:竞争条件、重复、压迫和重负。
竞争条件:多任务执行(多个进程向终点冲去),竞争条件测试很难设计(考虑数据没准备好,考虑多个直线相连)。
重复、压迫和重负:
重复:不断重复执行(发现内存泄露),
压迫:使程序在不够理想的条件下运行(CPUlow,,显卡low)
重负:使处理更大的数据(时间更久)。