Version3.0第二章第二章测试技术回顾回顾•软件质量的衡量标准是可以准时地交付给用户,所耗费的成本不超出预算,并且最重要的是,能够正常地运行。•SQA的目标是通过在开发周期的早期阶段发现错误来降低解决问题的成本。•SQA应用于软件开发的每个阶段,每个阶段都有其自己的质量标准。•实施质量管理中,要注意构建自己的管理体系,包括:构建质量计划、建立质量保证、建立质量控制等本章目标本章目标•定义软件测试•明确软件测试的准则•明确测试的方法•描述软件测试的各个阶段•描述各种测试阶段的测试内容简介简介•软件测试是软件工程过程中的关键组件。•软件测试是软件质量保证的要素,可以将其描述为一个运行程序以检测错误(如果有)的过程。测试的常识与道理测试的常识与道理2-12-1•编程大师说:没有错误的程序世间难求。(《编程之道》)•你在学校里学过测试吗?(读到博士可能也不懂测试)•你所在的企业重视测试吗?(小公司程序员的技能更加全面)•临时抱佛脚行吗?你以为有文档模板就会测试了吗?测试的常识与道理测试的常识与道理2-22-2•如果不懂得有效地进行测试,你不仅得不到功劳,也没人欣赏你的苦劳,你拥有最多的将只是疲劳。•职业软件工程师应当掌握需求开发、系统设计、编程、测试、维护所有技能。测试的目的是什么测试的目的是什么•测试的目的是为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷。•推论:成功的测试在于发现了迄今尚未发现的缺陷。所以测试人员的职责是设计这样的测试用例,它能有效地揭示潜伏在软件里的缺陷。千万不要将“测试”与“演示”混为一谈。例如科研鉴定会。如果产品通过了严格的测试,大家不要不吭气,应当好好地宣传一把。软件测试原则软件测试原则2-12-1•完全测试程序是不可能的-输入量太大-输出结果太多-软件实现途径太多-软件说明书没有客观标准。从不同角度看,软件缺陷的标准不同。软件测试原则软件测试原则2-22-2•软件测试是有风险的行为•测试无法显示潜伏的软件缺陷•找到的软件缺陷越多,就说明软件缺陷越多•并非所有软件缺陷都能修复•软件测试一项讲究条理的技术专业软件测试方法-黑盒和白盒软件测试方法-黑盒和白盒•白盒测试中(有时候称为开盒测试),软件测试员可以访问程序员的代码,并通过检查代码来协助测试-可以看到盒子里面。一般在单元测试中采用白盒测试,用于测试模块中所有可能的路径、执行所有循环并测试所有逻辑表达式。•黑盒测试则侧重于软件的整体功能。它不基于程序的内部结构而基于系统功能。犹如一个人站在黑盒子外面,只知道系统输入一定数据,得到一定的输出,而不必清楚这个黑盒子中进行了哪些操作和运算。软件测试方法-静态和动态软件测试方法-静态和动态•静态检查–确保系统按照组织的标准和过程运行,主要依赖于评审和非运行的手段来检查。通常包括需求评审、设计评审、代码走查和代码检查。•动态检查–在生命周期中进行测试(运行)。通常包括单元测试、集成测试、系统测试、用户的验收测试。静态测试静态测试•审查(Inspection)-软件的一种基本测试方法,它以一系列典型问题为依据进行检测。•走查(Walkthrough)-一对一的审查,比审查更加仔细。•回顾(Review)-以发现软件中存在的错误和缺陷为目的的一种软件测试方法,它是在软件证实执行之前完成。静态和动态测试进行结构和功能测试静态和动态测试进行结构和功能测试测试阶段执行人静态校验动态校验可行性评审开发人员,用户√需求评审开发人员,用户√设计评审开发人员√单元测试开发人员√集成测试开发人员,用户√系统测试开发人员在用户的协助下完成√验收测试用户√测试技术测试技术软件测试技术静态测试代码走查动态测试技术评审代码审查黑盒测试白盒测试功能测试性能测试攻击测试回归测试语句覆盖分支覆盖路径覆盖测试产品说明书测试产品说明书•对于产品说明书的制定是个很重要的设计阶段,产品说明书的质量会直接影响到整个产品开发。•测试产品说明书属于静态黑盒子测试。常用测试用语-测试用例常用测试用语-测试用例•测试用例:编写用于输入输入的实际数制和预期结果。测试用例还明...