软件测试策略与过程精.ppt
《软件测试策略与过程精.ppt》由会员分享,可在线阅读,更多相关《软件测试策略与过程精.ppt(152页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件测试策略与过程第1页,本讲稿共152页本章教学目标本章教学目标理解软件测试的复杂性理解软件测试的方法与策略明确单元测试的主要任务和过程明确集成测试的方法和确认测试的准则明确系统测试的八个领域测试要点明确验收测试的主要内容和相关配置第2页,本讲稿共152页概况概况定定义义:为为了了发现发现程序的程序的错误错误而而执执行程序的行程序的过过程程软软件件测试测试是是SQA的重要手段,属于的重要手段,属于软软件工程件工程领领域域目前状况目前状况软软件件测试测试的的实实践性大于理践性大于理论论性性软软件件测试测试理理论论体系尚不成熟体系尚不成熟软软件件测试测试工具尚不成熟工具尚不成熟软软件件测试测试效
2、果效果对对于个人的依于个人的依赖赖性比性比较较大大第3页,本讲稿共152页目的目的为为了了寻寻找找错误错误,并尽可能地,并尽可能地为为修正修正错误错误提供更提供更多的信息多的信息为为了了证证明明软软件有件有错误错误,而不,而不证证明明软软件没有件没有错误错误作用作用发现发现并管理缺陷并管理缺陷度量度量质质量量评评价工作效率和效果价工作效率和效果预预期期项项目目风险风险第4页,本讲稿共152页衡量衡量标标准准多多能能够够找到尽可能多的、以至于所有的找到尽可能多的、以至于所有的BUG快快能能够够尽可能早地尽可能早地发现发现最最严严重的重的BUG好好找到的找到的BUG是关是关键键的、用的、用户户最关
3、心的最关心的找到找到BUG后能后能够够重重现现找到的找到的BUG,并,并为为修正修正BUG提供提供尽可能多的信息尽可能多的信息省省能能够够用最少的用最少的时间时间、人力和、人力和资资源源发现发现BUG测试测试的的过过程和数据可以重用程和数据可以重用第5页,本讲稿共152页4.1 软件测试的复杂性分析软件测试的复杂性分析 1、无法对程序进行完全测试、无法对程序进行完全测试 (1)测试所需要的输入量太大)测试所需要的输入量太大 (2)测试的输出结果太多)测试的输出结果太多 (3)软件实现的途径太多)软件实现的途径太多 (4)软件规格说明没有一个客观标准)软件规格说明没有一个客观标准 2、测试无法显
4、示潜在的软件缺陷和故障、测试无法显示潜在的软件缺陷和故障 通过软件测试只能报告软件已被发现的缺陷和故障,通过软件测试只能报告软件已被发现的缺陷和故障,无法报告隐藏的软件故障。无法报告隐藏的软件故障。3、存在的故障现象与发现的故障数量成正比、存在的故障现象与发现的故障数量成正比 结论:应当对故障集中的程序段进行重点测试结论:应当对故障集中的程序段进行重点测试第6页,本讲稿共152页软件测试的复杂性分析软件测试的复杂性分析(续)(续)4、不能修复所有的软件故障、不能修复所有的软件故障 原因:没有足够的时间进行修复;修复的风险较大;原因:没有足够的时间进行修复;修复的风险较大;不值得修复;可不算做故
5、障的一些缺陷;不值得修复;可不算做故障的一些缺陷;“杀虫剂现杀虫剂现象象”。结论:关键是要进行正确的判断、合理的取舍,根据风结论:关键是要进行正确的判断、合理的取舍,根据风险分析决定哪些故障必须修复,哪些故障可以不修复。险分析决定哪些故障必须修复,哪些故障可以不修复。5、软件测试的代价、软件测试的代价 工作原则:就是如何将无边无际的可能性减小到一个工作原则:就是如何将无边无际的可能性减小到一个可以控制的范围,以及如何针对软件风险做出恰当选择,可以控制的范围,以及如何针对软件风险做出恰当选择,去粗存精,找到最佳的测试量,使得测试工作量不多也不去粗存精,找到最佳的测试量,使得测试工作量不多也不少,
6、既能达到测试的目的,又能较为经济。少,既能达到测试的目的,又能较为经济。第7页,本讲稿共152页4.2 软件测试方法与策略软件测试方法与策略4.2.1 静态测试与动态测试4.2.2 黑盒测试与白盒测试4.2.3 软件测试过程第9页,本讲稿共152页软件测试策略软件测试策略什么是软件测试策略?什么是软件测试策略?是为软件工程过程定义的一个软件测试的模板,也就是为软件工程过程定义的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤。是把特定的测试用例方法放置进去的一系列步骤。软件测试策略包含的特征:软件测试策略包含的特征:(1)测试从模块层开始,然后扩大延伸到整个基于计算机的)测试
7、从模块层开始,然后扩大延伸到整个基于计算机的系统集合中。系统集合中。(2)不同的测试技术适用于不同的时间点。)不同的测试技术适用于不同的时间点。(3)测试是由软件的开发人员和(对于大型系统而言)独)测试是由软件的开发人员和(对于大型系统而言)独立的测试组来管理的。立的测试组来管理的。(4)测试和调试是不同的活动,但是调试必须能够适应任何的测)测试和调试是不同的活动,但是调试必须能够适应任何的测试策略。试策略。第10页,本讲稿共152页软件测试充分性准则软件测试充分性准则对任何软件都存在有限的充分测试集合。对任何软件都存在有限的充分测试集合。如果一个软件系统在一个测试数据集合上的测试是充分的,那
8、如果一个软件系统在一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的。这一特性称为么再多测试一些数据也应该是充分的。这一特性称为单调性单调性。即使对软件所有成分都进行了充分的测试,也并不表明整个即使对软件所有成分都进行了充分的测试,也并不表明整个软件的测试已经充分了。这一特性称为软件的测试已经充分了。这一特性称为非复合性非复合性。即使对软件系统整体的测试是充分的,也并不意味软件系即使对软件系统整体的测试是充分的,也并不意味软件系统中各个成分都已经充分地得到了测试。这个特性称为统中各个成分都已经充分地得到了测试。这个特性称为非非分解性分解性。软件测试的充分性应该与软件的需求和软
9、件的实现都相关。软件测试的充分性应该与软件的需求和软件的实现都相关。软件越复杂,需要的测试数据就越多。这一特性称为软件越复杂,需要的测试数据就越多。这一特性称为复杂性复杂性。测试得越多,进一步测试所能得到的充分性增长就越少。这测试得越多,进一步测试所能得到的充分性增长就越少。这一特性称为一特性称为回报递减率回报递减率。第11页,本讲稿共152页测试技术测试技术不实际运行程序,而是通过检查和阅读等手段来发现错误并评估代码质量的软件测试技术。也称为静态分析技术。实际运行程序,并通过观察程序运行的实际结果来发现错误的软件测试技术。在不知道程序内部结构,只知道程序规格的情况下采用的测试技术或策略。在知
10、道程序内部结构的情况下采用的测试技术或策略。开发组内部进行的,采用讲解、讨论和模拟运行的方式进行的查找错误的活动。开发组内部进行的,采用讲解、提问并使用Checklist方式进行的查找错误的活动。一般有正式的计划、流程和结果报告。开发组、测试组和相关人员(QA、产品经理等)联合进行的,采用讲解、提问并使用Checklist方式进行的查找错误的活动。一般有正式的计划、流程和结果报告。针对要求的程序功能,按照规范的流程进行的测试。针对要求的程序功能以外的其他要求,包括性能、安全、配置、负载等指标,按照规范的流程进行的测试。针对要求的程序功能、性能、安全、配置、负载等指标,基于破坏目的、按照经验进行
11、的随机测试。程序修改或者版本更新以后,为了确保以前正确的功能和其他指标仍旧正确,而重新进行的测试。在测试过程中,选择足够的测试用例,使得每一个可执行语句至少被执行一次。在测试过程中,选择足够的测试用例,使得程序中的每一个分支判断的每一种可能结果都至少被执行一次。在测试过程中,选择足够的测试用例,使得程序中的每一条可能执行的路径都至少执行一次。第12页,本讲稿共152页测试过程测试过程规格定义设计编码系统测试集成测试单元测试用户需求验收测试回归测试配置管理缺陷跟踪 第13页,本讲稿共152页4.2.1 静态测试与动态测试静态测试与动态测试1、静态测试静态测试静态测试不实际运行软件,主要是对软件的
12、编程格式、结静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估。构等方面进行评估。静态测试包括代码检查静态测试包括代码检查 、静态结构分析、静态结构分析 、代码质量、代码质量度量度量 等。它可以由人工进行,也可以借助软件工具自动进等。它可以由人工进行,也可以借助软件工具自动进行。行。静态测试方法也可利用计算机作为对被测程序进行特性分析的静态测试方法也可利用计算机作为对被测程序进行特性分析的工具,但与人工测试方式有着根本区别。另一方面,因它并不工具,但与人工测试方式有着根本区别。另一方面,因它并不真正运行被测程序,只进行特性分析,这又与动态方法不同。真正运行被测程序,只进行特性分
13、析,这又与动态方法不同。所以,静态方法常常称为所以,静态方法常常称为“分析分析”,静态测试是对被测程序进,静态测试是对被测程序进行特性分析方法的总称。行特性分析方法的总称。第14页,本讲稿共152页静态测试与动态测试静态测试与动态测试(续)(续)静态测试阶段的任务:静态测试阶段的任务:(1)检查算法的逻辑正确性。)检查算法的逻辑正确性。(2)检查模块接口的正确性。)检查模块接口的正确性。(3)检查输入参数是否有合法性检查。)检查输入参数是否有合法性检查。(4)检查调用其他模块的接口是否正确。)检查调用其他模块的接口是否正确。(5)检查是否设置了适当的出错处理。)检查是否设置了适当的出错处理。(
14、6)检查表达式、语句是否正确,是否含有二义性。)检查表达式、语句是否正确,是否含有二义性。(7)检查常量或全局变量使用是否正确。)检查常量或全局变量使用是否正确。(8)检查标识符的使用是否规范、一致。)检查标识符的使用是否规范、一致。(9)检查程序风格的一致性、规范性。)检查程序风格的一致性、规范性。(10)检查代码是否可以优化,算法效率是否最高。)检查代码是否可以优化,算法效率是否最高。(11)检查代码注释是否完整,是否正确反映了代码的功能。)检查代码注释是否完整,是否正确反映了代码的功能。第18页,本讲稿共152页静态测试与动态测试静态测试与动态测试(续)(续)静态测试可以完成以下工作:静
15、态测试可以完成以下工作:(1)发发现现下下列列程程序序的的错错误误:错错用用局局部部变变量量和和全全局局变变量量;未未定定义义的的变变量量、不不匹匹配配的的参参数数;不不适适当当的的循循环环嵌嵌套套或或分分支支嵌嵌套套、死死循循环环、不不允允许许的的递递归归;调调用用不不存存在在的的子子程程序序,遗遗漏漏标标号号或或代代码。码。(2)找找出出以以下下问问题题的的根根源源:从从未未使使用用过过的的变变量量;不不会会执执行行到到的的代码、从未使用过的标号;潜在的死循环。代码、从未使用过的标号;潜在的死循环。(3)提提供供程程序序缺缺陷陷的的间间接接信信息息:所所用用变变量量和和常常量量的的交交叉叉
16、应应用用表表;是是否否违违背背编编码码规规则则;标标识识符符的的使使用用方方法法和和过过程程的的调调用层次。用层次。(4)为进一步查找做好准备。)为进一步查找做好准备。(5)选择测试用例。)选择测试用例。(6)进行符号测试。)进行符号测试。第19页,本讲稿共152页静态测试与动态测试静态测试与动态测试(续)(续)2、动态测试、动态测试动态方法的主要特征是:动态方法的主要特征是:计算机必须真正运行被测试的程序,通过输入测试计算机必须真正运行被测试的程序,通过输入测试用例,对其运行情况即输入与输出的对应关系进行分析,用例,对其运行情况即输入与输出的对应关系进行分析,以达到检测的目的。以达到检测的目
17、的。动态测试包括:动态测试包括:(1)功能确认与接口测试)功能确认与接口测试 (2)覆盖率分析)覆盖率分析 (3)性能分析)性能分析 (4)内存分析)内存分析第20页,本讲稿共152页4.2.2 黑盒测试和白盒测试黑盒测试和白盒测试若测试规划是基于产品的功能,目的是检查程序各个功能是若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这种测试方法称为否能够实现,并检查其中的功能错误,则这种测试方法称为黑盒测试黑盒测试(Black-box Testing)方法。方法。黑盒测试又称为功能测试、数据驱动测试和基于规格说黑盒测试又称为功能测试、数据驱动测试和基于规格
18、说明的测试。它是一种从用户观点出发的测试,一般被用来确明的测试。它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。认软件功能的正确性和可操作性。若若测测试试规规划划基基于于产产品品的的内内部部结结构构进进行行测测试试,检检查查内内部部操操作作是是否否按按规规定定执执行行,软软件件各各个个部部分分功功能能是是否否得得到到充充分分使使用用,则则这这种测试方法称为种测试方法称为白盒测试白盒测试(White-box Testing)方法。方法。白白盒盒测测试试又又称称为为结结构构测测试试、逻逻辑辑驱驱动动测测试试或或基基于于程程序序的的测测试,一般用来分析程序的内部结构。试,一般
19、用来分析程序的内部结构。第21页,本讲稿共152页黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)白盒测试白盒测试黑盒测试黑盒测试两种测试方法从完全不同的角度出发,两种测试方法从完全不同的角度出发,反映了测试思路的两方面情况,适用于反映了测试思路的两方面情况,适用于不同的测试阶段。不同的测试阶段。第22页,本讲稿共152页黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)1、黑盒测试、黑盒测试黑盒测试的基本观点是:任何程序都可以看作是从输入定义域映黑盒测试的基本观点是:任何程序都可以看作是从输入定义域映射到输出值域的函数过程,被测程序被认为是一个打不开的黑盒射到输出值域的函数过程,被测程序被认为
20、是一个打不开的黑盒子,黑盒中的内容(实现过程)完全不知道,只明确要做到什么。子,黑盒中的内容(实现过程)完全不知道,只明确要做到什么。黑盒测试黑盒测试主要根据规格说明书设计测试用例,并不涉及程序主要根据规格说明书设计测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出之间的关内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。系或程序的功能设计测试用例。黑盒测试的特点:(黑盒测试的特点:(1)黑盒测试与软件的具体实现过程无关,)黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。在软件实现的过程发生变化时,测试用例仍然可
21、以使用。(2)黑盒测试用例的设计可以和软件实现同时进行,这)黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。样能够压缩总的开发时间。第23页,本讲稿共152页黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)输入输入输出输出黑盒测试是在程序接口进行测试,它只是检查程序功黑盒测试是在程序接口进行测试,它只是检查程序功黑盒测试是在程序接口进行测试,它只是检查程序功黑盒测试是在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用。能是否按照规格说明书的规定正常使用。能是否按照规格说明书的规定正常使用。能是否按照规格说明书的规定正常使用。也被称为用也被称为用也被称为用
22、也被称为用户测试户测试户测试户测试。第24页,本讲稿共152页黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)黑盒测试主要是为了发现以下几类错误:黑盒测试主要是为了发现以下几类错误:是否有不正确或遗漏了的功能?是否有不正确或遗漏了的功能?在在接接口口上上,输输入入能能否否正正确确地地接接受受?能能否否输输出出正正确确的的结结果?果?是否有数据结构错误或外部信息访问错误?是否有数据结构错误或外部信息访问错误?性能上是否能够满足要求?性能上是否能够满足要求?是否有初始化或终止性错误?是否有初始化或终止性错误?黑盒测试的难点:在哪个层次上进行测试?黑盒测试的难点:在哪个层次上进行测试?黑盒测试的具体
23、技术方法黑盒测试的具体技术方法:边界值分析法边界值分析法 等价类划分法等价类划分法 因果图法因果图法 决策表法决策表法第25页,本讲稿共152页黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)2、白盒测试、白盒测试白盒测试将被测程序看作一个打开的盒子,测试者能够看到被测白盒测试将被测程序看作一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。根据其内部结构设计测试用例。白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或白盒测试要求是对某些程序的结构特性做到一定程度的覆
24、盖,或者说这种测试是者说这种测试是“基于覆盖率的测试基于覆盖率的测试”。通常的程序结构覆盖有:通常的程序结构覆盖有:语句覆盖语句覆盖 判定覆盖判定覆盖 条件覆盖条件覆盖 判定判定/条件覆盖条件覆盖 路径覆盖路径覆盖第26页,本讲稿共152页黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)白盒测试需要白盒测试需要完全了解程序结构和处理过程,完全了解程序结构和处理过程,它按照程序内部逻辑测试程序,检验程序中它按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作。每条通路是否按预定要求正确工作。也被称也被称为程序员测试。为程序员测试。应用程序应用程序第27页,本讲稿共152页黑盒测试和
25、白盒测试黑盒测试和白盒测试(续)(续)?X=2 y=2x Y=4 X=2Y=4未知等式与已知等式黑盒黑盒白盒白盒3 3、黑盒测试法和白盒测试法的比较、黑盒测试法和白盒测试法的比较第28页,本讲稿共152页黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)黑盒测试:黑盒测试:以用户的观点,从输入数据与输出数据的对应关系,即以用户的观点,从输入数据与输出数据的对应关系,即根据程序外部特性进行测试,而不考虑内部结构及工作情况。根据程序外部特性进行测试,而不考虑内部结构及工作情况。黑盒测试技术注重于软件的信息域(范围),通过划黑盒测试技术注重于软件的信息域(范围),通过划分程序的输入和输出域来确定测试用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 策略 过程
限制150内