§7.1 编码
语言选择的实用标准: • 系统用户的要求。 -- 用户熟悉的语言 • 可以使用的编译环境 • 可以得到的软件工具 • 工程规模 --过大,可以自己设计一个专用语言 • 程序员的知识 • 软件可移植性要求 • 软件的应用领域
SOFTWARE ENGINEERING
适用各类应用领域的语言
SOFTWARE ENGINEERING
• E.W.Dijkstra 指出: • “程序测试能证明错误的存在,但 不能证明错误不存在.” • 测试的目的是发现程序中 的错误,是为了证明程序有错, 而不是证明程序无错.
把证明程序无错当作测试目的不仅是不 正确的, 完全做不到的,而且对做好测试没 有任何益处,甚至是十分有害的.
SOFTWARE ENGINEERING
单元测试实施步骤
• 实施步骤 –1、编译 –2、静态分析器检查 –3、代码评审 –4、计算机测试 •测试驱动软件 •测试存根软件(桩模块)
• 在确定测试用例的同时,应给出对应的 期望结果。 • 应为测试模块开发一个驱动模块 (driver)和(或)若干个存根软件(stub)。
§7.2 软件测试基础
目的 在软件投入生产性运行之前,尽可能多的发现软 件中的错误,并及时改正它们。 测试过程
SOFTWARE ENGINEERING
• 7.2.1 软件测试的目标 测试的目标或定义:
• 为了发现程序中的错误而执行程序的过程。 • 好的测试方案是极可能发现迄今为止尚未发现的 错误的方案 • 成功的测试是发现了至今为止尚未发现的错误的 测试
软件测试信息流
需求规格说明书 软件设计说明书 被测源程序
测试计划 测试用例 (测试数据) 测试驱动程序
软件 配置