欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第2章软件测试策略与过程课件.ppt

    • 资源ID:72966900       资源大小:590KB        全文页数:78页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第2章软件测试策略与过程课件.ppt

    第第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)软件实现的途径太多)软件实现的途径太多(4 4)软件规格说明没有一个客观标准)软件规格说明没有一个客观标准22、测试无法显示潜在的软件缺陷和故障、测试无法显示潜在的软件缺陷和故障通过软件测试只能报告软件已被发现的缺陷和故障,无法报告隐通过软件测试只能报告软件已被发现的缺陷和故障,无法报告隐藏的软件故障。藏的软件故障。33、存在的故障数量与发现的故障数量成正比、存在的故障数量与发现的故障数量成正比 结论:应当对故障集中的程序段进行重点测试结论:应当对故障集中的程序段进行重点测试(47%(47%的软件故障只与系统当中的软件故障只与系统当中4%4%的程序模块有关。即经测试后的程序的程序模块有关。即经测试后的程序中隐含的故障数目与该程序中已发现的故障数目成正比中隐含的故障数目与该程序中已发现的故障数目成正比)软件测试的复杂性分析软件测试的复杂性分析(续)(续)4 4、不能修复所有的软件故障、不能修复所有的软件故障原因:没有足够的时间进行修复;修复的风险较大(修复了旧的原因:没有足够的时间进行修复;修复的风险较大(修复了旧的故障,可能产生更多的故障);故障,可能产生更多的故障);不值得修复不值得修复(主要指不常使用功能中主要指不常使用功能中的故障,或对运行影响不大的故障的故障,或对运行影响不大的故障);“杀虫剂现象杀虫剂现象”。结论:关键是要进行正确的判断、合理的取舍,根据风险分析决结论:关键是要进行正确的判断、合理的取舍,根据风险分析决定哪些故障必须修复,哪些故障可以不修复,还有就是要根据不同的定哪些故障必须修复,哪些故障可以不修复,还有就是要根据不同的测试方法设计不同的测试用例。测试方法设计不同的测试用例。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)测试从模块层开始,然后扩大延伸到整个基于计算机的)测试从模块层开始,然后扩大延伸到整个基于计算机的系统集合中。系统集合中。(2 2)不同的测试技术适用于不同的时间点。)不同的测试技术适用于不同的时间点。(3 3)测试是由软件的开发人员和(对于大型系统而言)独立)测试是由软件的开发人员和(对于大型系统而言)独立的测试组来管理的。的测试组来管理的。(4 4)测试和调试是不同的活动,但是调试必须能够适应任何)测试和调试是不同的活动,但是调试必须能够适应任何的测试策略。的测试策略。软件测试充分性准则软件测试充分性准则n n对任何软件都存在有限的充分测试集合。对任何软件都存在有限的充分测试集合。n n如果一个软件系统在一个测试数据集合上的测试是充分的,那如果一个软件系统在一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的。这一特性称为么再多测试一些数据也应该是充分的。这一特性称为单调性单调性。n n即使对软件所有成分都进行了充分的测试,也并不表明整个软即使对软件所有成分都进行了充分的测试,也并不表明整个软件的测试已经充分了。这一特性称为件的测试已经充分了。这一特性称为非复合性非复合性。n n即使对软件系统整体的测试是充分的,也并不意味软件系统中即使对软件系统整体的测试是充分的,也并不意味软件系统中各个成分都已经充分地得到了测试。这个特性称为各个成分都已经充分地得到了测试。这个特性称为非分解性非分解性。n n软件测试的充分性应该与软件的需求和软件的实现都相关。软件测试的充分性应该与软件的需求和软件的实现都相关。n n软件越复杂,需要的测试数据就越多。这一特性称为软件越复杂,需要的测试数据就越多。这一特性称为复杂性复杂性。n n测试得越多,进一步测试所能得到的充分性增长就越少。这一测试得越多,进一步测试所能得到的充分性增长就越少。这一特性称为特性称为回报递减率回报递减率。2.2.1 静态测试与动态测试静态测试与动态测试1 1、静态测试、静态测试n n静态测试不实际运行软件,主要是对软件的编程格式、结构静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估。等方面进行评估。n n静态测试包括代码检查静态测试包括代码检查、静态结构分析、静态结构分析、代码、代码质量度量质量度量等。它可以由人工进行,也可以借助软件工等。它可以由人工进行,也可以借助软件工具自动进行。具自动进行。n n静态测试方法也可利用计算机作为对被测程序进行特性分析静态测试方法也可利用计算机作为对被测程序进行特性分析的工具,但与人工测试方式有着根本区别。另一方面,因它的工具,但与人工测试方式有着根本区别。另一方面,因它并不真正运行被测程序,只进行特性分析,这又与动态方法并不真正运行被测程序,只进行特性分析,这又与动态方法不同。所以,静态方法常常称为不同。所以,静态方法常常称为“分析分析”,静态测试是对被,静态测试是对被测程序进行特性分析方法的总称。测程序进行特性分析方法的总称。静态测试与动态测试静态测试与动态测试(续)(续)2、动态测试n n动态方法的主要特征是:计算机必须真正运行被测试的程序,通过输入测试用例,对其运行情况即输入与输出的对应关系进行分析,以达到检测的目的。2.2.2 黑盒测试和白盒测试黑盒测试和白盒测试n n若测试规划是基于产品的功能,目的是检查程序各个功能若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这种测试方法是否能够实现,并检查其中的功能错误,则这种测试方法称为称为黑盒测试黑盒测试(Black-boxTesting)(Black-boxTesting)方法。方法。黑盒测试又称为功能测试、数据驱动测试和基于规格黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它是一种从用户观点出发的测试,一般被用说明的测试。它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。来确认软件功能的正确性和可操作性。n n若若测测试试规规划划基基于于产产品品的的内内部部结结构构进进行行测测试试,检检查查内内部部操操作作是是否否按按规规定定执执行行,软软件件各各个个部部分分功功能能是是否否得得到到充充分分使使用用,则这种测试方法称为则这种测试方法称为白盒测试白盒测试(White-boxTesting)(White-boxTesting)方法。方法。白白盒盒测测试试又又称称为为结结构构测测试试、逻逻辑辑驱驱动动测测试试或或基基于于程程序序的测试,一般用来分析程序的内部结构。的测试,一般用来分析程序的内部结构。黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)白盒测试白盒测试黑盒测试黑盒测试两种测试方法从完全不同的角度出发,两种测试方法从完全不同的角度出发,反映了测试思路的两方面情况,适用于反映了测试思路的两方面情况,适用于不同的测试阶段。不同的测试阶段。黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)1 1、黑盒测试、黑盒测试n n黑盒测试的基本观点是:任何程序都可以看作是从输入黑盒测试的基本观点是:任何程序都可以看作是从输入定义域映射到输出值域的函数过程,被测程序被认为是定义域映射到输出值域的函数过程,被测程序被认为是一个打不开的黑盒子,黑盒中的内容(实现过程)完全一个打不开的黑盒子,黑盒中的内容(实现过程)完全不知道,只明确要做到什么。不知道,只明确要做到什么。n n黑盒测试黑盒测试主要根据规格说明书设计测试用例,并不涉及主要根据规格说明书设计测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出程序内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。之间的关系或程序的功能设计测试用例。n n黑盒测试的特点:(黑盒测试的特点:(1 1)黑盒测试与软件的具体实现过程)黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可无关,在软件实现的过程发生变化时,测试用例仍然可以使用。(以使用。(2 2)黑盒测试用例的设计可以和软件实现同时)黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。进行,这样能够压缩总的开发时间。黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)输入输入输入输入输出输出输出输出黑盒测试是在程序接口进行测试,它只是检查程黑盒测试是在程序接口进行测试,它只是检查程黑盒测试是在程序接口进行测试,它只是检查程黑盒测试是在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用。序功能是否按照规格说明书的规定正常使用。序功能是否按照规格说明书的规定正常使用。序功能是否按照规格说明书的规定正常使用。也也也也被称为用户测试被称为用户测试被称为用户测试被称为用户测试。黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)n n黑盒测试主要是为了发现以下几类错误:黑盒测试主要是为了发现以下几类错误:是否有不正确或遗漏了的功能?是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息访问错误?是否有数据结构错误或外部信息访问错误?性能上是否能够满足要求?性能上是否能够满足要求?是否有初始化或终止性错误?是否有初始化或终止性错误?黑盒测试的难点:在哪个层次上进行测试?黑盒测试的难点:在哪个层次上进行测试?黑盒测试的具体技术方法黑盒测试的具体技术方法:边界值分析法边界值分析法等价类划分法等价类划分法因果图法因果图法决策表法决策表法黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)2 2、白盒测试、白盒测试n n白盒测试将被测程序看作一个打开的盒子,测试者能够白盒测试将被测程序看作一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。测试的焦点集中在根据其内部结构设计测试用例。n n白盒测试要求是对某些程序的结构特性做到一定程度的白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是覆盖,或者说这种测试是“基于覆盖率的测试基于覆盖率的测试”。n n通常的程序结构覆盖有:通常的程序结构覆盖有:语句覆盖语句覆盖 判定覆盖判定覆盖 条件覆盖条件覆盖 判定判定/条件覆盖条件覆盖 路径覆盖路径覆盖黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)白盒测试需要白盒测试需要白盒测试需要白盒测试需要完全了解程序结构和处理过程,完全了解程序结构和处理过程,完全了解程序结构和处理过程,完全了解程序结构和处理过程,它按照程序内部逻辑测试程序,检验程序中它按照程序内部逻辑测试程序,检验程序中它按照程序内部逻辑测试程序,检验程序中它按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作。每条通路是否按预定要求正确工作。每条通路是否按预定要求正确工作。每条通路是否按预定要求正确工作。也被称也被称也被称也被称为程序员测试。为程序员测试。为程序员测试。为程序员测试。应用程序应用程序黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)?X=2 y=2x Y=4 X=2Y=4未知等式与已知等式黑盒黑盒白盒白盒3 3、黑盒测试法和白盒测试法的比较、黑盒测试法和白盒测试法的比较黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)n n黑盒测试:黑盒测试:以用户的观点,从输入数据与输出数据的对应关系,即根以用户的观点,从输入数据与输出数据的对应关系,即根据程序外部特性进行测试,而不考虑内部结构及工作情况。据程序外部特性进行测试,而不考虑内部结构及工作情况。黑盒测试技术注重于软件的信息域(范围),通过划分程黑盒测试技术注重于软件的信息域(范围),通过划分程序的输入和输出域来确定测试用例。序的输入和输出域来确定测试用例。若外部特性本身存在问题或规格说明的规定有误,则应用若外部特性本身存在问题或规格说明的规定有误,则应用黑盒测试方法是不能发现问题的。黑盒测试方法是不能发现问题的。n n白盒测试:白盒测试:只根据程序的内部结构进行测试。只根据程序的内部结构进行测试。测试用例的设计要保证测试时程序的所有语句至少执行一测试用例的设计要保证测试时程序的所有语句至少执行一次,而且要检查所有的逻辑条件。次,而且要检查所有的逻辑条件。如果程序的结构本身有问题,比如说程序逻辑有错误或者如果程序的结构本身有问题,比如说程序逻辑有错误或者有遗漏,那也是无法发现的。有遗漏,那也是无法发现的。黑盒测试和白盒测试黑盒测试和白盒测试(续)(续)项目项目黑盒测试法黑盒测试法白盒测试法白盒测试法规划规划方面方面功能的测试功能的测试结构的测试结构的测试优点优点方面方面 能确保从用户的角度能确保从用户的角度出发进行测试出发进行测试 能对程序内部的特定部位进能对程序内部的特定部位进行覆盖测试行覆盖测试缺点缺点方面方面无法测试程序内部特无法测试程序内部特定部位;当规格说明有定部位;当规格说明有误,则不能发现问题误,则不能发现问题无法检查程序的外部特性;无法检查程序的外部特性;无法对未实现规格说明的程无法对未实现规格说明的程序内部欠缺部分进行测试序内部欠缺部分进行测试应用应用范围范围 边界分析法边界分析法 等价类划分法等价类划分法 决策表测试决策表测试 语句覆盖,判定覆盖,语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,判定/条件覆盖,条件覆盖,路径覆盖,循环覆盖,路径覆盖,循环覆盖,模块接口测试模块接口测试2.2.3 软件测试过程软件测试过程单元单元测试测试单元单元测试测试单元单元测试测试集成集成测试测试集成集成测试测试确认确认测试测试系统系统测试测试*这三个测试可能交叉与前后互换这三个测试可能交叉与前后互换被测模块被测模块被测模块被测模块被测模块被测模块设计信息设计信息单元单元 软件需求软件需求其它元素其它元素用户信息用户信息其它元素其它元素*验收验收测试测试*交付用户交付用户图2-2 软件测试的过程流程软件测试过程软件测试过程(续(续)n n单元测试:单元测试:针对每个单元的测试,针对每个单元的测试,以确保每个模块能正常以确保每个模块能正常工作为目标。工作为目标。n n集成测试:集成测试:对已测试过的模块进行组装,进行集成测试。对已测试过的模块进行组装,进行集成测试。目的在于检验与软件设计相关的程序结构问题。目的在于检验与软件设计相关的程序结构问题。n n确认(有效性)测试:确认(有效性)测试:是检验所开发的软件能否满足所有是检验所开发的软件能否满足所有功能和性能需求的最后手段。功能和性能需求的最后手段。n n系统测试:系统测试:检验软件产品能否与系统的其他部分(比如,检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。硬件、数据库及操作人员)协调工作。n n验收(用户)测试:检验软件产品质量的最后一道工序。验收(用户)测试:检验软件产品质量的最后一道工序。主要突出用户的作用,同时软件开发人员也应有一定程度主要突出用户的作用,同时软件开发人员也应有一定程度的参与。的参与。2.3 单元测试单元测试2.3.12.3.1单元测试的主要任务单元测试的主要任务2.3.22.3.2单元测试的执行过程单元测试的执行过程Return2.3.1 单元测试的主要任务单元测试的主要任务n n单元测试针对每个程序的模块,主要测试单元测试针对每个程序的模块,主要测试5 5个方面的问题:个方面的问题:模模块块接接口口、局局部部数数据据结结构构、边边界界条条件件、独独立立的的路路径径和和错误处理。错误处理。模块模块模块接口模块接口局部数据结构局部数据结构路径测试路径测试出错处理出错处理边界条件边界条件2.3.2 单元测试的执行过程单元测试的执行过程n n何时进行单元测试?单元测试常常是和代码编写工作同时何时进行单元测试?单元测试常常是和代码编写工作同时进行的,在完成了程序编写、复查和语法正确性验证后,进行的,在完成了程序编写、复查和语法正确性验证后,就应进行单元测试用例设计。就应进行单元测试用例设计。n n在单元测试时,如果模块不是独立的程序,需要设置一些在单元测试时,如果模块不是独立的程序,需要设置一些辅助测试模块。辅助测试模块有两种:辅助测试模块。辅助测试模块有两种:(1 1)驱动模块驱动模块(Drive)(Drive)用来模拟被测试模块的上一级模块,用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启动被测模块,并打印出相应的结果。给被测模块,启动被测模块,并打印出相应的结果。(2 2)桩模块桩模块(Stub)(Stub)用来模拟被测模块工作过程中所调用的用来模拟被测模块工作过程中所调用的模块。它们一般只进行很少的数据处理。模块。它们一般只进行很少的数据处理。n n驱动模块和桩模块都是额外的开销,虽然在单元测试中必驱动模块和桩模块都是额外的开销,虽然在单元测试中必须编写,但并不需要作为最终的产品提供给用户。须编写,但并不需要作为最终的产品提供给用户。单元测试的执行过程单元测试的执行过程(续)(续)n n被测模块、驱动模块和桩模块共同构成了一个如下图所示被测模块、驱动模块和桩模块共同构成了一个如下图所示的单元测试的测试环境:的单元测试的测试环境:测试用例测试用例被测模块被测模块驱动模块驱动模块测试结果测试结果桩模块桩模块1桩模块桩模块2桩模块桩模块3桩模块桩模块n桩模块桩模块2.4 集成测试集成测试2.4.12.4.1非增量式测试非增量式测试2.4.22.4.2增量式测试增量式测试2.4.32.4.3不同集成测试方法的比较不同集成测试方法的比较2.4.42.4.4回归测试回归测试Return2.4.1 非增量式测试非增量式测试n n非增量式测试是采用一步到位的方法来构造测试:非增量式测试是采用一步到位的方法来构造测试:对所有模块进行个别的单元测试后,按照程序结构对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进图将各模块连接起来,把连接后的程序当作一个整体进行测试。行测试。实例实例实例实例 采用非增量式测试方法进行集成测试采用非增量式测试方法进行集成测试n n非增量式测试的缺点:非增量式测试的缺点:当一次集成的模块较多时,非增量式测试容易出现当一次集成的模块较多时,非增量式测试容易出现混乱,因为测试时可能发现了许多故障,为每一个故障混乱,因为测试时可能发现了许多故障,为每一个故障定位和纠正非常困难,并且在修正一个故障的同时,可定位和纠正非常困难,并且在修正一个故障的同时,可能又引入了新的故障,新旧故障混杂,很难判定出错的能又引入了新的故障,新旧故障混杂,很难判定出错的具体原因和位置。具体原因和位置。2.4.2 增量式测试增量式测试n n增量式测试的集成是逐步实现的:增量式测试的集成是逐步实现的:逐逐次次将将未未曾曾集集成成测测试试的的模模块块和和已已经经集集成成测测试试的的模模块块(或或子子系系统统)结结合合成成程程序序包包,再再将将这这些些模模块块集集成成为为较较大大系系统统,在在集集成成的的过过程程中中边边连连接接边边测测试试,以以发发现现连连接接过过程程中产生的问题。中产生的问题。n n按按照照不不同同的的实实施施次次序序,增增量量式式集集成成测测试试又又可可以以分分为为三三种种不同的方法:不同的方法:(1 1)自顶向下增量式测试自顶向下增量式测试(2 2)自底向上增量式测试自底向上增量式测试(3 3)混合增量式测试混合增量式测试自顶向下增量式测试自顶向下增量式测试n n自顶向下增量式测试表示逐步集成和逐步测试是按照结自顶向下增量式测试表示逐步集成和逐步测试是按照结构图自上而下进行的,即模块集成的顺序是首先集成主构图自上而下进行的,即模块集成的顺序是首先集成主控模块(主程序),然后依照控制层次结构向下进行集控模块(主程序),然后依照控制层次结构向下进行集成。从属于主控模块的按深度优先方式(纵向)或者广成。从属于主控模块的按深度优先方式(纵向)或者广度优先方式(横向)集成到结构中去。度优先方式(横向)集成到结构中去。n n深度优先方式的集成:深度优先方式的集成:首先集成在结构中的一个主控路径下的所有模块,首先集成在结构中的一个主控路径下的所有模块,主控路径的选择是任意的。主控路径的选择是任意的。n n广度优先方式的集成:广度优先方式的集成:首先沿着水平方向,把每一层中所有直接隶属于上首先沿着水平方向,把每一层中所有直接隶属于上一层的模块集成起来,直到底层。一层的模块集成起来,直到底层。自顶向下增量式测试自顶向下增量式测试(续)(续)n n集成测试的整个过程由集成测试的整个过程由3 3个步骤完成:个步骤完成:(1 1)主控模块作为测试驱动器。)主控模块作为测试驱动器。(2 2)根据集成的方式(深度或广度),下层的桩模块一次)根据集成的方式(深度或广度),下层的桩模块一次一次地被替换为真正的模块。一次地被替换为真正的模块。(3 3)在每个模块被集成时,都必须进行单元测试。)在每个模块被集成时,都必须进行单元测试。重复第重复第2 2步,直到整个系统被测试完成。步,直到整个系统被测试完成。实例实例实例实例 按照广度优先方式进行集成测试按照广度优先方式进行集成测试 实例实例实例实例 按照深度优先方式进行集成测试按照深度优先方式进行集成测试自底向上增量式测试自底向上增量式测试n n自底向上增量式测试表示逐步集成和逐步测试的工作是按自底向上增量式测试表示逐步集成和逐步测试的工作是按结构图自下而上进行的,结构图自下而上进行的,即从程序模块结构的最即从程序模块结构的最底底层模块层模块开始集成和测试。开始集成和测试。n n由于是从最底层开始集成,由于是从最底层开始集成,对于一个给定层次的模块,它对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经集成并测试的子模块(包括子模块的所有下属模块)已经集成并测试完成,完成,所以不再需要使用桩模块进行辅助测试所以不再需要使用桩模块进行辅助测试,在模块的测在模块的测试过程中需要从子模块得到的信息可以直接运行子模块得试过程中需要从子模块得到的信息可以直接运行子模块得到到,但需要配备驱动模块模拟其上层模块。但需要配备驱动模块模拟其上层模块。实例实例实例实例 采用自底向上增量式测试方法进行集成测试采用自底向上增量式测试方法进行集成测试混合增量式测试混合增量式测试n n混混合合增增量量式式测测试试是是把把自自顶顶向向下下测测试试和和自自底底向向上上测测试试这这两两种种方方式式结结合合起起来来进进行行集集成成和和测测试试。这这样样可可以以兼兼具具两两者者的的优点,而摒弃其缺点。优点,而摒弃其缺点。n n常见的两种混合增量式测试方式:常见的两种混合增量式测试方式:(1 1)衍衍变变的的自自顶顶向向下下的的增增量量式式测测试试:基基本本思思想想是是强强化化对对输输入入/输输出出模模块块和和引引入入新新算算法法模模块块的的测测试试,并并自自底底向向上上集集成成为为功功能能相相对对完完整整且且相相对对独独立立的的子子系系统统,然然后后由由主主模模块块开开始自顶向下进行增量式测试。始自顶向下进行增量式测试。(2 2)自自底底向向上上-自自顶顶向向下下的的增增量量式式测测试试:首首先先对对含含读读操操作作的的子子系系统统自自底底向向上上直直至至根根节节点点模模块块进进行行集集成成和和测测试试,然然后对含写操作的子系统做自顶向下的集成与测试。后对含写操作的子系统做自顶向下的集成与测试。2.4.3 不同集成测试方法的比较不同集成测试方法的比较1 1、非增量式测试与增量式测试的比较、非增量式测试与增量式测试的比较n n非增量式测试的方法是先分散测试,然后集中起来再一次非增量式测试的方法是先分散测试,然后集中起来再一次完成集成测试。假如在模块的接口处存在错误,只会在最完成集成测试。假如在模块的接口处存在错误,只会在最后的集成测试时一下子暴露出来。后的集成测试时一下子暴露出来。n n增量式测试是逐步集成和逐步测试的方法,把可能出现的增量式测试是逐步集成和逐步测试的方法,把可能出现的差错分散暴露出来,便于找出问题和修改。而且一些模块差错分散暴露出来,便于找出问题和修改。而且一些模块在逐步集成的测试中,得到了较多次的考验,因此,可能在逐步集成的测试中,得到了较多次的考验,因此,可能会取得较好的测试效果。会取得较好的测试效果。结论:结论:结论:结论:增量式测试要比非增量式测试具有一定的优越性。增量式测试要比非增量式测试具有一定的优越性。不同集成测试方法的比较不同集成测试方法的比较(续)(续)2 2、自顶向下与自底向上增量式测试的比较、自顶向下与自底向上增量式测试的比较n n自顶向下自顶向下增量式增量式测试:测试:主主要要优优点点在在于于它它可可以以自自然然的的做做到到逐逐步步求求精精,一一开开始始就就能让测试者看到系统的框架。能让测试者看到系统的框架。主主要要缺缺点点是是需需要要提提供供桩桩模模块块,并并且且在在输输入入/输输出出模模块块接入系统以前,在桩模块中表示测试数据有一定困难。接入系统以前,在桩模块中表示测试数据有一定困难。n n自底向上增量式自底向上增量式测试:测试:优优点点在在于于,由由于于驱驱动动模模块块模模拟拟了了所所有有调调用用参参数数,即即使使数数据据流流并并未未构构成成有有向向的的非非环环状状图图,生生成成测测试试数数据据也也无无困困难。难。主主要要缺缺点点在在于于,直直到到最最后后一一个个模模块块被被加加进进去去之之后后才才能看到整个程序(系统)的框架。能看到整个程序(系统)的框架。2.4.4 回归测试回归测试n n什么是回归测试?什么是回归测试?在集成测试策略的环境中,回归测试是对某些已经进行在集成测试策略的环境中,回归测试是对某些已经进行过的测试的某些子集再重新进行一遍,以保证上述改变不会过的测试的某些子集再重新进行一遍,以保证上述改变不会传播无法预料的副作用或引发新的问题。传播无法预料的副作用或引发新的问题。在更广的环境里,回归测试就是用来保证(由于测试或在更广的环境里,回归测试就是用来保证(由于测试或其他原因的)改动不会带来不可预料的行为或另外的错误。其他原因的)改动不会带来不可预料的行为或另外的错误。n n回归测试可以通过重新执行所有的测试用例的一个子集人工回归测试可以通过重新执行所有的测试用例的一个子集人工地进行,也可以使用自动化的捕获回放工具来进行。地进行,也可以使用自动化的捕获回放工具来进行。n n回归测试集包括三种不同类型的测试用例:回归测试集包括三种不同类型的测试用例:(1 1)能够测试软件的所有功能的代表性测试用例)能够测试软件的所有功能的代表性测试用例(2 2)专门针对可能会被修改而影响软件功能的附加测试)专门针对可能会被修改而影响软件功能的附加测试(3 3)针对修改过的软件成分的测试)针对修改过的软件成分的测试2.5 确认测试确认测试1 1、确认测试的准则、确认测试的准则n n确确认认测测试试也也称称为为合合格格性性测测试试,是是检检验验所所开开发发的的软软件件是是否否能能按按用用户户提提出出的的要要求求进进行行。软软件件确确认认要要通通过过一一系系列列证证明明软软件件功能和要求一致的黑盒测试来完成。功能和要求一致的黑盒测试来完成。n n经过确认测试,应该为已开发的软件给出结论性评价:经过确认测试,应该为已开发的软件给出结论性评价:(1 1)经经过过检检验验的的软软件件的的功功能能、性性能能及及其其他他要要求求均均已已满满足足需需求求规格说明书的规定,则可被认为是合格的软件。规格说明书的规定,则可被认为是合格的软件。(2 2)经经过过检检验验发发现现与与需需求求说说明明书书有有相相当当的的偏偏离离,得得到到一一个个各各项缺陷清单。项缺陷清单。Return确认测试确认测试(续)(续)2 2、配置审查的内容、配置审查的内容n n确认测试过程的重要环节就是配置审查工作。其目的在于确认测试过程的重要环节就是配置审查工作。其目的在于确保已开发软件的所有文件资料均已编写齐全,并得到分确保已开发软件的所有文件资料均已编写齐全,并得到分类编目,足以支持运行以后的软件维护工作。类编目,足以支持运行以后的软件维护工作。n n配置审查的文件资料包括用户所需的以下资料:配置审查的文件资料包括用户所需的以下资料:(1 1)用户手册)用户手册(2 2)操作手册)操作手册(3 3)设计资料)设计资料如:设计说明书、源程序以及测试资料(测试如:设计说明书、源程序以及测试资料(测试说明书、测试报告)等说明书、测试报告)等2.6 系统测试系统测试n n为什么要进行系统测试?为什么要进行系统测试?由于软件只是计算机系统中的一个组成部分,软件开由于软件只是计算机系统中的一个组成部分,软件开发完成之后,最终还要和系统中的硬件系统、某些支持软发完成之后,最终还要和系统中的硬件系统、某些支持软件、数据信息等其他部分配套运行。因此,在投入运行前件、数据信息等其他部分配套运行。因此,在投入运行前要完成系统测试,以保证各组成部分不仅能单独的得到检要完成系统测试,以保证各组成部分不仅能单独的得到检验,而且在系统各部分协调工作的环境下也能正常工作。验,而且在系统各部分协调工作的环境下也能正常工作。n n尽管每一个检验有特定的目标,然而所有的检测工作都要尽管每一个检验有特定的目标,然而所有的检测工作都要验证系统中每个部分均已得到正确的集成,并能完成指定验证系统中每个部分均已得到正确的集成,并能完成指定的功能。的功能。n n严格的说,系统测试超出了软件工程范围。通常这项工作严格的说,系统测试超出了软件工程范围。通常这项工作并不由系统开发人员或系统开发组织来承担,而是由软件并不由系统开发人员或系统开发组织来承担,而是由软件用户或软件开发机构委托独立测试机构来完成。用户或软件开发机构委托独立测试机构来完成。2.6 系统测试系统测试n n包括以下八种测试方法包括以下八种测试方法 1 1、恢复测试(一旦系统出现错误,必须在一定时间内从错误中恢、恢复测试(一旦系统出现错误,必须在一定时间内从错误中恢复过来)复过来)2 2、安全测试(系统经受攻击的能力)、安全测试(系统经受攻击的能力)3 3、强度测试(测试在多大范围内系统会出现运行错误)、强度测试(测试在多大范围内系统会出现运行错误)4 4、性能测试(在一种苛刻的环境中衡量资源的使用)、性能测试(在一种苛刻的环境中衡量资源的使用)5 5、正确性测试(功能是否符合需求)、正确性测试(功能是否符合需求)6 6、可靠性测试(从验证的角度,校验系统是否达到预期的目标)、可靠性测试(从验证的角度,校验系统是否达到预期的目标)7 7、兼容性测试、兼容性测试 8 8、WebWeb网站测试网站测试恢复测试恢复测试n n恢复测试是通过各种手段,强制性地使软件出错,使其不恢复测试是通过各种手段,强制性地使软件出错,使其不能正常工作,进而检验系统的恢复能力。能正常工作,进而检验系统的恢复能力。n n恢复恢复测试包含的测试包含的内容:内容:如果系统恢复是自动的(由系统自身完成),则应该如果系统恢复是自动的(由系统自身完成),则应该检验:重新初始化、检验点设置机构、数据恢复以及重新检验:重新初始化、检验点设置机构、数据恢复以及重新启动是否正确。启动是否正确。如果这一恢复需要人为干预,则应考虑平均修复时间如果这一恢复需要人为干预,则应考虑平均修复时间是否在限定的、可以接受的范围之内。是否在限定的、可以接受的范围之内。安全测试安全测试n n安安全全测测试试的的目目的的在在于于验验证证安安装装在在系系统统内内的的保保护护机机制制能能否否在在实际中保护系统且不受非法入侵,不受各种非法干扰。实际中保护系统且不受非法入侵,不受各种非法干扰。n n在安全测试中,测试者扮演着试图攻击系统的个人角色:在安全测试中,测试者扮演着试图攻击系统的个人角色:尝试去通过外部的手段来获取系统的密码尝试去通过外部的手段来获取系统的密码使用可以瓦解任何防守的客户软件来攻击系统使用可以瓦解任何防守的客户软件来攻击系统把系统把系统“瘫痪瘫痪”,使得其他用户无法访问,使得其他用户无法访问有目的地引发系统错误,期望在恢复过程中侵入系统有目的地引发系统错误,期望在恢复过程中侵入系统通过浏览非保密的数据,从中找到进入系统的钥匙通过浏览非保密的数据,从中找到进入系统的钥匙n n系统的安全测试要设置一些测试用例试图突破系统的安全系统的安全测试要设置一些测试用例试图突破系统的安全保密措施,检验系统是否有安全保密的漏洞。保密措施,检验系统是否有安全保密的漏洞。强度测试强度测试n n从从本本质质上上来来说说,强强度度测测试试(也也称称压压力力测测试试-Stree-StreeTestingTesting)的目的是要检测非正常的情形,测试是想要破坏程序。的目的是要检测非正常的情形,测试是想要破坏程序。强强度度测测试试需需要要在在反反常常规规数数据据量量、频频率率或或资资源源的的方方式式下下运运行行系统,以检验系统能力的最高实际限度。系统,以检验系统能力的最高实际限度。n n举例:举例:如如果果正正常常的的中中断断频频率率为为每每秒秒5 5次次,强强度度测测试试设设计计为为每每秒秒5050次中断。次中断。把把输输入入数数据据的的量量提提高高一一个个数数量量级级来来测测试试输输入入功功能能会会如如何何响应。响应。若若某某系系统统正正常常运运行行可可支支持持200200个个终终端端并并行行工工作作,强强度度测测试则检验试则检验10001000个终端并行工作的情况。个终端并行工作的情况。运行大量的消耗内存或其他系统资源的测试实例。运行大量的消耗内存或其他系统资源的测试实例。性能测试性能测试n n性性能能测测试试用用来来测测试试软软件件在在系系统统集集成成中中的的运运行行性性能能,特特别别是是针针对对实实时时系系统统和和嵌嵌入入式式系系统统,仅仅提提供供符符合合功功能能需需求求但但不不符符合性能需求的软件是不能被接受的。合性能需求的软件是不能被接受的。n n性性能能测测试试可可以以在在测测试试过过程程的的任任意意阶阶段段进进行行,但但只只有有当当整整个个系系统统的的所所有有成成分分都都集集成成在在一一起起后后,才才能能检检查查一一个个系系统统的的真真正性能。正性能。n n性性能能测测试试常常常常和和强强度度(压压力力)测测试试结结合合起起来来进进行行,而而且且常常常常需需要要硬硬件件和和软软件件测测试试设设备备,这这就就是是说说,

    注意事项

    本文(第2章软件测试策略与过程课件.ppt)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开