第2章软件测试策略与过程课件.ppt
《第2章软件测试策略与过程课件.ppt》由会员分享,可在线阅读,更多相关《第2章软件测试策略与过程课件.ppt(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2章章 软件测试策略与过程软件测试策略与过程2.12.1软件测试的复杂性分析软件测试的复杂性分析2.22.2软件测试方法与策略软件测试方法与策略2.32.3单元测试单元测试2.42.4集成测试集成测试2.52.5确认测试确认测试2.62.6系统测试系统测试2.72.7验收测试验收测试2.82.8测试后的调试测试后的调试2.92.9面向对象的软件测试面向对象的软件测试2.1 软件测试的复杂性分析软件测试的复杂性分析11、无法对程序进行完全测试、无法对程序进行完全测试(1 1)测试所需要的输入量太大)测试所需要的输入量太大(2 2)测试的输出结果太多)测试的输出结果太多(3 3)软件实现的途径
2、太多)软件实现的途径太多(4 4)软件规格说明没有一个客观标准)软件规格说明没有一个客观标准22、测试无法显示潜在的软件缺陷和故障、测试无法显示潜在的软件缺陷和故障通过软件测试只能报告软件已被发现的缺陷和故障,无法报告隐通过软件测试只能报告软件已被发现的缺陷和故障,无法报告隐藏的软件故障。藏的软件故障。33、存在的故障数量与发现的故障数量成正比、存在的故障数量与发现的故障数量成正比 结论:应当对故障集中的程序段进行重点测试结论:应当对故障集中的程序段进行重点测试(47%(47%的软件故障只与系统当中的软件故障只与系统当中4%4%的程序模块有关。即经测试后的程序的程序模块有关。即经测试后的程序中
3、隐含的故障数目与该程序中已发现的故障数目成正比中隐含的故障数目与该程序中已发现的故障数目成正比)软件测试的复杂性分析软件测试的复杂性分析(续)(续)4 4、不能修复所有的软件故障、不能修复所有的软件故障原因:没有足够的时间进行修复;修复的风险较大(修复了旧的原因:没有足够的时间进行修复;修复的风险较大(修复了旧的故障,可能产生更多的故障);故障,可能产生更多的故障);不值得修复不值得修复(主要指不常使用功能中主要指不常使用功能中的故障,或对运行影响不大的故障的故障,或对运行影响不大的故障);“杀虫剂现象杀虫剂现象”。结论:关键是要进行正确的判断、合理的取舍,根据风险分析决结论:关键是要进行正确
4、的判断、合理的取舍,根据风险分析决定哪些故障必须修复,哪些故障可以不修复,还有就是要根据不同的定哪些故障必须修复,哪些故障可以不修复,还有就是要根据不同的测试方法设计不同的测试用例。测试方法设计不同的测试用例。5 5、软件测试的代价、软件测试的代价工作原则:就是如何将无边无际的可能性减小到一个可以控制的工作原则:就是如何将无边无际的可能性减小到一个可以控制的范围,以及如何针对软件风险做出恰当选择,去粗存精,找到最佳的范围,以及如何针对软件风险做出恰当选择,去粗存精,找到最佳的测试量,使得测试工作量不多也不少,既能达到测试的目的,又能较测试量,使得测试工作量不多也不少,既能达到测试的目的,又能较
5、为经济。为经济。2.2 软件测试方法与策略软件测试方法与策略2.2.12.2.1静态测试与动态测试静态测试与动态测试2.2.22.2.2黑盒测试与白盒测试黑盒测试与白盒测试2.2.32.2.3软件测试过程软件测试过程软件测试策略软件测试策略n n什么是软件测试策略?什么是软件测试策略?是为软件工程过程定义的一个软件测试的模板,也就是是为软件工程过程定义的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤。把特定的测试用例方法放置进去的一系列步骤。n n软件测试策略包含的特征:软件测试策略包含的特征:(1 1)测试从模块层开始,然后扩大延伸到整个基于计算机的)测试从模块层开始,然
6、后扩大延伸到整个基于计算机的系统集合中。系统集合中。(2 2)不同的测试技术适用于不同的时间点。)不同的测试技术适用于不同的时间点。(3 3)测试是由软件的开发人员和(对于大型系统而言)独立)测试是由软件的开发人员和(对于大型系统而言)独立的测试组来管理的。的测试组来管理的。(4 4)测试和调试是不同的活动,但是调试必须能够适应任何)测试和调试是不同的活动,但是调试必须能够适应任何的测试策略。的测试策略。软件测试充分性准则软件测试充分性准则n n对任何软件都存在有限的充分测试集合。对任何软件都存在有限的充分测试集合。n n如果一个软件系统在一个测试数据集合上的测试是充分的,那如果一个软件系统在
7、一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的。这一特性称为么再多测试一些数据也应该是充分的。这一特性称为单调性单调性。n n即使对软件所有成分都进行了充分的测试,也并不表明整个软即使对软件所有成分都进行了充分的测试,也并不表明整个软件的测试已经充分了。这一特性称为件的测试已经充分了。这一特性称为非复合性非复合性。n n即使对软件系统整体的测试是充分的,也并不意味软件系统中即使对软件系统整体的测试是充分的,也并不意味软件系统中各个成分都已经充分地得到了测试。这个特性称为各个成分都已经充分地得到了测试。这个特性称为非分解性非分解性。n n软件测试的充分性应该与软件的需求和软
8、件的实现都相关。软件测试的充分性应该与软件的需求和软件的实现都相关。n n软件越复杂,需要的测试数据就越多。这一特性称为软件越复杂,需要的测试数据就越多。这一特性称为复杂性复杂性。n n测试得越多,进一步测试所能得到的充分性增长就越少。这一测试得越多,进一步测试所能得到的充分性增长就越少。这一特性称为特性称为回报递减率回报递减率。2.2.1 静态测试与动态测试静态测试与动态测试1 1、静态测试、静态测试n n静态测试不实际运行软件,主要是对软件的编程格式、结构静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估。等方面进行评估。n n静态测试包括代码检查静态测试包括代码检查、静态
9、结构分析、静态结构分析、代码、代码质量度量质量度量等。它可以由人工进行,也可以借助软件工等。它可以由人工进行,也可以借助软件工具自动进行。具自动进行。n n静态测试方法也可利用计算机作为对被测程序进行特性分析静态测试方法也可利用计算机作为对被测程序进行特性分析的工具,但与人工测试方式有着根本区别。另一方面,因它的工具,但与人工测试方式有着根本区别。另一方面,因它并不真正运行被测程序,只进行特性分析,这又与动态方法并不真正运行被测程序,只进行特性分析,这又与动态方法不同。所以,静态方法常常称为不同。所以,静态方法常常称为“分析分析”,静态测试是对被,静态测试是对被测程序进行特性分析方法的总称。测
10、程序进行特性分析方法的总称。静态测试与动态测试静态测试与动态测试(续)(续)2、动态测试n n动态方法的主要特征是:计算机必须真正运行被测试的程序,通过输入测试用例,对其运行情况即输入与输出的对应关系进行分析,以达到检测的目的。2.2.2 黑盒测试和白盒测试黑盒测试和白盒测试n n若测试规划是基于产品的功能,目的是检查程序各个功能若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这种测试方法是否能够实现,并检查其中的功能错误,则这种测试方法称为称为黑盒测试黑盒测试(Black-boxTesting)(Black-boxTesting)方法。方法。黑盒测试又
11、称为功能测试、数据驱动测试和基于规格黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它是一种从用户观点出发的测试,一般被用说明的测试。它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。来确认软件功能的正确性和可操作性。n n若若测测试试规规划划基基于于产产品品的的内内部部结结构构进进行行测测试试,检检查查内内部部操操作作是是否否按按规规定定执执行行,软软件件各各个个部部分分功功能能是是否否得得到到充充分分使使用用,则这种测试方法称为则这种测试方法称为白盒测试白盒测试(White-boxTesting)(White-boxTesting)方法。方法。白白盒盒测测试
12、试又又称称为为结结构构测测试试、逻逻辑辑驱驱动动测测试试或或基基于于程程序序的测试,一般用来分析程序的内部结构。的测试,一般用来分析程序的内部结构。黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)白盒测试白盒测试黑盒测试黑盒测试两种测试方法从完全不同的角度出发,两种测试方法从完全不同的角度出发,反映了测试思路的两方面情况,适用于反映了测试思路的两方面情况,适用于不同的测试阶段。不同的测试阶段。黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)1 1、黑盒测试、黑盒测试n n黑盒测试的基本观点是:任何程序都可以看作是从输入黑盒测试的基本观点是:任何程序都可以看作是从输入定义域映射到输出值域的函数过
13、程,被测程序被认为是定义域映射到输出值域的函数过程,被测程序被认为是一个打不开的黑盒子,黑盒中的内容(实现过程)完全一个打不开的黑盒子,黑盒中的内容(实现过程)完全不知道,只明确要做到什么。不知道,只明确要做到什么。n n黑盒测试黑盒测试主要根据规格说明书设计测试用例,并不涉及主要根据规格说明书设计测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出程序内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。之间的关系或程序的功能设计测试用例。n n黑盒测试的特点:(黑盒测试的特点:(1 1)黑盒测试与软件的具体实现过程)黑盒测试与软件的具体实现过程无关,
14、在软件实现的过程发生变化时,测试用例仍然可无关,在软件实现的过程发生变化时,测试用例仍然可以使用。(以使用。(2 2)黑盒测试用例的设计可以和软件实现同时)黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。进行,这样能够压缩总的开发时间。黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)输入输入输入输入输出输出输出输出黑盒测试是在程序接口进行测试,它只是检查程黑盒测试是在程序接口进行测试,它只是检查程黑盒测试是在程序接口进行测试,它只是检查程黑盒测试是在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用。序功能是否按照规格说明书的规定正常使用。序功能是否按照规
15、格说明书的规定正常使用。序功能是否按照规格说明书的规定正常使用。也也也也被称为用户测试被称为用户测试被称为用户测试被称为用户测试。黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)n n黑盒测试主要是为了发现以下几类错误:黑盒测试主要是为了发现以下几类错误:是否有不正确或遗漏了的功能?是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息访问错误?是否有数据结构错误或外部信息访问错误?性能上是否能够满足要求?性能上是否能够满足要求?是否有初始化或终止性错误?是否有初始化或终止性错误?黑盒测试的难
16、点:在哪个层次上进行测试?黑盒测试的难点:在哪个层次上进行测试?黑盒测试的具体技术方法黑盒测试的具体技术方法:边界值分析法边界值分析法等价类划分法等价类划分法因果图法因果图法决策表法决策表法黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)2 2、白盒测试、白盒测试n n白盒测试将被测程序看作一个打开的盒子,测试者能够白盒测试将被测程序看作一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。测试的焦点集中在根据其内部结构设计测试用例。n n白盒测试要求是对某些程序的结构特性做到一定程
17、度的白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是覆盖,或者说这种测试是“基于覆盖率的测试基于覆盖率的测试”。n n通常的程序结构覆盖有:通常的程序结构覆盖有:语句覆盖语句覆盖 判定覆盖判定覆盖 条件覆盖条件覆盖 判定判定/条件覆盖条件覆盖 路径覆盖路径覆盖黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)白盒测试需要白盒测试需要白盒测试需要白盒测试需要完全了解程序结构和处理过程,完全了解程序结构和处理过程,完全了解程序结构和处理过程,完全了解程序结构和处理过程,它按照程序内部逻辑测试程序,检验程序中它按照程序内部逻辑测试程序,检验程序中它按照程序内部逻辑测试程序,检验程
18、序中它按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作。每条通路是否按预定要求正确工作。每条通路是否按预定要求正确工作。每条通路是否按预定要求正确工作。也被称也被称也被称也被称为程序员测试。为程序员测试。为程序员测试。为程序员测试。应用程序应用程序黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)?X=2 y=2x Y=4 X=2Y=4未知等式与已知等式黑盒黑盒白盒白盒3 3、黑盒测试法和白盒测试法的比较、黑盒测试法和白盒测试法的比较黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)n n黑盒测试:黑盒测试:以用户的观点,从输入数据与输出数据的对应关系,即根以用户的观点,从输入数
19、据与输出数据的对应关系,即根据程序外部特性进行测试,而不考虑内部结构及工作情况。据程序外部特性进行测试,而不考虑内部结构及工作情况。黑盒测试技术注重于软件的信息域(范围),通过划分程黑盒测试技术注重于软件的信息域(范围),通过划分程序的输入和输出域来确定测试用例。序的输入和输出域来确定测试用例。若外部特性本身存在问题或规格说明的规定有误,则应用若外部特性本身存在问题或规格说明的规定有误,则应用黑盒测试方法是不能发现问题的。黑盒测试方法是不能发现问题的。n n白盒测试:白盒测试:只根据程序的内部结构进行测试。只根据程序的内部结构进行测试。测试用例的设计要保证测试时程序的所有语句至少执行一测试用例
20、的设计要保证测试时程序的所有语句至少执行一次,而且要检查所有的逻辑条件。次,而且要检查所有的逻辑条件。如果程序的结构本身有问题,比如说程序逻辑有错误或者如果程序的结构本身有问题,比如说程序逻辑有错误或者有遗漏,那也是无法发现的。有遗漏,那也是无法发现的。黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)项目项目黑盒测试法黑盒测试法白盒测试法白盒测试法规划规划方面方面功能的测试功能的测试结构的测试结构的测试优点优点方面方面 能确保从用户的角度能确保从用户的角度出发进行测试出发进行测试 能对程序内部的特定部位进能对程序内部的特定部位进行覆盖测试行覆盖测试缺点缺点方面方面无法测试程序内部特无法测试程序
21、内部特定部位;当规格说明有定部位;当规格说明有误,则不能发现问题误,则不能发现问题无法检查程序的外部特性;无法检查程序的外部特性;无法对未实现规格说明的程无法对未实现规格说明的程序内部欠缺部分进行测试序内部欠缺部分进行测试应用应用范围范围 边界分析法边界分析法 等价类划分法等价类划分法 决策表测试决策表测试 语句覆盖,判定覆盖,语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,判定/条件覆盖,条件覆盖,路径覆盖,循环覆盖,路径覆盖,循环覆盖,模块接口测试模块接口测试2.2.3 软件测试过程软件测试过程单元单元测试测试单元单元测试测试单元单元测试测试集成集成测试测试集成集成测试测试确认确认测试测试系统
22、系统测试测试*这三个测试可能交叉与前后互换这三个测试可能交叉与前后互换被测模块被测模块被测模块被测模块被测模块被测模块设计信息设计信息单元单元 软件需求软件需求其它元素其它元素用户信息用户信息其它元素其它元素*验收验收测试测试*交付用户交付用户图2-2 软件测试的过程流程软件测试过程软件测试过程(续(续)n n单元测试:单元测试:针对每个单元的测试,针对每个单元的测试,以确保每个模块能正常以确保每个模块能正常工作为目标。工作为目标。n n集成测试:集成测试:对已测试过的模块进行组装,进行集成测试。对已测试过的模块进行组装,进行集成测试。目的在于检验与软件设计相关的程序结构问题。目的在于检验与软
23、件设计相关的程序结构问题。n n确认(有效性)测试:确认(有效性)测试:是检验所开发的软件能否满足所有是检验所开发的软件能否满足所有功能和性能需求的最后手段。功能和性能需求的最后手段。n n系统测试:系统测试:检验软件产品能否与系统的其他部分(比如,检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。硬件、数据库及操作人员)协调工作。n n验收(用户)测试:检验软件产品质量的最后一道工序。验收(用户)测试:检验软件产品质量的最后一道工序。主要突出用户的作用,同时软件开发人员也应有一定程度主要突出用户的作用,同时软件开发人员也应有一定程度的参与。的参与。2.3 单元测试单元
24、测试2.3.12.3.1单元测试的主要任务单元测试的主要任务2.3.22.3.2单元测试的执行过程单元测试的执行过程Return2.3.1 单元测试的主要任务单元测试的主要任务n n单元测试针对每个程序的模块,主要测试单元测试针对每个程序的模块,主要测试5 5个方面的问题:个方面的问题:模模块块接接口口、局局部部数数据据结结构构、边边界界条条件件、独独立立的的路路径径和和错误处理。错误处理。模块模块模块接口模块接口局部数据结构局部数据结构路径测试路径测试出错处理出错处理边界条件边界条件2.3.2 单元测试的执行过程单元测试的执行过程n n何时进行单元测试?单元测试常常是和代码编写工作同时何时进
25、行单元测试?单元测试常常是和代码编写工作同时进行的,在完成了程序编写、复查和语法正确性验证后,进行的,在完成了程序编写、复查和语法正确性验证后,就应进行单元测试用例设计。就应进行单元测试用例设计。n n在单元测试时,如果模块不是独立的程序,需要设置一些在单元测试时,如果模块不是独立的程序,需要设置一些辅助测试模块。辅助测试模块有两种:辅助测试模块。辅助测试模块有两种:(1 1)驱动模块驱动模块(Drive)(Drive)用来模拟被测试模块的上一级模块,用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 策略 过程 课件
限制150内