软件工程第13章-软件测试-(精品课件).pptVIP

  • 60
  • 0
  • 约2.95万字
  • 约 160页
  • 2018-10-14 发布于广西
  • 举报

软件工程第13章-软件测试-(精品课件).ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 复旦大学计算机科学技术学院 软件工程(第二版) 调试方法 蛮力法 蛮力法是一种最省脑筋但又最低效的方法。它通过在程序中设置断点,输出寄存器、存储器的内容,打印有关变量的值等手段,获取大量现场信息,从中找出错误的原因 这种方法效率低,输出的信息大多是无用的,通常在其他调试方法未能找到错误原因时,才使用这种方法 可以采用二分法来逐步缩小出错的范围 * 复旦大学计算机科学技术学院 软件工程(第二版) 回溯法 回溯法是从错误的征兆出发,人工沿着控制流程往回跟踪,直至发现错误的根源。这种方法适用于小型程序,对大型程序,由于回溯的路径太多,难以彻底回溯 * 复旦大学计算机科学技术学院 软件工程(第二版) 原因排除法 原因排除法又可分为归纳法和演绎法 归纳法是一种从特殊推断一般的系统化思考方法。其基本思想是:从一些线索(错误征兆)着手,通过分析它们之间的关系来找出错误的原因 组织数据 收集 有关数据 研究数据 之间的关系 导出假设 证明假设 纠正错误 能 不能 能 不能 * 复旦大学计算机科学技术学院 软件工程(第二版) 演绎法 演绎法从一般原理或前提出发,假设所有可能出错的原因,排除不可能正确的假设,最后推导出结论 排除 不正确原因 假设 可能的原因 精化 剩余的假设 证明假设 收集 更多数据 纠正错误 无剩余 能 有 剩 余 不能 * 复旦大学计算机科学技术学院 软件工程(第二版) 纠正错误 修改一个错误常常会引入新的错误 在为纠正某个错误而修改程序之前应该回答三个问题: 在程序的其他地方是否也存在同类的错误? 本次修改可能会引发什么新的错误? 为了防止这个错误,我们应该做什么? * * * * * * * * * * * * * * * * * * * * * * * * * * * * 复旦大学计算机科学技术学院 软件工程(第二版) 自底向上集成:从程序结构的最底层模块(即原子模块)开始,然后按照程序结构图的控制层次将上层模块集成到整个结构中,并对其进行测试 自底向上集成在测试一个模块时,它的下层模块(已测试过)可用作它的桩模块 * 复旦大学计算机科学技术学院 软件工程(第二版) 自底向上集成的步骤: (1)将低层模块组合成能实现软件特定功能的簇 (2)为每个簇编写驱动程序,并对簇进行测试 (3)移走驱动程序,用簇的直接上层模块替换驱动程序,然后沿着程序结构的层次向上组合新的簇 (4)凡对新的簇测试后,都要进行回归测试,以保证没有引入新的错误 (5)重复第(2)步至第(4)步,直至所有的模块都被集成 * 复旦大学计算机科学技术学院 软件工程(第二版) Mc Ma Mb 簇1 簇2 簇3 D1 D3 D2 驱动模块 簇4 簇5 * 复旦大学计算机科学技术学院 软件工程(第二版) 自底向上集成的优点: 不需要桩模块,所以容易组织测试;将整个程序结构分解成若干个簇,对同一层次的簇可并行进行测试,可提高效率 自底向上集成的缺点: 整体性的错误发现得较晚 * 复旦大学计算机科学技术学院 软件工程(第二版) 策略的选择 自顶向下集成测试与自底向上集成测试各有优缺点,其中一种策略的优点差不多就是另一种策略的缺点。将这两种策略组合起来可能是一种最好的折衷,这种折衷的策略是:在程序结构的高层使用自顶下向策略,而在低层则使用自底向上策略,这种测试策略也称为三明治测试(sandwich testing) 集成测试时应特别关注关键模块(critical module)的测试。关键模块是指具有下列一个或多个特征的模块:1)与多个软件需求有关;2)含有高层控制(位于程序结构的高层);3)本身是复杂的或是容易出错的;4)含有确定的性能需求。关键模块应尽早测试,回归测试时也应集中在关键模块的功能上 * 复旦大学计算机科学技术学院 软件工程(第二版) 回归测试(Regression Testing) 在集成测试过程中,每当增加一个(或一组)新模块时,原先已集成的软件就发生了改变。新的数据流路径被建立,新的I/O操作可能出现,还可能激活新的控制逻辑,这些改变可能使原本正常的功能产生错误 当测试时发现错误后,需修改程序;或者在软件维护时也需修改程序。这些对程序的修改也可能使原本正常的功能产生错误 回归测试就是对已经进行过测试的测试用例子集的重新测试,以确保

文档评论(0)

1亿VIP精品文档

相关文档