


Click to edit Master title style,Click to edit Master text styles,Second Level,Third Level,Fourth Level,Fifth Level,万江平 2006软件工程,第七章,*,软件测试,内容,软件测试的目的和原则,软件测试的对象,测试与软件开发各阶段的关系,电子商务测试,软件测试过程,软件测试知识域主题的本体结构,测试技术,测试级别,软件测试基础,测试有关的术语,关键问题,测试与其它活动的联系,测试对象,测试目标,基于测试人员的直觉和经验,基于应用本质,软件测试,基于规格说明,基于代码,基于错误,选择和组合技术,测试相关的度量,评价被测程序,评价完成的测试,测试过程,实际考虑,测试活动,二十条软件测试的基本原则,验证需求原则,测试计划原则,第三方原则,发现错误原则,软件价值原则,测试成功原则,错误集群原则,黑盒白盒原则,测试用例原则,输入条件原则,超负荷原则,实事求是原则,复杂性度量原则,度量标准原则,有效覆盖原则,集成测试原则,工具原则,错误根源原则,知识管理原则,管理重要原则,什么是软件测试,软件测试是为了发现错误而执行程序的过程,软件测试是根据软件开发各阶段的规格说明和程序内部结构而精确设计一批测试用例(即输入数据和及预期的输出结果),并利用这些测试用例去运行程序,以发现错误的过程。
软件生存期各个阶段之间需要保持正确性,相符吗?,运行结果,计算机:,程序结果,用户需求,用户:,我要什么?,需求说明书,分析员:,能提供什么?,源程序,程序员:,怎么做?,设计说明书,设计员:,软件做什么?,运行正确性,输入正确性,理解正确性,编码正确性,理解正确性,设计正确性,表达正确性,理解正确性,表达正确性,1,2,3,4,测试数据流,测试,结果,分析,测试,排错,可靠性分析,测试,软件配置,测试配置,测试工具,改正的软件,预期结果,出错率数据,预测的可靠性,测试,结果,软件测试与软件开发过程的关系,需求分析,设计,编程,确认测试,集成测试,单元测试,需求分析,说明书,概要设计,说明书,详细设计,说明书,源程序,代码,单元,测试,确认,测试,集成,测试,分析,两种类型的测试,已知产品的功能设计规格,可以进行测试证明每个实现的功能是否符合要求已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经经过检查黑盒测试,是否有不正确或遗漏了的功能?,在接口上,输入能否正确地接受?能否输出正确的结果?,是否有数据结构或外部信息(例如数据文件)访问错误?,性能上是否能够满足要求?,是否有初始化或终止性错误?,白盒测试,对程序模块的所有独立的执行路径至少测试一次,对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一次,在循环的边界和运行界限内执行循环体,测试内部数据的有效性等,软件测试的过程,.,.,.,单元,测试,单元,测试,集成,测试,单元,测试,确认,测试,系统,测试,被测模块,被测模块,被测模块,软件需求,设计信息,系统其它元素,已经过测试的模块,已集成,的软件,已确认的软件,可交付的软件,单元测试的工作,模块,模块接口,出错处理,局部数据结构,边界条件,独立路径,单元测试环境,驱动模块,测试结果,被测模块,桩模块,测试用例,桩模块,桩模块,集成测试考虑的问题,在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失,一个模块的功能是否会对另一个模块的功能产生不利的影响,各个子功能组合起来,能否达到预期要求的父功能,全局数据结构是否有问题,单个模块的误差累积起来,是否会放大,从而达到不能接受的程度,确认测试(有效性测试),验证软件的功能和性能及其它特性是否与用户的要求一致,对软件的功能和性能要求在软件需求规格说明中已明确规定,测试和,测试,测试是由一个用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。
测试的目的是评价软件产品的,FLURPS(,即功能、局部化、可使用性、可靠性、性能和支持)尤其注重产品的界面和特色测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试与,测试不同,开发者通常不在测试现场测试主要衡量产品的,FLURPS重于产品的支持性、包括文档、客户培训和支持产品生产能力只有,测试达到一定的可靠程度时,才能开始,测试确认测试过程,有效性测试,软件配置审查,管理机构裁决,专家,鉴定会,选择测试人员,构造测试用例,支持环境,实际运行测试,软件计划,开发文档,用户文档,测试文本,运行维护,交用户,软件配置,测试报告,系统测试,系统测试是将通过确认测试的软件,作为整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试系统测试的目的在于与系统的需求定义进行比较,发现软件与系统定义不符合或与之矛盾的地方系统测试的测试用例应根据需求说明书来设计,并在实际使用环境下来运行测试计划模板,确定要进行的测试的范围,估计时间、资源、人、硬件、软件和工具,提供所需的资源,提供测试环境,为任务指派人手,制定进度表,确定风险和应急计划,追踪项目进度并采取纠正措施,定期提供已通过的测试、堵塞的测试以及失败的测试的状态,如果项目范围出现变动,就重新制定计划,进行事后分析以吸取教训,测试计划样本,活动,资源名称,开始日期,结束/重新计划日期,评论,评审需求,测试小组,15.02.2006,16.02.2001,完成,总体测试计划和评审,测试经理,15.02.2006,28.02.2001,完成,系统测试计划和评审,测试员1,01.03.2006,22.03.2006,完成,性能测试计划和评审,测试员2,15.03.2006,31.03.2006,完成,可用性测试计划和评审,测试员2,08.03.2006,31.03.2006,完成,回归计划和评审,测试员1,01.03.2006,15.03.2006,完成,建立测试环境,测试员1,15.03.2006,31.03.2006,完成,系统测试和缺陷再测试,测试员1,01.04.2006,31.05.2006,进行中,性能测试和缺陷再测试,测试员2,15.04.2006,07.05.2006,可用性测试,测试员2,01.04.2006,15.04.2006,完成,回归测试,测试员2,07.05.2006,31.05.2006,测试报告,测试经理,01.04.2006,31.05.2006,进行中,简化的测试过程,测试,计划,建立测试环境,评审,需求,测试用例定义,接受移交,测试,执行,测试,报告,事后,分析,测试类型,测试类型,内 容,单元测试,此测试由软件开发人员来进行,它验证的是模块的正确性,部件测试,此测试用于验证软件部件的正确性,以确保部件正确和可复用。
它由开发人员或独立的测试小组来进行,系统测试,这种测试通常由独立的测试小组来实施,其目标是验证整个系统的正确性,性能测试,此测试通常由独立的测试小组实施,其目标是保证系统的性能在已定义的性能限制范围内这种测试一般需要一些工具来模拟很多客户和重负载,获得精确的性能度量,负载/强度测试,采用负载/强度测试来验证系统性能在长期或短期重系统负载的情况下,是否仍介于约定的限制范围内要获得精确的性能度量可能需要使用一些工具,浏览器兼容性测试,此测试专用于,Web,应用,它验证,Web,站点针对其所支持的不同浏览器时功能的正确性,可用性测试,其目标是验证软件易于使用,应用的外观和感觉都很好,安全测试,其目标是验证保密性、完整性和可用性需求得到满足,回归测试,其目标是验证软件做出改动或纠正时,仍然保留了其核心功能可以采用测试工具来提高回归测试的生产率和效率,仿真测试,仿真测试的目标是模拟现实系统中当前还不存在的或在现实生活环境中难以复制的一部分系统仿真测试的效果依赖于仿真与现实的匹配程度,验收测试,此测试由客户来实施,其目标是在软件验收之前验证其是否与客户期望相匹配,测试用例格式,测试用例的目的,实施测试用例所需的设置,测试用例的输入,测试过程,期望的输出或结果,测试组要回答的问题,软件目前的质量如何?,产品的稳定性如何?,产品现在是否准备发行?,移交的软件的质量有多好?,对软件进行测试的效果如何?,有多少公开的问题?,还要进行多少测试?,工具评估表,需求工具,工具1,工具2,工具,K,需求1,优,差,优,需求2,差,中,优,需求,n,差,优,优,电子商务特征,一切都是新的,是一个有数百万的服务器和数十亿的参与者的分布式系统,通常需要快速的应用开发,少量设计、少量实施、少量测试,飞速变化的技术,用户可能是未知的,浏览器可能是未知的,高利用率(24*365),Web,站点的外观和感觉非常重要,其性能可能是不可预见的,安全威胁可能无处不在,Web,测试,静态测试,单元测试,功能测试,浏览器兼容性测试,可用性测试,安全性测试,负载性能强度测试,利用率测试,部署后测试,累计缺陷,样例项目中的缺陷类型,追踪矩阵举例,需求小节(编号),相应的设计小节,相应的测试计划小节,评论/风险,R1.1,D1.4,、,D1.5,、,D3.2,T1.2,、,T1.7,R1.2,D1.8,、,D8.3,T1.4,R1.3,D2.2,T1.3,R1.50,D20.1,、,D30.4,T20.1,、,T24.2,要点,测试是为评价、改进产品质量、标识产品的缺陷和问题而进行的活动。
软件测试由一个程序的行为在有限测试用例集合上,针对期望的行为的动态验证组成,测试用例是从通常的无限执行域中适当选取的软件测试过程可概括为用单元测试保证模块正确工作,用集成测试保证模块集成到一起后正常工作,用确认测试保证软件需求的满足,用系统测试保证软件与其它系统元素合成后达到系统各项性能要求要点,软件测试过程包括测试计划、测试环境的建立、测试用例的定义、测试的实施、缺陷报告以及测试管理和报告各种类型的测试,包括黑盒测试和白盒测试、单元测试和集成测试、系统测试、性能测试、保密测试和可用性测试相关中国系统分析员论文题目,论软件测试的策略与环境(2000),论软件测试计划的制定(2004),相关世界软件工程大会论文,Improving test suites for efficient fault localization,Demand-driven structural testing with dynamic instrumentation,Improving web application testing with user session data,A history-based test prioritization technique for regression testing in resource constrained environments,Anywhere,anytime code inspections:using the Web to remove inspection bottlenecks in large-scale software development,The software knowledge base,。