《软件质量保证与测试.docx》由会员分享,可在线阅读,更多相关《软件质量保证与测试.docx(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、文本为Word版本,下载可任意编辑软件质量保证与测试 篇一:论软件测试在质量保证中的作用 论软件质量保证与测试 一:我对软件测试的认识: 软件测试是为了发现程序中的错误而执行程序的过程。具体的说,软件测试是根据然间开发个阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并利用测试用例来运行程序,依法向程序错误的过程。 软件测试的目的和意义在于发现程序中的错误,有效定义和实现软件成分由低到高的组装过程,验证软件是否满足任务书和系统定义文档所规定的技术要求,为软件质量模型的建立提供依据,具体说来如下:1确认软件的质量。一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这
2、个事件;2提供信息。比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息;3软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第3个目的是保证整个软件开发过程是高质量的。 作为软件测试人员,在软件开发过程中的任务就是寻找bug,避免软件开发过程中的缺陷,衡量软件的品质,关注用户的需求,而其最终目标就是:确保软件的质量。 软件测试在软件生命周期中占据重要的地位,在传统的瀑布模布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户 使用之前保证软件质量的重要手段。近年来,软
3、件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的演示扩散常常会导致最后成品测试的的最大困难。 软件开发过程可分为:需求,实际,实现和测试4个阶段在开发大型软件系统的漫长过程中,面对纷繁复杂的各种现实情况,人的主观认识和客观现实是之间往往存在差距,开发过程中各类人员之间的交流和配合也往往并不是尽善尽美,所以,在软件生存周期的各个阶段都有可能产生差错。软件测试时对软件规格说明,设计和编码的最后复审,是软件质量保证的关键步骤,因此我们一定要重视软件测试工作。 测试是所有工程学院
4、的基本组成单元,是软件开发的重要部分。自由层序时记得那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%左右。而在软件开发的总成本中,用在测试上的开销要占30%-50%。如果把维护阶段也考虑在内,讨论整个软件生存周期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有更多的测试工作。 作为软件测试这个行业,最重要的一件事就是从客户的需求出发,系统的问题越早发现,改正的成本越低,破坏性越小,所以,在系统发布前,要尽量多的把系统的问题找出来,其手段就是有计划,有组 织的进行充分的测试。系统投产后发想的问题
5、,其危害性被成倍的放大,直接损坏了客户的利益和声誉,同时客户将毫不留情的将板子打在开发商身上,这是开发商费钱费力也可能难以挽回失去的市场。 软件测试是软件质量保证的重要手段。 二,软件测试的具体方法与测试模型 1、V模型 在软件 测试方面,V模型是最广为人知的模型。 V模型已存在了很长时间,和瀑布开发模型有着一些共同的特性。V模型中的过程从左到右,描述了基本的开发 过程和测试行为。 V模型优点:在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。 局限性: 把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发
6、现. 2、W模型 V模型的局限性在于没有明确地说明早期的测试,无法体现“尽早地和不断地进行软件测试” 的原则。在V模型中增加软件各开发阶段应同步进行的测试,演化为W 模型(如下图)。 W模型由Evolutif公司提出,相对于V模型,W模型更科学。 优点:W模型是V 模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。 缺点:W模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动,无法支持迭代、自发性以及变更调整。 3、X模型 X模型也是对V模型的改进,X模型提出针对单独的程序片段进
7、行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序。 X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终成为可执行的程序,然后再对这些可执 行程序进行测试。己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生。 优点:X模型定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。 缺点:可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高。 4、H模型 H模型中, 软件
8、测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。软件测试可以尽早的进行,并且可以根据被测物的不同而分层次进行。 这个示意图演示了在整个生产周期中某个层次上的一次测试“微循环”。图中标注的其它流程可以是任意的开发流程,例如设计流程或者编码流程。也就是说, 只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。 H模型揭示了一个原理:软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。H模型指出软件测试要尽早准备, 尽早执行。不同的测试活动可以是按照某个次序先 篇二:软件质量保证与测试技术
9、复习提纲 软件质量保证与测试技术复习提纲 1.31.5 2.1 2.3 2.5 2.6 3.3(3.3.1 扩展) 3.4 5.1 5.7.1 5.7.2 8.1.1 8.1.5 9.1 9.6 3.3.1 扩展 某研究所重新对其在大学以上学历的职工安排工作。其方针如下:如果年龄不满18岁,文化程度是大学,若是男性,则一律要求考研究生。若是女性,则分配到研究所办公室任行政干部;如果年龄满18岁但不足50岁,文化程度是研究生,不分男女性,均任课题组长。文化程度是大学,则不分男女性均担任中层以上各级领导干部;如果年龄满50岁以上,文化程度是研究生,若是男性,则任课题组长。文化程度是大学,若是男性,
10、则任科研人员。若是女性,则任资料员。 判定表的绘制。 提取问题中的条件:性别、年龄和文化程度三个条件。 标出每个条件的取值(为了便于绘制判定表,用符号来代替条件的取值): 见下表一: 检查判定表的完善性:如果任意绘制的判定表很可能是不完善的,也可能存在以下问题: 遗失判定列:即判定表中缺少判定条件组合列。在表二中就缺少了两个判定列。所谓判定列是指判定表右部的各列(包括上下两部分构成的列)。 完善的判定表要满足以下条件: A.判定列计数之和必须等于诸条件取值数之积。 也就是在判定表中右下部分选定的动作列中目标动作的数量应等于所有条件的组合数。 B.每个判定列必须是独立的,即任何两个判定列的诸条件
11、中至少有一个条件的取值是不同。 假设某程序有三个输入变量year 、month、day(month、day和year均为整数值,并且满足:1month12、1day31和1981year2050),分别作为输入日期的年份、月份、日,通过程序可以输出该输入日期在日历上隔一天的日期。试用判定表法设计该程序正确输入条件下的测试用例。设计: 一、确定规则,建立条件桩和动作桩M1月份: 每月有30天 M2月份: 每月有31天, 12月除外M3月份:12月M4月份:2月 D1日期:1=日期=26D2日期:27D3日期:28 D4日期:29D5日期:30D6日期:31Y1 年:年是闰年Y2 年:年不是闰年二
12、、判定表 三、测试用例: 3 假设某程序有三个输入变量year 、month、day(month、day和year 均为整数值,并且满足:1month12、1day31和1981year2050),分别作为输入日期的年份、月份、日,通过程序可以输出该输入日期在日历中下一天(明天)的日期。试用判定表法设计该程序正确输入条件下的测试用例。 篇三:软件质量保证与测试复习总汇试题总结 选择题 1软件测试的目的是( B )。 A)试验性运行软件 B)发现软件错误 C)证明软件正确D)找出软件中全部错误 2软件测试中白盒法是通过分析程序的( B )来设计测试用例的。 A)应用范围 B)内部逻辑C)功能 D
13、)输入数据 3黑盒法是根据程序的(C )来设计测试用例的。 A)应用范围 B)内部逻辑C)功能 D)输入数据 4为了提高软件测试的效率,应该( D )。 A)随机地选取测试数据 B)取一切可能的输入数据作为测试数据 C)在完成编码以后制定软件的测试计划 D)选择发现错误可能性最大的数据作为测试用例 5与设计测试用例无关的文档是( A )。 A)项目开发计划 B)需求规格说明书 C)设计说明书 D)源程序 6测试的关键问题是( B )。 A)如何组织软件评审B)如何选择测试用例 C)如何验证程序的正确性 D)如何采用综合策略 7软件测试用例主要由输入数据和( C )两部分组成。 A)测试计划 B
14、)测试规则 C)预期输出结果 D)以往测试记录分析 8成功的测试是指运行测试用例后( B )。 A)未发现程序错误 B)发现了程序错误 C)证明程序正确性 D)改正了程序错误 9下列几种逻辑覆盖标准中,查错能力最强的是( D )。 A)语句覆盖 B)判定覆盖 C)条件覆盖 D)条件组合覆盖 10在黑盒测试中,着重检查输入条件组合的方法是( D )。 A)等价类划分法 B)边界值分析法 C)错误推测法 D)因果图法 11单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( A )。 A)系统功能 B)局部数据结构 C)重要的执行路径 D)错误处理 12软件测试过程中的集成测试主要
15、是为了发现A)需求分析 B)概要设计 C)详细设计 D)编码 13不属于白盒测试的技术是( D )。 A)路径覆盖 B)判定覆盖 C)循环覆盖 D)边界值分析 14集成测试时,能较早发现高层模块接口错误的测试方法为( A )。 A)自顶向下渐增式测试B)自底向上渐增式测试C)非渐增式测试 D)系统测试 15使用白盒测试方法时,确定测试数据应根据(A )和指定的覆盖标准。 A)程序内部逻辑 B)程序的复杂度 C)使用说明书 D)程序的功能 16程序的三种基本结构是( B )。 A)过程子、程序、分程序 B)顺序、选择、循环 C)递归、堆栈、队列D)调用、返回、转移 17软件调试的目的是( A )
16、 A)找出错误所在并改正之 B)排除存在错误的可能性 C)对错误性质进行分类D)统计出错的次数 18下面说法正确的是( C)。 A)经过测试没有发现错误说明程序正确B)测试的目标是为了证明程序没有错误 C)成功的测试是发现了迄今尚未发现的错误的测试 D)成功的测试是没有发现错误的测试 20发现错误能力最弱的是( A )。 A)语句覆盖 B)判定覆盖 C)条件覆盖 D)路径覆盖 22下面( D )方法能够有效地检测输入条件的各种组合可能引起的错误。 A)等价类划分 B)边界值分析 C)错误推测D)因果图 23与确认测试阶段有关的文档是( A )。 A)需求规格说明书B)概要设计说明书 C)详细设
17、计说明书D)源程序 25( B )方法需要考察模块间的接口和各模块之间的联系。 A)单元测试 B)集成测试 C)确认测试 D)系统测试 26调试应该由( B )完成。 A)与源程序无关的程序员 B)编制该源程序的程序员 C)不了解软件设计的机构 D)设计该软件的机构 27在设计人机界面时,应主要考虑的因素有 系统响应时间 B)错误处理 C)用户求助机制 D)以上都是 28、用黑盒技术设计测试用例的方法之一为(A ) A)因果图B)逻辑覆盖 C)循环覆盖D)基本路径测试 29、软件测试的目的是( B ) A)避免软件开发中出现的错误 B)发现软件开发中出现的错误 C)尽可能发现并排除软件中潜藏的
18、错误,提高软件的可靠性 D)修改软件中出现的错误 30、下列软件属性中,软件产品首要满足的应该是( A ) A)功能需求 B)性能需求 C)可扩展性和灵活性 D)容错纠错能力 5、以程序的内部结构为基础的测试用例技术属于( D )。 A)灰盒测试B)数据测试C)黑盒测试D)白盒测试 6、为了提高测试的效率,正确的做法是( A )。 A)选择发现错误可能性大的数据作为测试用例 B)在完成程序的编码之后再制定软件的测试计划 C)随机选取测试用例 D)使用测试用例测试是为了检查程序是否做了应该做的事 7、对程序的测试最好由( )来做,对程序的调试最好由谁来做( B )。 A)程序员第三方测试机构 B
19、)第三方测试机构 程序员 C)程序开发组 程序员 D)程序开发组程序开发组 8、在进行单元测试时,常用的方法是( A ) A)采用白盒测试,辅之以黑盒测试 B)采用黑盒测试,辅之以白盒测试 C)只使用白盒测试D)只使用黑盒测试 9、以下那一种选项不属于软件缺陷( D )。 A)软件没有实现产品规格说明所要求的功能 B)软件中出现了产品规格说明不应该出现的功能 C)软件实现了产品规格没有提到的功能 D)软件实现了产品规格说明所要求的功能但因受性能限制而未考虑可移植性问题 10、软件生存周期过程中,修改错误代价最大的阶段是( D )。 A)需求阶段B)设计阶段C)编程阶段 D)发布运行阶段 11、
20、在边界值分析中,下列数据通常不用来做数据A)正好等于边界的值 B)等价类中的等价值 C)刚刚大于边界的值 D)刚刚小于边界的值 12、单元测试中设计测试用例的依据是( D )。 A)概要设计规格说明书B)用户需求规格说明书 C)项目计划说明书 D)详细设计规格说明书 13、通常可分为白盒测试和黑盒测试。白盒测试是根据程序的( C )来设计测试用例, 黑盒测试是根据软件的规格说明来设计测试用例。 A)功能 B)性能C)内部逻辑 D)内部数据 14、如果一个判定中的复合条件表达式为(A 1)or(B = 3),则为了达到100%的条件覆盖率,至少需要设计多少个测试用例( B )。 A)1 B)2
21、C)3 D)4 15、经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误较多,则该模块中残存的错误数目与其他模块相比,通常应该( B )。 A)较少 B)较多 C)相似 D)不确定 17、在某大学学籍管理信息系统中,假设学生年龄的输入范围为1640,则根据黑盒测试中的等价类划分技术,下面划分正确的是(B )。 A)可划分为2个有效等价类,2个无效等价类 B)可划分为1个有效等价类,2个无效等价类 C)可划分为2个有效等价类,1个无效等价类 D)可划分为1个有效等价类,1个无效等价类 18、根据软件需求规格说明书,在开发环境下对已经集成的软件系统进行的测试是( A )。 A
22、)系统测试B) 单元测试 C) 集成测试 D) 验收测试 19、下面有关测试原则的说法正确的是( A )。 A)测试用例应由测试的输入数据和预期的输出结果组成 B)测试用例只需选取合理的输入数据 C)程序最好由编写该程序的程序员自己来测试 D)使用测试用例进行测试是为了检查程序是否做了它该做的事 21、软件设计阶段的测试主要采取的方式是( A )。 A)评审 B)白盒测试C)黑盒测试D)动态测试 22、下列关于测试方法的叙述中不正确的是( C ) A)从某种角度上讲,白盒测试与黑盒测试都属于 B)功能测试属于黑盒测试 A)基本路径测试法 B)等价类测试法 C)对功能的测试通常是要考虑程序的内部
23、结构 C)边界值分析法 D)基于场景的测试方法 D)结构测试属于白盒测试 26、测试程序时,不可能遍历所有可能的输入数据,23、在覆盖准则中,最常用的是( D ) 而只能是选择一个子集进行测试,那么最好的选择A)语句覆盖B)条件覆盖 C)方法是( B )。 分支覆盖D)以上全部 A)随机选择B)划分等价类 24、大多数实际情况下,性能测试的方法是( A )。 C)根据接口进行选择 D)根据数据大小进行选择 A)黑盒测试 B白盒测试 27、下列可以作为软件测试对象的是( D )。 C)静态分析 D可靠性测试 A)需求规格说明书 B)软件设计规格说明 25、下列方法中,不属于黑盒测试的是( A )
24、。 C)源程序D)以上全部 二、判断正误题 1. 测试是调试的一个部分 ( N ) 2. 软件测试的目的是尽可能多的找出软件的缺陷。( Y ) 3. 程序中隐藏错误的概率与其已发现的错误数成正比( Y ) 4. 单元测试能发现约80%的软件缺陷。( Y ) 5. 测试的目的是发现软件中的错误。( Y ) 6. 代码评审是检查源代码是否达到模块设计的要求。( N ) 7. 自底向上集成需要测试员编写驱动程序。( Y ) 8 测试是证明软件正确的方法。( N ) 9. 测试中应该对有效和无效、期望和不期望的输入都要测试。( Y ) 10. 黑盒测试也称为结构测试。( N ) 11集成测试计划在需求
25、分析阶段末提交。( N ) 12. 测试是为了验证软件已正确地实现了用户的要求。( N ) 13、黑盒测试的测试用例是根据程序内部逻辑设计的。 ( N ) 14、黑盒测试的测试用例是根据应用程序的功能需求设计的。 ( Y ) 三、填空题 1动态测试通过 运行程序 发现错误。根据 测试用例 的设计方法不同,动态测试又分为 黑盒测试、白盒测试 两类。 2白盒测试是 结构 测试,被测对象是 源程序 ,以程序的内部逻辑 为基础设计测试用例。 3逻辑覆盖是对程序内部有 判定 存在的逻辑结构设计测试用例,根据程序内部的逻辑覆盖程度又可分为 语句覆盖 、 判断覆盖 、 条件覆盖、 判定/条件覆盖 、 条件组
26、合覆盖和 路径覆盖 6种覆盖技术。 4循环覆盖是对程序内部有 循环存在的逻辑结构设 15、为了快速完成集成测试,采用一次性集成方式是适宜的。 ( N ) 16、在软件开发过程中,若能推迟暴露其中的错误,则为修复和改进错误所花费的代价就会降低。 ( X ) 17、在软件开发过程中,若能尽早暴露其中的错误,则为修复和改进错误所花费的代价就会降低。( Y )18、单元测试通常由开发人员进行。 ( Y ) 19、压力测试通常需要辅助工具的支持。( Y ) 20、测试人员说:“没有可运行的程序,我无法进行测试工作”。 ( N ) 21、软件测试员可以对产品说明书进行白盒测试。 ( N ) 22、在设计测
27、试用例时,应包括合理的输入条件和不合理的输入条件。( Y ) 23、要充分注意软件测试中的群集现象。(Y ) 24、软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作。 ( N ) 25、发现错误多的模块,残留在模块中的错误也多。( Y ) 26、测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。( N )计测试用例,它通过限制 循环次数来测试。 5基本路径测试是在程序 控制流程图基础上,通过分析控制构造的 环路复杂性,导出 基本路径集合,从而设计测试用例。 6黑盒
28、测试是 功能 测试,常用黑盒技术设计测试用例 有:等价类划分 、边界值分析 、 因果图。 7边界值分析是将测试 边界情况作为重点目标,选取正好等于、刚刚大于或刚刚小于边界值 的测试数据。如果输入或输出域是一个有序集合,则应选取集合的 8因果图的基本原理是通过画 因果图,把用自然语言描述的 功能说明 转换为 判定表,最后为判定表每一列设计一个测试用例。 9测试的综合策略是在测试中,联合使用各种 测试至少执行一次,这种逻辑覆盖标准称为 判定覆盖 。 24要覆盖含循环结构的所有路径是不可能的,一般通过限制 循环次数 来测试。 25、软件测试的模型分为:V模型、W模型、X模型、方法。通常先用 黑盒法设
29、计基本的测试用例,再用 白盒法补充一些必要的测试用例。 10 单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误,它涉及 编码 和 详细设计 的文档。 11单元测试主要测试 模块 的5个基本特征:模块接口 、局部数据结构、重要的执行路径、 错误处理 、边界条件。 12在单元测试中,需要为被测模块设计 驱动 模块和桩 模块。 驱动模块用来模拟被测模块的上级调用模块, 桩模块用来代替被测模块所调用的模块。 13集成测试指在 单元测试基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。也称 组装测试或联合 测试。 14集成测试
30、的方法有两种: 非渐增式测试和 渐增式测试。 16自顶向下渐增式测试不需要编写驱动 模块,只需要编写 桩模块,其步骤是从顶层 模块开始,沿着被测程序的 软件结构图的控制路径逐步向下测试,它有两种组合策略: 深度优先策略 和 宽度优先策略 。 17自底向上渐增式测试不需要编写桩 模块,只需要编写 驱动模块。 18被测试程序不在机器上运行,而是采用人工检测和计算机辅助分析检测的手段称为静态测试。 19用等价类划分法设计一个测试用例时,使其覆盖 尽可能多的尚未被覆盖的合理等价类。用等价类划分法设计一个测试用例时,使其覆盖 一个 不合理等价类。 21软件测试是为了发现错误而执行程序的过程。 22运行被
31、测程序的方法称为 动态 测试。 。 26、一个文本框要求输入6位数字密码,且对每个帐户每次只允许出现三次输入错误,对此文本框进行测试设计的等价区间有:密码位数:6位 和 非6位的;密码内容:数字的 和 非数字的;输入次数:三次以内 和 超过三次。 27、软件的六大质量特性包括:(功能性、可靠性、可用性、效率、稳定性、可移植性 ) 28、软件测试按照不同的划分方法,有不同的分类: (1)按照软件测试用例的设计方法而论,软件测试可以分为(白盒测试法)和黑盒测试法 (2)从是否执行程序的角度,软件测试可以分为静态测试和动态测试 (3)按照软件测试的策略和过程来分类,软件测试可分为(单元测试、验证测试
32、、确认测试)、集成测试、系统测试。 四、名词解释 1软件测试:软件测试指为了发现软件中的错误而执行软件的过程。它的目标是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。 2静态测试:指被测试的程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。 3动态测试:指通过运行程序发现错误 4黑盒测试:指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为功能测试或数据驱动测试。 5白盒测试:把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过
33、程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。 6语句覆盖:设计足够的测试用例,使被测程序中每个语句至少执行一次 7判定覆盖:指设计足够的测试用例,使被测程序中每个判定表达式至少获得一次“真”值或“假”值,从而使程序的每个分支至少都通过一次,因此判定覆盖又称分支覆盖 8条件覆盖:指设计足够测试用例,使判定表达式中每个条件的各种可能的值至少出现一次。 9判定/条件覆盖:设计足够的测试用例,使得判定表达 定表达式所有可能的结果也至少出现一次。 10条件组合覆盖:指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值
34、的组合都至少出现一次。 11路径覆盖:设计足够的测试用例,覆盖被测程序中所有可能的路径 12测试用例:指为寻找程序中的错误而精心设计的一组测试数据 13驱动模块:指用来模拟被测模块的上级调用模块,其功能比真正的上级模块简单得多,它只完成接受测试数据,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结果并输出。 14桩模块: 桩模块指用来代替被测试模块所调用的模块,其作用是返回被测试模块所需的信息。 15单元测试: 单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。 16集成测试: 集成测试指在单元测试基础上,将所有模
35、块按照设计要求组装成一个完整的系统进行的测试。也称组装测试或联合测试。 五、简答题 1为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网? 软件测试是软件开发中不可缺少的重要一环,原因是: 测试的工作量约占整个项目开发工作量的40%左右,几乎一半。如果是关系到人的生命安全的软件,测试的工作量还要成倍增加。 软件测试代表了需求分析、设计、编码的最终复审。 软件测试不是软件质量保证的安全网,因为软件测试只能发现错误,不能保证没有错误。 3软件测试应当遵循什么原则?为什么要遵循这些原则? 软件测试应当遵循原则如下: 用例由输入数据和预期的输出数据两部分组成,因为这样便于对照检
36、查,做到有的放矢。 用例不仅选用合理的输入数据,还要选择不合理的输入数据。因为当以特殊方式使用程序时,会突然发现程序中有许多错误,故使用预期的不合理的输入数据进行程序测试,比用合理的输入数据收获要大,从而能更多地发现错误,提高程序可靠性。 除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事,因为如果程序做了它不应该做的事,即使程序能做它应该做的事,程序也是错误的。 应制定测试计划并严格执行,因为这样可以排除随意性。 长期保留测试用例,因为测试用例的设计耗费很大的工作量,而修改后的程序可能有新的错误,需要进行回归复性,同时测试用例是将来系统维护测试与确认的依据,保存测试用例也
37、为以后的维护提供方便。 对发现错误较多的程序段,应进行更深入的测试,因为发现错误较多的程序段,其质量较差,同时在修改错误过程中又容易引入新的错误。 程序员避免测试自己设计的程序,因为测试目的是找错。从心理学角度讲,程序员大多对自己的程序存有偏见,总认为没有错误或错误不大,另外程序员对需求规格说明的理解而引入的错误则更难发现,应该由别人或另外的机构来测试会更客观、更有效。 5软件测试的过程是什么? 软件测试是一个规则的过程,包括测试设计、测试执行以及测试结果比较等。 测试设计:根据软件开发各阶段的文档资料和程序的内部结构,利用各种设计测试用例技术精心设计测试用例。 测试执行:利用这些测试用例执行
38、程序,得到测试结果。 测试结果比较:将预期的结果与实际测试结果进行比较,如果二者不符合,对于出现的错误进行纠错,并修改相应文档。修改后的程序还要进行再次测试,直到满意为止。如果测试发现不了错误,可能由于测试配置考虑不周到,应考虑重新制定测试方案,设计测试用例。 6单元测试、集成测试和系统测试各自主要目标是什么?它们之间有什么不同?相互有什么关系? 单元测试的主要目标是检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。 集成测试的主要目标是检查与设计相关的软件体系结构的有关问题。 确认测试的主要目标是检查已实现的软件是否满足需求规格说明书中确定的各种需求。 单元测试、集成测
39、试和确认测试之间的不同如下: 测试内容不同:单元测试集中于单个模块的功能和结构检验,其测试内容主要包括模块接口、局部数据结构、重要的执行路径、错误处理和边界测试;集成测试集中于模块组合的功能和软件结构检验,其测试内容主要包括模块组装中可能出现的问题,即数据穿过接口可能丢失、一个模块可能破坏另一个模块的内容、子功能组装可能不等于主功能、全程数据结构问题、误差累积问题;确认测试集中于论证软件需求的可追溯性,主要包括测试软件功能和性能是否与软件需求一致、测试软件配置的所有程序与文档是否正确完整而且一致。 测试的方法不同:单元测试总是使用白盒测试法,为被测模块设计驱动模块和桩模块;集成测试使用渐增式测试和非渐增式测试,渐增式测试又有分为自顶向下结合法和自底向上结合法;确认测试总是使用黑盒测试法。 软件质量保证与测试第 38 页 共 38 页