无论采用何种开发模型开发出来的大型软件系统_第1页
无论采用何种开发模型开发出来的大型软件系统_第2页
无论采用何种开发模型开发出来的大型软件系统_第3页
无论采用何种开发模型开发出来的大型软件系统_第4页
无论采用何种开发模型开发出来的大型软件系统_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

第七章测试 无论采用何种开发模型开发出来的大型软件系统,由于客观系统的复杂性,人的主观认识的狭隘性,不可能对要开发的系统具有完美的认识。虽然在软件开发的每一阶段都进行了技术审查和管理复审,也不可能把设计中所有潜在的错误检查出来并进行纠正,而且在编码阶段也会引入新的错误,软件设计环节的错误,如果不进行纠正,在使用阶段可能造成的损失会很大。所以软件在交付使用之前必须进行严格的测试,通过测试找出软件在需求分析、设计和编码阶段隐藏的错误,并加以改正。计算机科学与工程学院软件工程(SoftwareEngineer)7.1测试的基本概念和原则1测试的必要性在测试理论形成的早期,一些软件开发公司由于忽视软件的测试,造成了巨大的经济损失。所以测试对提高软件的质量具有很大的重要性。虽然在软件生命周期的各个阶段都有严格的技术审查和管理复审,但是经验表明,审查不能发现所有的差错;在编码过程中,程序员的编程水平对软件的影响很大,但是不管经验多丰富的程序员在编程中都会引入一些错误。如果这些错误在软件交付前没有被测试出来,投入使用后往往带来严重后果。

计算机科学与工程学院软件工程(SoftwareEngineer)2测试的概念

1)软件测试软件测试是对软件计划、软件设计和软件编码进行查错和纠错的活动,这个过程包括了代码执行活动和人工活动。2)程序测试程序测试是对编码阶段出现的语法错、语义错、运行错进行查找的编码执行过程。3)动态测试动态测试包括白盒测试和黑盒测试。黑盒测试是根据软件的功能而设计测试用例而进行测试的过程,白盒测试是根据测试的内部结构而设计测试数据,发现程序的错误。4)静态测试静态测试包括代码审查和静态分析。计算机科学与工程学院软件工程(SoftwareEngineer)3软件测试的目的

G.Myers关于软件测试目的的观点是:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极有可能发现迄今尚未发现的尽可能多的错误的测试;(3)成功的测试是发现了迄今尚未发现的错误的测试。计算机科学与工程学院软件工程(SoftwareEngineer)测试复杂性在理论上看,不论采用哪种测试,只要对每一种可能的情况都进行测试,就可以得到完全正确的程序。我们称包含所有可能的测试称为穷尽测试。而在实际中,穷尽测试是不可能做到的。图8.1黑盒测试复杂性例子无论采用黑盒法还是白盒法,要做到穷尽测试,在时间上和代价上都不可能,只能选择部分测试用例尽可能多地行测试,找到尽可能多的错误,也即是进行有穷测试。计算机科学与工程学院软件工程(SoftwareEngineer)5测试的基本原则

(1)测试前要认定被测试的软件有错,不要认为被测试的程序是正确的;(2)要确定测试软件的预先测试结果;(3)尽量避免测试自己编写的程序;(4)测试时要考虑合理的输入和不合理的输入数据;(5)测试时应以软件需求规格说明书中的需求为标准;(6)要确定找到的新错与已找到的旧错成正比;(7)所使用的测试用例应该纪录下来,以后测试时再用,以供后来的测试和维护使用。计算机科学与工程学院软件工程(SoftwareEngineer)7.2测试步骤

1测试过程

计算机科学与工程学院软件工程(SoftwareEngineer)2测试的步骤

测试时,首先进行单元测试,再进行组装测试,最后进行确认测试。计算机科学与工程学院软件工程(SoftwareEngineer)7.3设计测试方案

1白盒法测试的基本技术

在工程实践中,白盒法的基本测试思想:分析被测试程序的逻辑结构,选择逻辑执行路径子集设计测试方案。用尽可能少的测试用例子集确定被测试程序的实际执行状态与预期的状态是否一致,期望发现尽可能多的错误。在工程实践中提出了以下几种选择逻辑路径子集的覆盖标准。计算机科学与工程学院软件工程(SoftwareEngineer)语句覆盖:执行足够的测试用例,使得被测试程序中每个可执行语句至少被执行一次。判定覆盖:判定覆盖又称为分支覆盖,它的基本思想是:执行足够的测试用例,使得被测试程序中每个语句至少执行一次,并且每个判定分支也至少执行一次.条件覆盖:执行足够的测试用例,使判定条件中的每个条件至少获得一次可能取值的机会。判定/条件覆盖:执行足够的测试用例,使得被测试程序中每个判定分支至少获得一次通过,同时各判定中每个条件至少获得一次可能取值的机会。条件组合覆盖:执行足够的测试用例,使得被测试程序中每个判定条件的各种组合至少获得一次为真和假的机会。点覆盖边覆盖路径覆盖:执行足够的测试用例,使得被测试程序中的每条可能路径至少执行一次计算机科学与工程学院软件工程(SoftwareEngineer)2黑盒法测试的基本技术1)等价分类法将程序模块的所有可能输入数据(有效与无效的)划分为若干等价类,在指定等价类中任取一组数据作为一个测试用例,作为该等价类的代表,并且假定:如果该组数据可以检查出程序的错误,则该等价类中其他组数据也可以产生同样的错误,相反,如果该组数据没有查出错误,则使用该等价类中其他数据组执行程序也是正确的。计算机科学与工程学院软件工程(SoftwareEngineer)⒉)边界值分析:程序在处理边界情况时最容易发生错误,许多程序错误出现在下标、数据结构和循环等等的边界附近。3)错误推测法在很大程度上该方法靠直觉和经验进行。它的基本思想是:列举出程序中可能有的错误和容易发生错误的特殊情况,并且根据它们选择测试方案。计算机科学与工程学院软件工程(SoftwareEngineer)7.4单元测试1单元测试的内容

1)模块接口测试通过测试模块接口的数据流是否可以通畅地流入/出模块,如果数据不能正常地进出,则其他测试都不能进行。2)局部数据结构测试模块内部数据是否完整,内容、形式、相关关系是否正确。3)逻辑覆盖(执行路径)问题不可能对模块内部的所有逻辑执行路径进行测试,所以选择最有可能发现错误的执行路径进行测试是至关重要的。4)出错处理问题一个好的模块应该能够分析出错的原因、报告出错和提供很好的处理错误,保证程序能正常的运行。因此应该详细测试错误处理的通路。计算机科学与工程学院软件工程(SoftwareEngineer)2单元测试步骤

单元测试按照如下的步骤进行:1)配置测试环境,设计所需要的辅助模块2)设计测试用例根据逻辑覆盖标准和单元测试所需要解决的测试问题,设计合适的测试用例。3)多个单元并行测试为每一个模块设计相应的测试环境和测试用例,可以同时对多个模块进行测试。计算机科学与工程学院软件工程(SoftwareEngineer)7.5集成测试

1非增式组装测试

这种方法将单元测试后的所有模块按照总体的结构图一次性的组装起来,然后对组装的整体进行测试,得到最终要求的目标系统。一般采用黑盒法设计测试用例进行测试。计算机科学与工程学院软件工程(SoftwareEngineer)2增式组装测试所谓增式组装测试是按照结构图自顶向下或自底向上逐渐把模块组装成一个系统,即安装一个模块测试一个模块。增式组装测试根据把待测试模块加入系统的方式可以分为两种方法:1)自顶向下增式组装测试2)自底向上增式组装测试3)两者相结合的组装测试计算机科学与工程学院软件工程(SoftwareEngineer)7.6确认测试对软件进行组装测试后,软件系统已成为完整的软件包,消除了接口的错误,可以进行系统的确认测试,验证系统是否满足需求规格说明书中规定的要求。确认测试所采用的技术以黑盒法为主。确认测试主要由使用用户参加测试,测试的目的是向用户表明软件系统的有效性。根据软件需求说明书中的描述,使用户能够确认软件的功能与性能同他们期望的一样。计算机科学与工程学院软件工程(SoftwareEngineer)1测试内容:(1)系统功能测试:按照需求说明书的要求,测试系统是否具有用户所要求的功能;(2)强度测试:加载所有负荷的情况下,运行系统,验证系统的负荷能力;(3)性能测试;系统在实际运行环境中,是否具有需求说明书上所要求的系统性能;(4)背景测试:系统在实际负荷情况下,测试系统运行多道程序、多道作业的能力;(5)配置测试:在指定的逻辑组合或物理设备下,检查用户手册、操作手册、设计说明、源程序、测试说明的完整性、可理解性、可用性与实际运行系统的一致性;(6)恢复测试:测试系统在软件或硬件故障下,恢复原先控制数据的能力;(7)安全测试:测试系统的安全性,测试系统能否使不合法用户不能进入系统。计算机科学与工程学院软件工程(SoftwareEngineer)2测弓试步骤(1)蒜在模拟第的环境怠中,首怜先进行眉强度测法试(即搂压力测损试),远系统是桌否满足写要求;(2)在任计划的时秒间内,运纹行用户可艇见的软件饮功能,验呼证是否与芝用户的要厕求相符;(3)测叫试系统的啊配置、性洞能、背景羡、恢复能逆力、安全戴性是否满欣足要求,层同时对软等件的可移甲植性、兼澡容性、可赏维护性做扛出评价;(4)额测试过毁程中,咱详细记东录不符鼠合用户董要求的覆内容及深系统的货缺陷;(5)测阴试结束,坊分析测试劝结果,找刷出产生错胖误的原因展;(6)棋书写确央认测试炮分析报舍告;(7)读根据测梁试分析性报告,吃明确表闷示软件搏的功能然及各种昌性能能咳否达到卡软件需遍求说明晓书的要炮求。(8)妹确认测劣试结束铃,如果惊验收通恋过,书党写整个婚项目的味开发总授结报告垂。计算机键科学与肢工程学厨院软件工愿程(S叼oft犬war回eE林ngi剂nee执r)7.7软权件调试一般有下如下几成种方法肚:1)输拆出内存吸和寄存巧器的内厅容2)设识置程序柿断点,月插入打状印语句3)使用利自动调试牲工具计算机科青学与工程慰学院软件工程谈(Sof逮twar澡eEn太gine消er)2常用融调试策霉略1)趁跟踪法鸭:在错太误的征烘兆附近糠进行追属踪,或镜是正向僵跟踪或代是反向严跟踪。2)演凳绎法:像从测试炉数据中误分析可粉能出错起的原因胖,排除耕不会发辨生的错渠误原因膜。3)归纳树法:归纳首法纠错是夸由测试取埋得错误数紫据的个别榨数据,其蜂过程是收从集有关数影据、组织捏数据、寻宜找假设、拴证明假设烫、排除假若设的错误演的过程。计算机水科学与谢工程学旨院软件工程古(Sof肺twar储eEn道gine剑er)4)试探雾法:针对杰错误不复或杂,而程新序又比较洲简单的程陪序,根据览错误征兆辛,猜想出滩故障的大绕致位置,烈选取一种削纠错方法体,找到有羞关的出错匪信息,借轧此逐渐确豆定原来的因分析,渐睛渐找出错丸误的原因乞与位置,安然后纠错暗。5)回截溯法纠错修或改设计爸(或代朵码)的知相应错雁误之后沈,必须揉重复执堵行先前父测试集务的过程退称回溯争测试,哥又叫回但归测试敢,目的礼在于进怖一步验慎证纠错岛的正确唤性。6)对矿分查找廉法如果已历经知道驻每个变梢量在程沈序内若朝干个关辜键点的摊正确值慎,则用伟赋值语拐句或输栋入语句百在程序园中的关抬键点附健近输入婆这些变急量的正衣确值,翅然后检料查程序让的输出遵值。计算机科泊学与工程越学院软件工胃程(S恒oft祥war尚eE守ngi璃nee错r)7.8自女动测试工泄具1测龙试数据辣生成程阔序2静骄态生成程径序3绍动态分陡析程序4文脸件比较秘程序计算机寸科学与黎工程学篇院软件工程谱(Sof东twar穿eEn宫gine显er)7.9软仍件可靠性1基本刚概念1)软裁件可靠蒸性其定义为缠程序在给域定的时间顷间隔内,辆按照规格姓说明书的邀规定能成坝功运行的岗概率。2)软纪件可用练性其定义娇为程序税在给定固的时刻酷,按照拿规格说览明书的撕规定,渠能成功超运行的氧概率。3)M睁TTF别和MT规TR2估算你MTTF连的方法计算机科报学与工程斗学院软件工华程(S普oft净war辰eE许ngi裳nee孝r)7.1邪0实棵例1测试些计划2测试丹分析报告计算机押科学与喂工程学络院软件工程葱(Sof嚷twar室eEn地gine庸er)习题七1.为慨什么说饱软件测泡试是软称件开发胸中不可香缺少的充重要一吵环,但呢不是软对件质量躬保证的安安全网叫?2.软件许测试的基丽本任务是闲什么?简烛述软件测肥试与程序配调试的区稳别。3.总语结软件葡测试的改基本原课则。4.软姑件测试耀分哪几终个阶段震?各阶喘段的任璃务是什按么?5.什丸么是黑暑盒测试鱼与白盒卧测试?躲它们都匪适应哪舞些测试盈?6.什样么是软讯件系统你的α测滤试和β现测试?压它们各驾自的目纷的和方娘法有什序么特点仓?7.使用似白盒法覆县盖被测试控程序的所盯有逻辑执狗行路径能晴够保证程熄序正确吗陕?为什么接?8.为什柿么在综合导测试策略盈中首先考绝虑边界值饲分析,而勿不是等价铜分类方法差?9.根扮据你自遵己的经蕉验,总爬结在程必序调试陆中你常妻用的找时错方法刑。10.碧单元测杨试、集刘成测试足和确认个测试各愉自的主补要目标半是什么尼?它们喝之间有原什么不时同?相芬互有什贿么关系关?计算机科虫学与工程膜学院软件工程屿(Sof瞧twar集eEn严gine氏er)11.软己件测试的飞目的是什炒么?为什吉么把软件确测试的目病的定义为泛只是发现闪错误?12.争软件测烈试的步裤骤是什盘么?这萌些测试勇与软件缴开发各妨阶段之猾间的关搞系?13.慢软件测挽试的过赴程是什学么?14.变处量的命名电规则一般

温馨提示

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

评论

0/150

提交评论