软件工程概论第6章实现_第1页
软件工程概论第6章实现_第2页
软件工程概论第6章实现_第3页
软件工程概论第6章实现_第4页
软件工程概论第6章实现_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

1,软件工程概论,第七章实现,2,实现概述,实现就是选用某种程序设计语言在特定的环境下实现软件系统的全部功能,并满足相应的非功能要求。实现包括编码与测试,跨越软件生成周期的两个阶段。,3,编码,编程就为是用编程(程序)语言把软件表达翻译为计算机可以理解的形式用某种程序设计语言书写的程序。目前仍然主要采用人工的方法和传统的编程语言。,4,对源程序质量的要求,对代码编写的要求:源程序具有良好的结构性和良好的程序设计风格,使得写出的源程序:便于阅读、便于测试和容易排除所发现的程序故障(1)软件投入运行后,编写的程序由别人来阅读或自己阅读总是不可避免的,一定要尽量使程序容易为人阅读。(2)一个软件产品需要不断完善,这就需要源程序具有很好的可维护性,维护人员可以方便地对它进行修改、扩充和移植。,5,选择程序设计语言,适宜的程序设计语言能使编码时困难最小,可以减少需要的程序测试量,更容易阅读和维护高级语言的选择标准:1、理想的模块化机制:可读性好的控制结构和数据结构,使程序易测试和维护。2、良好的编译程序:容易尽可能多地发现错误,便于调试和提高程序的可靠性。3、良好的独立编译机制:可以降低软件开发的成本。,6,选择程序设计语言实用标准,1、系统用户的要求:维护由用户负责,需按用户要求选择语言。2、编译程序的选用:环境可提供的编译程序限制其选择。3、软件工具的可利用性:适合的软件工具使系统的实现和验证都变得容易。4、工程规模:工程规模大而无适合的通用语言,选择专用语言。5、程序员知识:要选择既能实现其功能,又是程序员熟悉的语言。6、软件可移植性:选择标准化程度高,可移植性好的语言。7、应用领域要求:lisp,prolog。,7,编码风格,标准:简单明晰易读易懂,8,编码风格程序内部文档,1、标识符:选取含义鲜明的名字,有助于理解。使用缩写,缩写规则应一致,应加注释。2、程序注释:正确而恰当的注释有助于阅读和理解,并为后续阶段的测试和维护提供明确的指导。序言性注释:每个模块首部必须有一段注释,对模块进行整体说明,对于理解程序具有指导作用。内容包括:功能描述、接口描述、返回值、被调用的函数功能性注释:嵌入在模块中间的注释,描述后面一段代码的作用。3、程序清单布局-程序代码的视觉组织:影响程序的可读性。如用适当的阶梯形式使程序的层次结构清晰分明。,9,编码风格数据说明,1、数据说明的次序应标准化,便于查阅,能加快测试、调试和维护的过程。说明的先后次序固定,如常量说明-简单变量说明-数组说明-结构变量说明-文件说明。简单变量说明次序:整型量说明-实型量说明-字符量说明2、多个名字在一个语句中说明,应按字母顺序排列。3、对复杂的数据结构:用注释说明实现的方法和特点。,10,编码风格语句构造,原则:简单、直接,不能为了提高效率而使程序变得过分复杂。规则:1、一行只写一个语句。2、尽量避免复杂的条件测试3、尽量减少对“非”条件的测试4、尽量避免多层循环嵌套和条件嵌套5、利用括号使逻辑或算术表达式运算次序清晰直观。6、语句简单清楚,直截了当,不要可以追求技巧。,11,编码风格输入输出,1、对输入数据效验以保证每个数据的有效性。2、检查输入项重要组合的合法性。3、输入格式简单、统一,容易核对和自鉴定。4、使用数据约束标记,不要求用户指定数据数目。5、明确提示交互式输入请求,指明可使用的选择和边界数据。6、当语言对格式有严格要求时,应保持输入格式的一致性。7、应允许缺省值。8、设计良好的输出报表。9、给所有输出数据加标志。,12,软件测试基础,软件测试:是软件投入运行之前,对软件需求分析、设计规格说明和编码的最终复查,是软件质量保证的关键步骤。软件测试的根本目标是尽可能多地发现并排除软件中隐藏的错误,最终把一个高质量的软件系统交给用户使用。,13,软件测试目标,G.J.Myers关于软件测试的观点:1、测试是为了发现程序中的错误而执行程序的过程。2、好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。3、成功的测试是发现了迄今为止尚未发现的错误的测试。E.D.Dijkstra:程序测试能证明程序中的错误,是为了证明程序有错,而不是证明程序无错。必须记住:测试无法说明错误不存在,它只能表示软件错误已经出现。发现错误的测试目标,决定了测试方案的设计,尽可能设计出最能暴露出错误的测试方案。,14,软件测试准则,1、所有测试应以用户需求为基准,测试的根本目标是保证软件能满足最终用户对软件的需求。2、制定系统的测试计划,并严格执行测试计划,排除测试的随意性。3、充分注意关键模块的测试和测试中的群集现象。2-8原理:80%的错误可能集中在20%的模块中。4、随时注意测试的程序逻辑覆盖程度,确保程序设计中使用的所有条件都能被测试到。5、避免自己测试自己的程序,应由第三方独立进行测试。6、测试用例应包括合理的输入和不合理的输入。不合理的输入往往更能发现程序中错误。7、测试用例应由测试输入数据和对应的预期输出结果组成。缺少预期输出结果实际是缺少检验正误的基础。,15,软件测试方法,白盒测试:按照程序内部逻辑测试程序。检查程序中的每条通路是否都能按照预定要求正常工作。这种测试完全了解程序的结构和处理过程。因此,白盒测试又称为结构测试或逻辑驱动测试。黑盒测试:不考虑程序内部结构和处理过程,只依据软件的需求规格说明书,检查程序的功能是否符合它的功能说明。因此,黑盒测试又称功能测试或数据驱动测试。,16,测试步骤,大型软件的测试基本上由下述几个步骤组成:1、模块测试2、子系统测试3、系统测试4、验收测试5、平行运行,17,测试步骤模块测试,模块测试是检查程序模块是否正确实现了规定的功能,目的是保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。在这个测试步骤中所发现的往往是编码和详细设计的错误。,18,测试步骤子系统测试,子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。模块相互间的协调和通信是这个测试过程中的主要问题。这个步骤着重测试模块的接口。,19,测试步骤系统测试,系统测试是把经过测试的子系统装配成一个完整的系统来测试。在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也要符合预定要求。在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。子系统测试和系统测试通常称为集成测试。,20,测试步骤验收测试,验收测试把软件系统作为单一的实体进行测试,测试内容与系统测试基本类似,但是它是在用户积极参与下进行的,而且可能主要使用实际数据进行测试。验收测试的目的是验证系统确实能够满足用户的需要,在这个测试步骤中发现的往往是系统需求说明书中的错误。验收测试也称为确认测试。,21,测试步骤平行测试,所谓平行运行就是同时运行新旧两个系统,以便比较它们的处理结果,其优点是:(1)可以在准生产环境中运行新系统而又不冒风险;(2)用户能有一段熟悉新系统的时间;(3)可以验证用户指南和使用手册等文档;(4)能够以准生产模式对新系统进行全负荷测试,可以用测试结果验证性能指标。,22,测试阶段的信息流,23,测试阶段的信息流,软件测试应贯穿于软件定义与开发的整个期间。需求分析、概要设计、详细设计和程序编码所得到的文档都应成为软件测试的对象。因此测试阶段的输入信息有两类:软件配置:包括软件需求说明、软件设计规格说明、源程序等测试配置:包括测试计划、测试用例、测试驱动程序。测试配置实际上是软件配置的子集。将测试结果与预期结果进行比较,确定是否存在错误。若存在错误则要进行调试。同时根据收集的测试结果数据评价是否达到可靠性指标,以确定测试是否结束。,24,单元测试,单元测试与编码同属于软件生存周期的一个阶段。主要采用白盒测试技术。由编码人员自己进行测试。多个模块可以并行测试。测试重点:模块接口局部数据结构重要的执行通路出错处理通路影响上述各方面特性的边界条件,25,单元测试模块接口,接口是数据进出模块的通道,接口不正常,其它测试均无法进行。对穿过模块接口数据流的测试,是其它项目测试的基础。接口测试要点:调用本模块的输入参数个数、属性、次序是否匹配;本模块输出给被调用子模块的参数个数、属性、次序是否匹配;传送给内部函数的变元个数、属性、次序是否匹配;是否修改了只做输入用的变元(传地址情况);全局变量的定义和用法在各个模块是否一致。如果一个模块要完成外部的输入/输出时,还要有相应的检查。,26,单元测试局部数据结构,对一个模块而言,局部数据结构是常见的错误来源。测试要点:错误的或不相容的说明使用尚未赋值或尚未初始化的变量。错误的初始化或不正确的缺省值错误的变量名字数据类型不相容上溢或地址异常全局数据对模块的影响:相同的输入不能产生相同的输出。,27,单元测试重要的执行通路,不可能进行穷尽测试,选择最有代表性、最可能发生错误的通道进行测试十分关键。要选择适当的测试用例对模块重要的执行路径(如条件、循环)进行测试,用以发现不正确的计算、错误的比较或不适当的控制流向。目的:使模块中所有可能被执行的语句都被执行,所有可能假设的条件都出现,以保证其逻辑的正确性。,28,单元测试出错处理通路,好的设计应该能预见出现错误的条件,并且设置适当的处理错误的通路,以便在真的出现错误时执行相应的出错处理通路或干净地结束处理。不仅应该在程序中包含出错处理通路,而且应该认真测试这种通路。测试重点:1、对错误的描述难以理解;2、记下的错误与实际遇到的错误不同;3、在对错误进行处理之前,错误条件已引起系统干预;4、对错误的处理不正确;5、描述错误的信息不足以帮助确定造成错误的位置。,29,单元测试边界条件,边界测试是单元测试中最后的也可能是最重要的任务。软件常常在它的边界上失效,例如,处理n元数组的第n个元素时,或做到i次循环中的第i次重复时,往往会发生错误。使用刚好小于、刚好等于和刚好大于最大值或最小值的数据结构、控制量和数据值的测试方案,非常可能发现软件中的错误。,30,单元测试代码审查,人工测试源程序可以由编写者本人非正式地进行。后者称为代码审查,它是一种非常有效的程序验证技术,对于典型的程序来说,可以查处30%-70%的逻辑设计错误和编码错误。,31,单元测试测试软件,单个模块无法独立运行,需要用辅助模块去模拟与被测模块相联系的模块,这些辅助模块称为测试软件。测试软件包括:驱动模块:相当于所测模块的主程序,它接受测试数据,并把测试数据传递给所测模块,最后再输出实测结果。桩模块:存根模块,代替所测模块调用的模块。桩模块可以设计得很简单。,32,集成测试,把模块按设计要求组装成子系统或系统的过程中的测试。主要目标:发现与接口有关的问题。主要表现:(1)流过接口的数据是否丢失-数据类型、位置、长度不匹配。(2)一个模块的功能是否对另一个模块的功能产生不利影响(一个模块的参数由另一个模块计算而得,由于范围的不确定,或未进行有效性判断,而导致该模块处理混乱)(3)子功能的组合是否达到了预期要求的主功能。(4)全程数据结构是否有问题。(5)单个模块的误差是否回被放大(发生连锁反应),以致达到不能接受的程度。,33,集成测试,模块组装方法:非渐增式测试:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序。渐增式测试:把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。渐增式测试策略:自顶向下自底向上。,34,集成测试自顶向下,自顶向下结合方法:从主控制模块开始,沿软件的控制层次下移,逐步把各个模块结合起来进行测试。添加新模块时可以使用深度优先的策略,或者使用宽度优先的策略。步骤:1、测试主控制模块,用存根模块代替直属模块。2、根据选定的结合策略(深度优先或广度优先),用一实际模块代替存根模块。3、用存根模块代替实际模块的直属模块进行测试。4、进行回归测试,排除集成过程中新引进的错误。5、若已集成为整个系统,则测试结束,否则转第二步。,35,集成测试自顶向下,集成测试自顶向下,36,集成测试自顶向下,自顶向下方法能够较早对主要的控制进行检验,若采用深度优先策略,可在早期实现软件的一个完整的功能并验证该功能。早期证实软件的一个完整的功能,可以增强开发人员和用户双方的信心。无论采用哪种结合策略,都要尽早把与I/O有关的关键模块添加进去,以利于测试用例的输入和测试结果的输出。对预期出错可能性大的模块要尽早加入测试,以便在问题复杂化之前检测和排除错误。缺点:不易产生用例。处理方法:把某些测试推迟到适当的时候测试,但可能导致对一个模块一次只能作部分测试。,37,集成测试自底向上,从最低层模块开始,沿控制层次逐步上移,进行组装而测试步骤:1、由驱动模块控制最底层进行并行测试,实现特定软件子功能的族2、由实际模块代替驱动模块,与已测试的直属子模块集成子系统。3、为子系统配备驱动模块,进行新的测试。4、若已集成到根结点,则结束测试,否则转第2步,38,集成测试自底向上,集成测试自底向上,39,不同集成测试策略的比较,自顶向下的优点:不需要测试驱动模块;能较早实现并验证系统的主要功能能较早发现上层模块的接口错误。自顶向下的缺点:需要存根模块,与此相联系的测试困难;低层关键模块中错误发现较晚;不易充分展开人力自底向上的优点和缺点正好与自顶向下相反。改进的自顶向下:早期使用自底向上测试少数关键模块。主要采用自顶向下方法混合法:中上层模块采用自顶向下方法,中下层模块采用自底向上方法。,40,集成测试回归测试,回归测试:指重新执行已经做过的测试。每当改正软件错误的时候,可能导致软件配置的某些成分的改变,这些改变可能引进新的错误。回归测试就是保证由于调试或其它原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动。回归测试所用用例包括下述三类:1、检测软件全部功能的代表性测试用例。2、专门针对可能受修改影响的软件功能的附加用例。3、针对被修改过的软件成分的测试。,41,确认测试,确认测试,也程验收测试,目标是验证软件的有效性。验证:保证软件正确地实现了某个特定要求的一系列活动。确认:指保证软件满足了用户需求而进行的一系列活动。软件有效性:如果软件的功能和性能及其它特性与用户的要求一致,则软件是有效的。软件有效性的标准:需求分析规格说明确认测试的基础。确认测试包括:软件有效性测试、软件配置复审、和测试验收测试。,42,确认测试有效性测试,有效性测试:运用黑盒测试方法,验证软件是否满足需求规格说明书列出的需求。为了保证测试本身的有效性,要仔细设计测试计划和测试过程。目标是保证软件能满足所有功能要求,能达到每个性能要求,文档资料准确且完整,人机界面和其它方面(可移植性、兼容性、可维护性)令用户满意。,43,确认测试结果的可能性,确认测试的结果有两种结果:功能和性能与用户要求一致,软件是可接受的。功能和性能与用户要求有差距。若这时发现在功能和性能方面有缺陷,视出现问题的阶段有关,若分析阶段出现,解决起来较困难,需与用户协商解决。若是设计阶段,可能必须修改。对于一个设计优良的软件,功能缺陷容易解决,性能缺陷可能导致软件设计、软件结构及实现方案的改变。,44,确认测试软件配置复查,软件配置复审的目的是保证软件配置的所有成分都齐全,质量符合要求,文档与程序一致,具有完成软件维护所必须的细节,并且已经编排好分类的目录。软件配置复审除按合同规定的内容和要求由人工进行审查外,在确认测试过程中,应当严格遵守用户手册和操作手册中规定的使用步骤,以便检查这些文档资料的完整性和正确性。,45,确认测试和测试,验收测试是最终用户进行的测试,是一次简单的非正式的“试运行”。如果软件是给一个客户开发的,要让用户对所有的内容都一一进行测试,以决定是否可接受。如果软件是给多个用户开发的,让每个用户逐个执行正式的验收测试是不切实际的。测试:有一个用户在开发环境下进行,并在开发者的“指导”下进行测试;开发者负责记录错误和使用中出现的问题。测试是在受控环境下进行的测试。测试:有一个或多个用户在使用环境下进行的测试。用户负责记录测试中发现的错误和问题,并定期把这些问题报告给开发者。开发者对系统进行最后的修改,然后向所有用户发布最终的软件产品。,46,白盒测试技术,白盒测试:按照程序内部逻辑测试程序。检查程序中的每条通路是否都能按照预定要求正常工作。这种测试完全了解程序的结构和处理过程。因此,白盒测试又称为结构测试或逻辑驱动测试。白盒测试法主要是对程序模块进行如下检查:对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次。在循环的边界和运行界限内执行循环体。测试内部数据结构的有效性。,47,白盒测试技术,测试数据对程序的逻辑覆盖的程度决定了测试完全性的程度。对程序模块中每条可能的通路至少都应该执行一次,即使很小的程序也难做到。假设一个程序有5条通路,循环执行20次,要做到穷尽测试,共要执行520(=1013)条通路。既然不可能做到穷尽测试,软件测试就不可能发现程序中的所有错误,即通过测试并不能使程序是正确的。我们测试的目的是保证软件的可靠性,因此必须仔细设计测试方案,尽可能多地发现错误。,48,设计测试方案,设计测试方案的基本目标是确定一组最可能发现某个错误或某类错误的测试数据。,49,白盒测试逻辑覆盖,1、语句覆盖:选择足够多的测试用例,使被测模块中每个语句都至少执行一次。A=2,B=0,X=42、判定覆盖-分支覆盖:选择足够多的测试用例,使模块中每个判定的每个分支都至少执行一次。A=3,B=0,X=3(sacbd)A=2,B=1,X=1(sabed),50,白盒测试逻辑覆盖,3、条件覆盖:选择足够多的测试用例,使每个判定的每个条件都能取不同的值.A=2,B=0,X=4(sacbed)A=1,B=1,X=1(sabd)4、判定/条件覆盖:选择足够多的测试用例,使每个判定中的每个条件取各种可能的值,而且使每个判断也取各种可能的值。A=2,B=0,X=4(sacbed)A=1,B=1,X=1(sabd),51,白盒测试逻辑覆盖,5、条件组合覆盖:选择足够多的测试用例,使每个判定中条件取各种可能的值的组合至少出现一次。满足条件组合覆盖的测试数据,也一定满足判定覆盖、条件覆盖、条件/判定覆盖标准,但不一定使程序的每条路径都执行到。设条件数为n,对AND运算,条件组合值为2nA=2,B=0,X=4(sacbed)A=2,B=1,X=1(sabed)A=1,B=0,X=2(sabed)A=1,B=1,X=1(sabd),52,白盒测试逻辑覆盖,6.点覆盖在正常情况下程序图是连通的有向图,图中每个节点相当于程序流程图的一个框。满足点覆盖标准要求选取足够多的测试数据,使得程序执行路径至少经过程序图中每个节点一次。显然,点覆盖标准和语句覆盖标准是相同的。7.边覆盖为了满足边覆盖的测试标准,要求选取足够多测试数据,使得程序执行路径至少经过程序图中每条边一次。8.路径覆盖路径覆盖的含义是,选取足够多测试数据,使程序的每条可能路径至少执行一次。,53,基本路径测试,以程序流程图为基础,通过分析控制构造的环路复杂度,导出基本可执行路径的集合,从而设计测试用例,使程序的每条可执行路径都至少执行一次。一个程序环路复杂度的值定义了一个程序独立路径的数量,该数量提供了确保所有语句至少执行一次的测量数量的上界。独立路径:指程序中至少引进一个新的处理语句集合或一个新条件的任一路径。从控制流图来看,一条独立路径是至少包含一条在其它独立路径中从未有过的边。,54,基本路径测试,所有不同独立路径构成的集合称为程序的基本路径集。只要设计出的测试用例能确保这些基本路径的执行,就可以使得程序中的每个可执行语句至少执行一次,每个判断的取真和取假分支也能得到测试。基本路径测试能够做到语句覆盖和判定覆盖。如果把每个判定按条件进行分解后画出程序流图,则基本路径测试可以条件覆盖的程度,但达不到条件组合覆盖的测试程度。,55,基本路径测试,三条独立路径Path1abcfA=2,B=1,X=0Path2abdcfA=3,B=0,X=0Path3abcefA=2,B=1,X=2,56,黑盒测试技术,以程序的功能作为测试的依据设计测试用例,以证明每个功能是否完全可供使用。测试用例应该包括:有效的、无效的、极端的、正常的、特殊的数据。黑盒测试主要是为了发现一下几类错误:是否有不正确或遗漏了的功能;界面错误:输入能否正确地接受?能否输出正确的结果?是否有数据结构或外部信息(如数据文件)访问错误;性能上是否能够满足要求;是否有初始化或终止性错误。,57,黑盒测试-等价划分,等价类:指某个输入域的子集。在该子集中,各个输入数据对于揭示程序中的错误是等效的。功能测试时,不可能选用所有可能有效的和无效的数据进行测试,一般只能选用少量有代表性的输入数据,以期用较小的代价暴露出较多的程序错误。这个有代表性的输入数据,实际上代表了一类数据的共性,若这个数据未发现错误,该类中其它数据也不会发生错误。从这个角度上讲,它们同属于一个等价类。在确定了等价类后,可从每个等价类中选取一组数据作为测试数据,这样选取的测试数据最有代表性,最可能发现程序中的错误。同时避免浪费人力和时间。使用等价划分方法设计测试方案首先需要划分输入数据等价类。在划分时常常还要根据输出数据的等价类来确定输入数据的等价类。如确定各班不同等级成绩的人数,每一个等级对应着输入数据的一个等价类。,58,黑盒测试-等价划分,划分等价类的启发式规则:若确定了输入值的范围,可划分一个有效等价类,两个无效等价类个数。如果规定了输入值的个数,可划分一个有效等价类和一个无效等价类个数。如果规定了输入一组值,程序要对不同值作不同处理,则每个允许值为一个有效等价类,还有一个无效等价类。如果规定了输入数据必须遵守的规则,可划分出一个有效的等价类(符合规则),和若干个无效等价类。如果确知,已划分的等价类中各元素在程序中有不同的处理方式,应将此等价类进一步划分成更小的等价类。,59,黑盒测试-等价划分,根据等价类设计测试用例的方法:设计一个新的测试方案,以尽可能多地覆盖尚未被覆盖的有效等价类。重复这一步骤,直到所有有效等价类都被覆盖为止。设计一个新的测试方案,使它覆盖一个而且只覆盖一个尚未被覆盖的无效等价类。重复这一步骤,直到所有无效等价类被覆盖为止。,60,黑盒测试边界值分析,1、边界值分析的含义经验表明,大量的错误是发生在输入数据或输出数据的边界,而不是在输入范围的内部。针对边界情况设计测试用例可以发现更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常以输入等价类和输出等价类的边界值作为着重测试的程序的边界情况。应当选正好等于、刚刚大于,或刚刚小于边界的值作为测试数据。,61,黑盒测试边界值分析,2、测试用例选择原则如果输入条件规定了值的范围,应该选取刚达到这个范围的边界值,以及刚刚超越这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多一个、比最小个数少一个的数据作为测试数据。如果要求输入和输出数据是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。,62,黑盒测试边界值分析,3、与等价类划分的区别:要选取多个测试用例,使得边界情况成为测试的主要目的。如数组元素的下标的上、下界三角形任意两边之和大于第三边的判定定理,选取两边的和小于和等于第三边的测试用例。组合边界值测试最困难。,63,黑盒测试错误推断,根据经验和直觉,推断可能发生某些错误的类型,以此设计测试用例去发现那些错误。错误推断法的基本思想:列举出程序中所有可能有的错误和容易发生的错误的特殊情况,根据它们选取测试用例。等价划分法和边界值分析法都是孤立地考虑各个输入数据的测试功效,它比较适合单个模块的测试,涉及到多个模块的多个输入数据的组合效应,可能引起出错。但输入数据的组合数据往往十分庞大,只能依靠测试人员的经验和直觉,来推断出程序中可能出错误的类型。,64,实用测试策略,对软件的实际测试时,应联合使用各种设计测试方案的方法,形成一种综合策略。通常的做法是:用黑盒法设计基本的测试方案,再用白盒法补充一些必要的测试方案。具体的方法是:1、在任何情况下都应该用边界值分析方法。经验表明,用这种方法设计的测试方案暴露程序错误的功能最强。2、必要时用等价划分法补充测试方案。3、必要时用错误推断法补充测试方案4、检查已有测试方案,对程序的逻辑覆盖程度,根据逻辑覆盖标准,若有必要再补充测试方案。,65,调试,调试:根据测试所暴露的错误,诊断和改正其错误的过程。步骤:确定错误的准确位置。(调试工作量的95%)确定引起错误的原因,并改正错误。调

温馨提示

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

评论

0/150

提交评论