决策 分为5部分
输入(input)
一般定义:输入指的是由环境产生的一种刺激,该刺激导致被测试的应用程序有所响应
分为两类
原子输入(atomic input)
建议使用“等价类划分”
抽象输入(abstract input)
非法输出(illegal output)
影响因素
各种输入之间会相互影响,从而造成软件失效
输入这些值时的先后顺序也会导致问题
正向测试(postive testing)
逆向测试(negative testing)
依据开发人员的思路来构建一个非法输入值,牢抓错误信息
开发人员有三种基本方式
定义错误处理程序(error handle)
输入筛选器(input filter)
防止非法的输入值被传递给应用软件的功能代码
输入检查(input check)
是应用程序代码的一部分,通常使用类似if、then、else结构的语句实现(或case、select结构,或lookup table)
使用异常(exception)
异常处理代码把整个routine当成一个整体看待,检测其上发送的任何一个错误
常规输入/非常规输入
默认输入/用户手动输入
根据输出指导输入选择
先明确功能后确实哪些输入会引发相应输出
明确期望输出结果,考察所有用户场景,观察如何生成期望结果(主动)
先观察输出结果,再选择新的输入,并保证新输出与原先不同
抽象角度
非法输出(illegal output)
合法输出(lega output)
状态(status)
定义:
软件的 一个状态就是状态空间的一个点,它是由所有内部数据结果的取值来唯一确定
软件状态可以看成是用于描述软件记住过去发生的所有输入和输出的一种方式
数据辖域
输入和状态相结合
使用状态信息来帮助寻找相关的输入
使用状态信息来辨别重要的输入序列
代码路径(code path)
一条代码路径就是一连串的代码语句,其起始于开始语句,终止于结束语句
必须明确知道程序里可能有哪些分支,并理解哪些输入会导致软件走这条分支而不是另一条
用户数据(user date)
创建一个含有特定数据的数据存储,其含有的数据应该和软件真实用户使用的数据尽量相似
执行环境(execution environment)
使用的操作系统和其当前配置
提供输入,接收输出