第7章 软件测试_第1页
第7章 软件测试_第2页
第7章 软件测试_第3页
第7章 软件测试_第4页
第7章 软件测试_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章软件测试2目录软件测试基本概念软件测试方法和技术软件测试步骤3有关软件测试的错误观点“软件测试是为了证明程序是正确的,即测试能发现程序中所有的错误”。事实上这是不可能的。要通过测试发现程序中的所有错误,就要穷举所有可能的输入数据。4例如:对于一个输入三个16位字长的整型数据的程序,输入数据的所有组合情况有248

,如果测试一个数据需1ms,则即使一年365天一天24小时不停地测试,也需要约1万年。5例如:一个小程序的流程图,它包括了一个执行20次的循环,其循环体有五个分支。这个循环的不同执行路径数达520条,如果对每一条路径进行测试需要1毫秒,那么即使一年工作365×24小时,要想把所有路径测试完,大约需3170年。6“软件测试不是为了证明程序是正确的,即测试能发现程序中所有的错误”。(×)“程序测试是为了证明程序正确地执行了预期的功能”。(√)7软件测试的目的目的是通过软件测试以最少的时间和人力找出软件中潜在的各种错误和缺陷。测试是一个为了发现错误而执行程序的过程。一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例。一个成功的测试是指揭示了迄今为至尚未发现的错误的测试。8软件测试的概念

软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。9测试数据程序P比较结果数据预期数据相符不符追查缺陷10软件质量软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。11软件测试与软件质量的关系测试有助于提高软件的质量,但是提高软件的质量不能依赖于测试。测试与质量的关系很象在考试中“检查”与“成绩”的关系。学习好的学生,在考试时通过认真检查能减少因疏忽而造成的答题错误,从而“提高”了考试成绩(取得他本来就该得的好成绩)。而学习差的学生,他原本就不会做题目,无论检查多么细心,也很难提高成绩。软件的高质量是设计出来的,而不是靠测试修补出来的。12软件测试的原则(1)尽早地和不间断地进行软件测试(2)测试用例应由测试输入数据和与之对应的预期输出结果两部分组成(3)程序员应避免检查自己的程序(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件13(5)充分注意测试中的群集现象。(6)严格执行测试计划,排除测试的随意性(7)应当对每一个测试结果做全面检查(8)妥善保管测试计划、测试用例、出错统计和最终分析报告,为维护提供方便14目录软件测试基本概念软件测试方法和技术软件测试步骤15软件测试方法和技术测试方法和测试技术静态测试技术动态测试技术16静态测试技术:

不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。17对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。例如:不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。18动态测试技术:通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。目前,动态测试是公司测试工作的主要方式。

19软件测试方法和技术测试方法和测试技术静态测试技术动态测试技术桌前检查代码会审步行检查20桌前检查(DeskCheck):程序员自己检查程序效果不太理想。解决办法:互相交换程序检查。代码会审(CodeInspections):由一组人通过阅读、讨论和争议,对程序进行静态分析的过程。步行检查(Walkthroughs):预先准备测试数据,让与会者充当“计算机”一检查程序的状态。有时比真正运行程序可能发现更多的错误。21软件测试方法和技术测试方法和测试技术静态测试技术动态测试技术桌前检查代码会审黑盒测试步行检查白盒测试22软件测试方法和技术

黑盒测试等价类划分边界值分析错误推测法因果图功能图接口测试

白盒测试逻辑覆盖判定结构分析循环结构分析基本路径覆盖23黑盒测试(Black-BoxTest)又称功能测试或数据驱动测试。把测试对象看做一个黑盒,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明。24需求&功能规格说明产生被测程序测试结果输出比较测试用例黑盒测试只关心输入与输出的对应关系,不关心被测程序的内部关系。25黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?黑盒测试的方法和特点(1)等价类划分:等价类划分是将输入数据域按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其它值的测试。(2)边界值分析:该方法是将测试边界情况作为重点目标,选取正好等于,刚刚大于或刚刚小于边界值的情况,根据这些情况选择测试用例。(3)错误推测:错误推测法没有确定的步骤,凭经验进行。它的基本思想是列出程序中可能发生错误的情况,根据这些情况选择测试用例。(4)因果图:因果图能有效的检测输入条件的各种组合可能会引起的错误。因果图的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。2627白盒测试(White-BoxTest)又称结构测试或逻辑驱动测试。把测试对象看做一个玻璃盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。28软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:对程序模块的所有独立的执行路径至少测试一次—路径覆盖测试;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次—逻辑覆盖测试;29在循环的边界和运行界限内执行循环体—控制流测试;测试内部数据结构的有效性—数据流测试、领域测试等。30黑盒测试与白盒测试优缺点比较黑盒测试白盒测试

优点缺点性质①适用于各阶段测试②从产品功能角度测试③容易入手生成测试数据①可构成测试数据使特定程序部分得到测试②有一定的充分性度量手段③可获较多工具支持①某些代码得不到测试②如果规格说明有误,则无法发现③不易进行充分性测试①不易生成测试数据(通常)②无法对未实现规格说明的部分进行测试③工作量大,通常只用于单元测试,有应用局限是一种确认技术,回答“我们在构造一个正确的系统吗?”是一种验证技术,回答“我们在正确地构造一个系统吗?”31目录软件测试基本概念软件测试方法和技术软件测试步骤32软件测试的步骤和策略软件开发过程是一个自顶向下、逐步细化的过程,测试过程则是自底向上、逐步集成的过程。低一级测试为上一级测试准备条件,如下页图所示33规格定义设计编码系统测试集成测试单元测试用户需求验收测试自顶向下逐步细化相反顺序集成过程

回归测试34软件测试步骤单元测试集成测试确认测试系统测试验收测试35单元测试(开始是单元测试)

集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。n36单元测试一般认为并不包括于测试阶段而是包括于编程阶段。因此单元测试计划一般由模块编写人员制定,而单元测试一般也由模块编写人员进行。编程(同步)单元测试其他测试……37单元测试的内容:1、模块接口测试2、检查局部数据结构能否保持完整性3、模块边界条件测试4、模块执行路径测试5、检查模块内部错误处理是否有效单元测试方法:白盒测试为主,黑盒测试为辅。38单元测试检查单1、逻辑和算法:正确实现了逻辑和算法。2、数据结构(全局和局部):使用了全局数据结构?哪些?如果有,作了哪些关于全局数据的假设?这些假设正确吗?使用了局部数据?在算法执行的所有步骤期间,保持局部数据的完整性了吗?393、接口:来自调用模块的数据匹配被调用的模块的期望接收的数据?被调用模块的数据匹配调用的模块提供的数据?4、独立路径:标识了所有穿过模块的独立路径?执行了吗?5、边界条件:了解边界条件吗?进行了测试确保该模块在其边界条件上的适当的操作了吗?6、出错处理:所有出错处理路径均执行到了吗?40软件测试过程按4个步骤进行,即:单元测试集成测试确认测试系统测试验收测试41集成测试(第二步是集成测试)

把已测试过的模块组装起来,主要对与设计相关的软件体系结构的装配进行测试。n42测试内容

各单元的接口是否吻合、代码是否符合规定的标准、界面标准是否统一等。人员安排

既要求参与的人熟悉单元的内部细节,又要求他们能够从足够高的层次上观察整个系统。一般由有经验的测试人员和主要的软件开发者来完成集成测试的计划。43集成测试计划

集成测试计划由系统设计人员在设计阶段制定,它是和设计规格说明同时完成的。内容有:测试的描述和范围测试环境测试时间表44集成次序测试用例以及测试的预期结果等测试方法:集成测试阶段是以黑盒法为主。45软件测试过程按4个步骤进行,即:单元测试集成测试确认测试系统测试验收测试46确认测试(第三步是确认测试)

确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合。n确认测试阶段有两项工作,进行确认测试与软件配置审查。确认测试一般是在模拟环境中运用黑盒测试方法,由专门测试人员和用户参加的测试。软件配置审查的任务是检查软件的所有文档资料的完整性、正确性。如果发现遗漏和错误,应补充和改正,同时要编排好目录,为以后的软件维护工作奠定基础。4748软件测试过程按4个步骤进行,即:单元测试集成测试确认测试系统测试验收测试49系统测试

把已经经过确认的软件纳入实际运行环境中,与其它系统元素(硬件、人员、数据库等)组合在一起进行测试。n50为了发现缺陷并度量产品质量,按照系统的功能和性能需求进行的测试一般使用黑盒测试技术一般由独立的测试人员完成51通常意义上的系统测试包括:功能测试压力测试(Stresstest)性能测试(Performancetest)容量测试(Capacitytest)用户界面测试兼容性测试52功能测试53通常意义上的系统测试包括:功能测试压力测试(Stresstest)性能测试(Performancetest)容量测试(Capacitytest)用户界面测试兼容性测试54压力测试也称强度测试。目的:在软件投入使用以前或软件负载达到极限以前,通过执行可重复的负载测试,预先分析出软件可承受的并发用户极限值和性能瓶颈,以帮助软件厂商或用户优化自己的程序。55通常意义上的系统测试包括:功能测试压力测试(Stresstest)性能测试(Performancetest)容量测试(Capacitytest)用户界面测试兼容性测试56性能测试对于那些实时和嵌入式系统,软件部分即使满足功能要求,也未必能够满足性能要求,虽然从单元测试起,每一测试步骤都包含性能测试,但只有当系统真正集成之后,在真实环境中才能全面、可靠地测试运行性能,系统性能测试就是为了完成这一任务。57通常意义上的系统测试包括:功能测试压力测试(Stresstest)性能测试(Performancetest)容量测试(Capacitytest)用户界面测试兼容性测试58容量测试对软件容量的测试,能让用户明白到底此软件能一次性承担多大访问量。有了对软件负载的准确预测,不仅能让用户对软件在实际使用中的性能状况充满信心,同时也可以帮助用户最经济地规划自己的网络配置,避免无谓的硬件投入,还可以减少网络系统的宕机时间和因此带来的经济损失。59通常意义上的系统测试包括:功能测试压力测试(Stresstest)性能测试(Performancetest)容量测试(Capacitytest)用户界面测试兼容性测试60用户界面的测试:符合标准和规范直观性一致性灵活性舒适性正确性实用性61通常意义上的系统测试包括:功能测试压力测试(Stresstest)性能测试(Performancetest)容量测试(Capacitytest)用户界面测试兼容性测试62其他还有一些关于测试的分类,例如:健壮性测试容灾测试内存泄漏测试并发性测试安全性测试配套产品测试实际上,这些测试都是因为测试的目的不同,而在制定测试策略和测试设计的时候有不同的侧重点。63必做的测试:安装测试功能测试值域测试界面测试可用性测试说明书测试配置测试加密问题测试裸机测试可选的测试:内存泄漏测试接口测试性能测试并发性测试安全性测试破坏性测试配套产品测试64软件测试过程按4个步骤进行,即:单元测试集成测试确认测试系统测试验收测试65

验收测试在通过了系统的有效性测试及软件配置审查之后,就应开始系统的验收测试。验收测试是以用户为主的测试。软件开发人员和质量保证人员也应参加。由用户参加设计测试用例,使用生产中的实际数据进行测试。66验收测试应交付的文档有:

验收测试分析报告最终的用户手册和操作手册项目开发总结报告。67测试级目的执行者测试环境测试方法单元从单个模块中发现逻辑、数据和运算缺陷软件工程师单独的;桩和支撑程序白盒测试集成发现模块间接口缺陷软件工程师单独的和/或模拟;桩和支撑程序白盒测试Top-down,bottom-up,或outside-in系统测定软件是否满足需求软件质保组软件确认组实际的环境(可能没有最终的硬件)功能测试和ALAC68一些问题问题1:有了“黑盒”测试为什么还要“白盒”测试?答:黑盒测试只能观察软件的外部表现,即使软件的输入输出都是正确的,却并不能说明软件就是正确的。因为程序有可能用错误的运算方式得出正确的结果,例如“负负得正,错错得对”,只有白盒测试才能发现真正的原因。白盒测试能发现程序里的隐患,象内存泄漏、误差累计问题。在这方面,黑盒测试存在严重的不足。69问题2:由于单元测试要写测试驱动程序,非常麻烦,能否等到整个系统全部开发完后,再集中精力进行一次性地单元测试呢?答:如果这样做,在开发过程中,缺陷会越积越多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论