- 测试的目的:在软件投入生产性运行之前,尽可能多地发现软件产品(程序)中的错误和缺陷,发现错误不是软件测试的唯一目的,没有发现错误的测试也是有价值的。测试是为了证明程序有错,而不是证明程序无错误。一个成功的测试是发现了至今未发现的错误。
- 测试的类型
- 动态测试:通过运行程序发现错误,不管是哪一种测试,都不能做到穷尽测试。完整的测试用例包括输入数据和期望的输出结果
- 黑盒法:不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。测试用例设计方法共5种:
等价类划分:将所有可能的输入数据,划分为等价的部分,然后从每个部分中选取少数有代表性的数据作为测试用例。分为两种:有效等价类(即合理、有意义的数据集合)、无效等价类(即不合理、无意义的数据集合)
原则: 设计一个新的测试用例时,应尽可能多覆盖尚未覆盖的有效等价类;但每次应仅覆盖一个尚未覆盖的无效等价类
边界值分析:它是对等价划分法的一个补充,即选取正好等于、刚刚大于或刚刚小于边界的值作为测试依据
错误推测法:列举出程序中所有可能有的错误和容易发生错误的特殊情况,依据它们选择测试用例
因果图:考虑了输入条件间的联系,用来描述多种条件组合的测试用例,其最终生成的结果是判定表。
步骤:基于规格说明书分析原因(等价类)和结果(输出条件)→找出原因与结果之间的关系,画出因果图→在因果图上加上约束或限制条件→将其转换为判定表→根据判定表得出测试用例。
功能图:测试用例由测试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成,分为两种:
状态迁移图:表示输入数据序列以及相应的输出数据
逻辑功能模型:表示在状态中输入条件与输出条件之间的对应关系。