2001-2010软件测试培训课程2001-20102020年2月23日2软件测试培训课程第1单元软件测试概述第2单元软件测试设计技术第3单元软件测试策略与方法第4单元系统测试方法及实践第5单元测试自动化及测试工具第6单元软件测试管理2001-20102020年2月23日3第1单元软件测试概述软件测试基本概念软件测试目标和必要性软件开发与软件测试软件测试流程软件测试类型软件测试经验谈软件测试知识体系2001-20102020年2月23日4软件测试概述单元目标掌握软件测试的基本概念理解软件测试的目标和必要性理解软件测试与软件开发的相互关系熟悉软件测试的工作流程和阶段划分熟悉常用的软件测试类型学习软件测试专家的宝贵经验了解软件测试的知识体系结构2001-20102020年2月23日5软件测试概述讨论题是否有解决软件测试难题的“银弹”?测试工具测试方法其他2001-20102020年2月23日6软件测试概述凡事只要有可能出错,那就一定会出错。——墨菲定律2001-20102020年2月23日7软件测试概述软件测试基本概念软件产品软件工作产品/测试件软件质量测试案例软件缺陷测试脚本/测试包软件测试2001-20102020年2月23日8软件测试概述软件测试基本概念软件产品SoftwareProduct需要交付客户/用户并投入运行的项目工作结果软件产品=程序+数据+文档程序:可执行程序、安装程序、卸载程序数据:数据库/数据文件文档:用户文档、联机帮助、其他文档2001-20102020年2月23日9软件测试概述软件测试基本概念软件产品软件产品分类系统软件产品盒装应用软件产品定制应用软件产品嵌入式软件产品Web应用2001-20102020年2月23日10软件测试概述软件测试基本概念软件工作产品SoftwareWorkProduct在开发和维护软件产品的过程中产生的工作结果包括不一定交付用户的中间结果包括交付用户的软件产品2001-20102020年2月23日11软件测试概述软件测试基本概念软件工作产品软件工作产品实例技术方面项目前景文档、需求规格说明书软件设计说明书、程序代码测试案例、测试数据、缺陷报告、测试报告用户文档、联机帮助、可运行程序管理方面项目计划、测试计划、项目状态报告2001-20102020年2月23日12软件测试概述软件测试基本概念软件工作产品软件工作产品实例测试工作产品、测试件(Testware)测试计划、测试周期报告测试案例、测试数据、测试脚本缺陷报告、测试报告测试代码2001-20102020年2月23日13软件测试概述软件测试基本概念软件质量SoftwareQuality软件质量是软件产品满足要求的程度满足谁——客户方、开发方、其他方要求是什么——明示的、通常隐含的或必须履行的需求或期望2001-20102020年2月23日14软件测试概述软件测试基本概念软件质量软件产品的外部质量特性:(客户方)正确性—正确的输出(正确的功能)性能—响应时间、处理吞吐量、资源占用量、极限能力可靠性—平均故障间隔时间、平均故障修复时间、数据准确度完整性/安全性—数据完整、信息安全易用性—用户使用的难易程度2001-20102020年2月23日15软件测试概述软件测试基本概念软件质量软件产品的外部质量特性:(客户方)灵活性—新增功能、升级的难易程度互操作性—与其他软件系统的集成以及数据交换标准化—国际/国家标准、行业标准、内部规范兼容性—与用户现行系统的兼容国际化—不同国家/地区的版本容错性—在故障发生时继续正常工作的能力2001-20102020年2月23日16软件测试概述软件测试基本概念软件质量软件产品的内部质量特性:(开发方)可维护性—维护软件产品的难易程度可测试性—测试软件产品的难易程度可重用性—软件产品部件的重用性和被重用性可移植性—移植到不同系统平台的难易程度标准化——软件项目的技术和管理标准2001-20102020年2月23日17软件测试概述软件测试基本概念测试案例TestCase也称测试用例定义运行案例:在给定的运行条件下,给定一个或一组输入,运行软件产品,就会产生一个运行结果。这就是一个运行案例。测试案例:为了测试所开发的软件产品而设计的运行案例,如果按照这个案例运行这个产品,就可以观测这个产品是否产生预期的运行结果。2001-20102020年2月23日18软件测试概述软件测试基本概念测试案例一个实例Nokia6230简体中文版短信功能的测试案例2001-20102020年2月23日19软件测试概述讨论题请观察CanonPhotoRecord2.0的一个运行案例。应以什么为标准来判断被测试的程序中出现了一个软件缺陷(俗称Bug)?2001-20102020年2月23日20软件测试概述软件测试基本概念软件缺陷SoftwareDefect软件缺陷的产生软件生产流程缺陷的引入与消除、缺陷潜伏期2001-20102020年2月23日21软件测试概述2001-20102020年2月23日22软件测试概述软件测试基本概念软件缺陷软件缺陷的产生软件缺陷产生于下游与上游的不一致软件质量问题实质上是上下游一致性问题高质量=高度一致性上游软件工作产品变更导致下游产品变更,变更中很可能产生不一致2001-20102020年2月23日23软件测试概述软件测试基本概念软件缺陷“软件之河”的源头——用户实际需求软件工作产品/软件产品的检验标准用户实际需求——载体——需求规格说明书需求规格说明书是软件测试的主要依据2001-20102020年2月23日24软件测试概述软件测试基本概念软件缺陷定义一所开发的软件产品与用户实际需求/需求规格说明书不一致,或与内部质量要求不一致2001-20102020年2月23日25软件测试概述软件测试基本概念软件缺陷定义一内部质量要求用户界面规范外部接口规范数据文件/数据库规范内部文档规范内部设计/实现规范其他2001-20102020年2月23日26软件测试概述软件测试基本概念软件缺陷定义二(软件测试观点)软件产品的运行结果与预期的正确结果不一致判断依据:测试案例2001-20102020年2月23日27软件测试概述软件测试基本概念测试脚本/测试包TestScript/TestPackage测试脚本是描述测试案例执行步骤的一组指令测试脚本可以包含一个或一组测试案例自动测试脚本2001-20102020年2月23日28软件测试概述软件测试基本概念测试脚本/测试包测试包是为了实现一个测试目的或测试一个功能部件而编制的一组测试案例这些测试案例是逻辑相关的例如:性能测试包、冒烟测试包、一个子系统的测试包2001-20102020年2月23日29软件测试概述软件测试基本概念软件测试SoftwareTesting软件测试是通过运行所开发的软件产品,识别和控制软件缺陷,以验证和确认用户需求已得到满足的过程2001-20102020年2月23日30软件测试概述软件测试基本概念软件测试几点分析软件测试的对象是软件产品通过运行软件产品发现软件缺陷并加以控制目的是验证和确认用户需求已得到满足软件测试不包含程序的修改作为软件工作产品的检查和评审的辅助手段2001-20102020年2月23日31软件测试概述软件测试基本概念软件测试软件工作产品的检查和评审个人评审、小组评审应用检查表方法Checklist2001-20102020年2月23日32软件测试概述讨论题许多项目的真实情况是:软件需求规格说明书不完整,或者没有写清楚用户实际需求。谁应对软件需求规格说明书负责?这种情况下如何做软件测试?2001-20102020年2月23日33软件测试概述软件测试目标和必要性软件测试目标验证和确认开发的软件产品与用户实际需求/需求规格说明书相符合以最少的时间和成本尽可能多地找出所开发的软件产品中的软件缺陷尽早发现至今尚未发现的软件缺陷,不是证明产品中没有软件缺陷收集测试结果数据,为质量分析和产品放行提供依据2001-20102020年2月23日34软件测试概述软件测试目标和必要性软件测试目标软件测试达不到的目标证明软件产品没有软件缺陷发现软件产品中的所有软件缺陷2001-20102020年2月23日35软件测试概述软件测试目标和必要性软件测试目标测试重点:用户可能遇到和关注的软件缺陷2001-20102020年2月23日36软件测试概述软件测试目标和必要性软件测试目标尽可能把软件缺陷消除于软件测试前,而不应过多寄托于软件测试软件缺陷分布:分析设计64%,编码实现36%软件测试发现软件缺陷的效果和效率一般明显不如软件工作产品的检查过度测试会影响进度和增加成本2001-20102020年2月23日37软件测试概述软件测试目标和必要性软件测试目标软件质量与开发进度的关系2001-20102020年2月23日38软件测试概述软件测试目标和必要性软件测试必要性软件缺陷的不可避免性人的认识能力、表达能力、理解能力、技术能力的局限性、变化性工作语言(一般为自然语言)的多义性、模糊性自然语言——转换——程序语言多义、模糊一义、精确2001-20102020年2月23日39软件测试概述软件测试目标和必要性软件测试必要性软件缺陷的不可避免性软件的指数级复杂度问题输入值组合数、执行路径数、运行环境的状态数不可能穷尽所有可能性2001-20102020年2月23日40软件测试概述软件测试目标和必要性软件测试必要性软件缺陷的危害性人身伤害——医疗设备、核反应堆、飞行器客户利益——经济、无形公司利益——公司形象、客户满意度、经济利益用户利益——开发方、运营方(客户)、用户例如,银行、证券、电信公众利益——政府项目2001-20102020年2月23日41软件测试概述软件测试目标和必要性软件测试必要性软件测试与软件成本软件成本=开发费用+维护费用+其他关于修复软件缺陷的成本的研究数据:设计期间1,编码期间6.5,测试期间15,交付以后60—200测试/交付成本放大因子4—14发现和修复产品中的软件缺陷越早,开发费用越低软件质量越高,软件产品发布后的维护费用越低2001-20102020年2月23日42软件测试概述软件测试目标和必要性软件测试必要性中国软件企业在软件测试方面与国际水准仍存在较大的差距认识上的差距:重开发、轻测试,将测试置于从属地位;没有认识到软件项目的成功不仅取决于开发人员,而且取决于测试人员。管理上的差距:随意化、简单化,未建立有效的、规范的软件测试管理体系。工具上的差距:缺少自动化工具的支持,一般没有采用软件测试管理系统。2001-20102020年2月23日43软件测试概述软件开发与软件测试软件生产流程的改进——V模型2001-20102020年2月23日44软件测试概述软件开发与软件测试软件生产流程的改进——V模型测试活动与开发活动一一对应测试活动与开发活动同步进行测试设计是对应开发活动的辅助验证测试运行是对应开发活动的结果确认2001-20102020年2月23日45软件测试概述软件开发与软件测试测试设计与软件工作产品的检查结合设计验收测试案例时检查项目前景文档,发现用户需求缺陷设计系统测试案例时检查需求规格说明书,发现软件需求缺陷设计集成测试案例时检查概要设计,发现软件结构设计缺陷设计单元测试案例时检查详细设计说明书及程序代码,发现详细设计和程