1、1本章目标本章目标了解软件测试的原则了解软件测试的原则熟悉软件测试员的常用术语熟悉软件测试员的常用术语2软件测试误区软件测试误区p 误区一:误区一:如果发布出去的软件有质量问题,都是软件测试人员的错p 误区二:误区二:软件测试技术要求不高,至少比编程容易多了p 误区三:误区三:有时间就多测试一些,来不及就少测试一些 p 误区四:误区四:软件测试是测试人员的事,与开发人员无关 p 误区五:误区五:根据软件开发瀑布模型,软件测试是开发后期的一个阶段33.1 测试的原则测试的原则完全测试程序是不可能的完全测试程序是不可能的 输入量太大; 输出结果太多; 软件实现途径太多; 软件说明书没有客观标准。从
2、不同角度看,软件缺陷标准不同。软件测试是有风险的行为软件测试是有风险的行为测试无法显示潜伏的软件缺陷测试无法显示潜伏的软件缺陷可以报告软件缺陷存在,却不能报告软件缺陷不存在; 43.1 测试的原则测试的原则找到的软件缺陷越多,就说明软件缺陷越多;找到的软件缺陷越多,就说明软件缺陷越多; 程序员也有心情不好的时候; 程序员往往犯同样的错误; 某些软件缺陷实乃冰山一角(有一个严重的主要原因造成)。杀虫剂怪事;杀虫剂怪事; 老用一种药,害虫都有抵抗力,程序也如此。 为了克服杀虫剂怪事,软件测试员必须不断编写不同的、新的测试程序,对程序的不同部分进行测试,以找出更多软件缺陷。53.1 测试的原则测试的
3、原则并非所有软件缺陷都要修复;并非所有软件缺陷都要修复; 没有足够的时间;(交付期限不可更改) 不算真正的软件缺陷;(也许是功能,理解错误、测试错误、修改SPEC) 修复的风险太大;(常见) 不值得修复。(不常出现、不常用)什么时候才叫缺陷难以说清;什么时候才叫缺陷难以说清;尚未发现或未观察到的软件缺陷只能说是潜在缺陷。63.1 测试的原则测试的原则产品说明书从没有最终版本;产品说明书从没有最终版本; 软件测试员必须想到产品说明书可能改变软件测试员在产品小组中不受欢迎;软件测试员在产品小组中不受欢迎; 因为工作就是挑错!所以我们要懂得怎么和开发的相处 保持小组成员和睦的建议:早点找出缺陷;控制
4、情绪;不要总是报告坏消息。软件测试是一项讲究条理的技术专业。软件测试是一项讲究条理的技术专业。7精确和准确精确和准确n精确参照物是目标。与目标越接近,就越准确;精确参照物是目标。与目标越接近,就越准确;n准确参照物是每次实施的结果。几次结果相互准确参照物是每次实施的结果。几次结果相互之间越接近,表示越精确。但与目标可能相去之间越接近,表示越精确。但与目标可能相去甚远甚远 8确认和验证(确认和验证(V & VV & V) Verification:Are we building the product right?是否正确地构造了软件?即是否正确地做事,验证开发过是否正确地构造了软件?即是否正确
5、地做事,验证开发过程是否遵守已定义好的内容。程是否遵守已定义好的内容。验证产品满足规格设计说明验证产品满足规格设计说明书的一致性书的一致性Validation: Are we building the right product? 是否构造是否构造了正是用户所需要的软件?即是否正在做正确的事。了正是用户所需要的软件?即是否正在做正确的事。验证验证产品所实现的功能是否满足用户的需求产品所实现的功能是否满足用户的需求9质量和可靠性质量和可靠性n可靠性只是质量的一个因子可靠性只是质量的一个因子,对应的质量还有很多其它对应的质量还有很多其它的内容;的内容;n质量可能包含功能是否齐全,产品能否在各种机器
6、上质量可能包含功能是否齐全,产品能否在各种机器上运行,软件公司有没有技术支持,甚至包装盒的色彩;运行,软件公司有没有技术支持,甚至包装盒的色彩;n 可靠性:在规定的时间和条件下可靠性:在规定的时间和条件下,软件产品维持其性能软件产品维持其性能水平的一组属性水平的一组属性10测试和质量保证测试和质量保证(QA)n软件测试员的目标是尽可能早一些找出软件缺软件测试员的目标是尽可能早一些找出软件缺陷,确保得以修复;陷,确保得以修复;n软件质量保证的主要职责是创建和加强促进软软件质量保证的主要职责是创建和加强促进软件开发并防止软件缺陷的标准和方法。件开发并防止软件缺陷的标准和方法。113.3测试方法测试
7、方法 黑盒子和白盒子黑盒子和白盒子 静态的和动态的静态的和动态的 文档、代码审查文档、代码审查 数据输入边界条件法数据输入边界条件法 等价划分、数据流程图等价划分、数据流程图 状态变换图状态变换图 逻辑路径法逻辑路径法12黑盒子和白盒子黑盒子和白盒子功能测试功能测试数据驱动测试数据驱动测试 结构测试结构测试逻辑驱动测试逻辑驱动测试 客户需求事件驱动输入输出13静态的和动态的静态的和动态的主持人主持人作者记录员列席人员内审员内审员技术专业人员用户代表不正式正式互审 走读 审查会议运行程序运行程序14自动测试和手工测试自动测试和手工测试手工模拟用户手工模拟用户操作操作153.4 软件测试的分类和阶
8、段软件测试的分类和阶段 维护 需求定义应用定义应用开发 修订 建立 建立执行. 执行执行.测试计划缺陷跟踪测试开发测试设计评估16软件测试分类软件测试分类方法方法目标目标/特性特性单元测试单元测试系统测试系统测试验收测试验收测试性能测试性能测试强壮性测试强壮性测试功能测试功能测试白盒测试白盒测试黑盒测试黑盒测试测试阶段或层次测试阶段或层次适用性测试适用性测试可靠性测试可靠性测试集成测试集成测试安全性测试安全性测试17软件测试阶段软件测试阶段阶阶 段段输输 入入 输输 出出 需求分析需求分析需求定义需求定义, 市场分析文档市场分析文档, 相关技相关技术文档术文档市场需求分析会议记要市场需求分析会
9、议记要 , 功能设计功能设计, 技术设计技术设计设计审查设计审查 市场需求文档市场需求文档, 技术设计文档技术设计文档 测试计划测试计划, 测试用例测试用例功能验证功能验证 代码完成文件包代码完成文件包,功能详细设计说功能详细设计说明书明书最终技术文档最终技术文档完整测试用例完整测试用例,完备的测试计划完备的测试计划, 缺缺陷报告陷报告,功能验证测试报告功能验证测试报告系统测试系统测试代码修改后的文件包代码修改后的文件包 完整测试用例完整测试用例,完备的测试计划完备的测试计划 缺陷报告缺陷报告缺陷状态报告缺陷状态报告项目阶段报告项目阶段报告确认测试确认测试代码冻结文件包代码冻结文件包确认测试用
10、例确认测试用例缺陷状态报告缺陷状态报告缺陷报告审查缺陷报告审查版本审查版本审查版本发布版本发布 代码发布文件包代码发布文件包 测试计划检查清单测试计划检查清单当前版本已知问题的清单当前版本已知问题的清单版本发布报告版本发布报告18测试阶段(测试阶段(SDLC)19单元测试单元测试单元测试单元测试的对象是程序系统中的最小单元-模块或组件上,在编码阶段进行,针对每个模块进行测试,主要通过白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。多个模块可以平行地、对立地测试,通常要编写驱动模块和桩模块单元测试一般由编程人员和测试人
11、员共同完成 20集成测试集成测试集成测试集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题 两种集成方式:一次性集成方式和增殖式集成方式。21功能测试功能测试功能测试功能测试一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用 22系统测试系统测试系统测试系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等 23验收测试验收测试 & &安装测试安装测试验收测试验收测试的目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样安装测试安装测试是指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步的安装操作性的测试 243.5 软件测试的工作范畴软件测试的工作范畴25小结小结 了解软件测试的重要性了解软件测试的重要性 软件测试员的目标软件测试员的目标 在软件开发中扮演角色在软件开发中扮演角色软件测试遵循的原则软件测试遵循的原则26Q & A