软工测试复习
《软件工程》11套考试复习练习试题、作业题[含答案解析]
![《软件工程》11套考试复习练习试题、作业题[含答案解析]](https://img.taocdn.com/s3/m/2958e1d3910ef12d2bf9e70d.png)
作业1:1. 软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2. 开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3. 从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、( G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4. 软件工程过程有哪几个基本过程活动?试说明之。
软件工程复习题与答案

二、填空题1.为了支持软件人员开发和维护活动而使用的软件一般是指___软件工具_____。
3.在软件结构的设计中,各个模块之间要力求降低耦合性,提高__内聚性_____。
5.数据流图(DFD)一般可分为变换型和__事务性_____两类。
6.软件维护的内容包括校正性维护、适应性维护、__完善性维护__和预防性维护。
7.软件的生产经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程时代___。
8.渐增模型是瀑布模型的变种,分为两类:增量构造模型和__演化提交模型__。
9.状态图反映了_事件与状态____的关系。
10.软件项目管理过程一个关键的活动是__制定项目计划__,它是软件开发工作的第一步。
11.组成软件的两个部分是:____程序和文档________。
14.变换型数据流图是由输入、__变换(或处理)_____和输出三部分组成的。
15.Jackson方法是一种面向___数据结构_____的开发方法。
16.结构化语言是介于___自然语言_____和形式语言之间的一种半形式语言。
17.软件产品在交付使用之前一般要经过___单元测试___、集成测试、确认测试和系统测试。
18.不采用软件工程的方法开发软件,软件只有程序而无文档,从而导致维护工作困难,这是一种__结构化______的维护。
19.子类自动共享父类数据结构和方法的机制是___继承性_____,这是类之间的一种关系。
21.软件生产的发展经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程____时代。
22.可行性研究从以下三个方面研究每种解决方法的可行性:经济可行性、社会可行性和__技术可行性____。
23.HIPO图的H图用于描述软件的层次关系,矩形框表示一个模块,矩形框之间的直线表示模块之间的____调用_____关系。
24.数据流图描绘数据在系统中___流动和处理___的过程。
25.为了便于对照检查,测试用例应由输入数据和预期的___输出结果(输出数据)____两部分组成。
软件工程复习题

一、判断题1. 白盒法是一种静态测试方法,主要用于模块测试。
(× )2. 白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。
(× )3. 整体测试又称为逻辑覆盖测试,需要对系统模块的内部结构进行测试。
(×)4. 集成测试主要由用户来完成。
(×)5. 确认测试计划应该在可行性研究阶段制定(×)6. 软件工程过程应该以软件设计为中心,关键是编写程序。
(× )7. 软件概要设计包括软件系统结构设计以及数据结构和数据库设计。
( √)8. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
(×)9. 结构化方法的工作模型是使用螺旋模型进行开发。
( Ⅹ)10. 螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
( √)11. 信息隐蔽原则有利于提高模块的内聚性。
(√)12. 面向对象开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。
( √)13. 过程描述语言可以用于描述软件的系统结构。
( Ⅹ)14. SA法是面向数据流,建立在数据封闭原则上的需求分析方法。
( √)15. HIPO法既是需求分析方法,又是软件设计方法。
( √)16. 判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。
( Ⅹ)17. 需求分析的主要方法有SD法、OOA法及HIPO法等。
(Ⅹ)18. 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。
(√)19. 分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。
( Ⅹ)20. 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。
( √)21. 划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。
( Ⅹ)22. 如果通过软件测试没有发现错误,则说明软件是正确的。
(Ⅹ)23. JACKSON方法是以数据流、数据封闭性准则逐层分解的。
软件工程期末复习题答案

软件工程期末复习题一、选择题1.软件测试的目的是()。
A)试验性运行软件B)发现软件错误C)证明软件正确D)找出软件中全部错误2.软件测试中白盒法是通过分析程序的()来设计测试用例的。
A)应用范围B)内部逻辑C)功能D)输入数据3.黑盒法是根据程序的()来设计测试用例的。
A)应用范围B)内部逻辑C)功能D)输入数据4.为了提高软件测试的效率,应该()。
A)随机地选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)选择发现错误可能性最大的数据作为测试用例5.与设计测试用例无关的文档是()。
A)项目开发计划B)需求规格说明书C)设计说明书D)源程序6.测试的关键问题是()。
A)如何组织软件评审B)如何选择测试用例C)如何验证程序的正确性D)如何采用综合策略7.软件测试用例主要由输入数据和()两部分组成。
A)测试计划B)测试规则C)预期输出结果D)以往测试记录分析8.成功的测试是指运行测试用例后()。
A)未发现程序错误B)发现了程序错误C)证明程序正确性D)改正了程序错误9.下列几种逻辑覆盖标准中,查错能力最强的是()。
A)语句覆盖B)判定覆盖C)条件覆盖D)条件组合覆盖10.在黑盒测试中,着重检查输入条件组合的方法是()。
A)等价类划分法B)边界值分析法C)错误推测法D)因果图法11.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是()。
A)系统功能B)局部数据结构C)重要的执行路径D)错误处理12.软件测试过程中的集成测试主要是为了发现()阶段的错误。
A)需求分析B)概要设计C)详细设计D)编码13.不属于白盒测试的技术是()。
A)路径覆盖B)判定覆盖C)循环覆盖D)边界值分析14.集成测试时,能较早发现高层模块接口错误的测试方法为()。
A)自顶向下渐增式测试B)自底向上渐增式测试C)非渐增式测试D)系统测试15.确认测试以()文档作为测试的基础。
软件工程考核知识点-第7章-软件测试

软件工程考核知识点-第7章-软件测试7.1 软件测试的目的及原则7.1.1 软件测试的目的(1)软件测试是为了发现错误而执行程序的过程。
(2)一个好的测试用例能够发现至今尚未发现的错误。
(3)一个成功的测试是发现了至今尚未发现的错误的测试。
因此,测试阶段的基本任务应该是根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组“高产”的测试用例,利用这些实例执行程序,找出软件中潜在的各种错误和缺陷。
7.1.2软件测试的原则在软件测试中,应注意以下原则:(1)测试用例应由输入数据和预期的输出数据两部分组成。
这样便于对照检查,做到"有的放矢"。
(2)测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。
这样能更多地发现错误,提高程序地可靠性。
对于不合理地输入数据,程序应拒绝接受,并给出相应提示。
(3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。
例如程序正确打印出用户所需信息的同时还打印出用户并不需要的多余的信息。
(4)应制定测试计划并严格执行,排除随意性。
(5)长期保留测试用例。
测试用例的设计耗费很大的工作量,必须作为文档保存。
因为修改后的程序可能有新的错误,需要进行回归测试。
同时,为以后的维护提供方便。
(6)对发现错误较多的程序段,应进行更深入的测试。
有统计数字表明,一段程序中所发现的错误数越多,其中存在的错误概率也越大。
因为发现错误数多的程序段,其质量较差。
同时在修改错误过程中又容易引入新的错误。
(7)程序员避免测试自己的程序。
测试是一种"挑剔性"的行为,心理状态是测试自己程序的障碍。
另外,对需求规格说明的理解而引入的错误则更难发现。
因此应由别的人或另外的机构来测试程序员编写的程序会更客观,更有效。
7.2 测试方法软件测试方法一般分为两大类:动态测试方法与静态测试方法,而动态测试方法中又根据测试用例的设计方法不同,分为黑盒测试与白盒测试两类。
《软件工程与软件测试技术》期末复习大纲

《软件工程与软件测试技术》课程复习大纲与练习题备注:1)复习材料包括:复习大纲、教材、授课幻灯片、习题课幻灯片、在线练习题。
2)如学员使用其他版本教材,请参考相关知识点第一章软件工程和软件测试概述•基本概念:软件、软件危机、软件工程、软件生命周期、软件过程模型•重点的知识点:–软件工程方法学的要素–软件生命周期都包括哪些阶段,每个阶段的任务–主要的软件过程模型有哪些,每个软件过程模型的特点、优点、缺点、适用场合•需了解的知识点–软件测试的起源–软件测试工程师应具备的素质第二章软件测试基础•基本概念:–软件测试,软件缺陷,软件质量保证,单元测试,集成测试,系统测试,确认测试,验收测试,黑盒测试,白盒测试,灰盒测试,开发方测试(alpha测试),用户测试(Beta测试),第三方测试,V模型,W模型,H模型,X模型,前置测试模型•重点的知识点:–软件测试的目的–软件测试的原则–软件测试的类型–软件测试模型–软件质量保证的工作内容•需了解的知识点–软件质量保证的工作过程–软件质量保证的目标–软件质量保证与软件测试的区别第三章白盒测试技术•基本概念:–白盒测试,静态测试,动态测试,桌面检查,代码审查,走查,静态结构分析,基本路径测试法,LCSAJ•重点的知识点–逻辑覆盖法(掌握各种逻辑覆盖的定义和条件)–基本路径测试法–最小测试用例数的计算–白盒测试的综合测试策略–ESTCA覆盖准则–LCSAJ覆盖准则•需了解的知识点–词法分析与语法分析–静态程序分析–程序插桩技术–静态质量度量法第四章黑盒测试技术•基本概念–黑盒测试,有效等价类、无效等价类,等价类划分法、边界值分析法、场景法、因果图法、正交实验法、判定表法,错误推测法、随机测试、功能分解法等•重点的知识点–功能测试用例设计方法(等价类划分法、边界值分析法、场景法、因果图法、正交实验法、判定表法,错误推测法、随机测试、功能分解法等)–测试方法综合使用策略•需了解的知识点–黑盒测试用例的编写和组织–QTP自动测试工具。
软件工程复习题(带答案)

软件工程复习题(带答案)软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机 B质量保证 C开发效率 D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标 B软件的性能C软件的功能 D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D )A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的()A.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。
A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系 D属性13、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。
《软件工程》复习题及答案

第一部分
一、选择题:
1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。
A.软件工程B.软件周期C.软件危机D.软件产生
2.瀑布模型本质上是一种(A)模型。
A.线性顺序B.顺序迭代C.线性迭代D.早期产品
3.瀑布模型存在的问题是(B)。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求
数据流图的基本符号的意思:
1.矩形表示数据的外部实体;
2.圆角的矩形表示变换数据的处理逻辑;
3.少右面的边矩形表示数据的存储;
4.箭头表示数据流。
8.什么是数据字典?其作用是什么?它有哪些条目?
答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。
作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。
32.基线可作为软件生存期中各开发阶段的一个检查点。当采用的基线发生错误时,可以返回到最近和最恰当的(C)上。
A.配置项B.程序C.基线D.过程
33.在软件设计中应该保持模块的独立性原则,( A )反映模块独立性。
A.耦合和内聚 B.数据和模块 C. 模块内部的凝聚力 D.模块之间的耦合
二、简答题
1.什么是软件工程?软件工程的目标是什么?
A、1%B、20%C、8%D、50%
13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。
A.《计算机软件保护条例》
B.《中华人民共和国计算机信息系统安全保护条例》
C.《中华人民共和国著作权法》
D.《计算机病毒防治管理办法》
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试基础1.为什么要进行软件测试?——为了保证软件质量“程序测试是为了发现错误而执行程序的过程”。
测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。
在软件开发过程中,分析、设计与编码等工作都是建设性的,惟独测试是带有“破坏性”,测试可视为分析、设计和编码3个阶段的“最终复审”,在软件质量保证中具有重要地位。
2.软件质量的内涵总结说来,高品质软件应该是相对的无产品缺陷(bug free)或只有极少量的缺陷,它能够及时递交给客户,所花费用都在预算内,并且满足客户需求,是可维护的。
但是,有关质量好坏的最终评价依赖于用户的反馈3.软件缺陷的定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
4.软件错误产生的可能原因是:1)需求规格说明书包含错误的需求、或漏掉一些需求,或没有准确表达客户所需要的内容2)需求规格说明书中有些功能不可能或无法实现3)系统设计(system design)中的不合理性4)程序设计中的错误5)程序代码中的问题,包括错误的算法、复杂的逻辑等5.软件缺陷的种类:按照严重性级别的定义不尽相同,但一般可以概括为4种类型:1)致命的(fatal):致命的错误,造成系统或应用程序崩溃(crash)、死机、系统悬挂,或造成数据丢失、主要功能完全丧失等。
2)严重的(critical):严重错误,指功能或特性没有实现,主要功能部分丧失,次要功能完全丧失,提示信息不太准确,或致命的错误声明3)一般的(major):不太严重的错误,这样的软件缺陷虽然不影响系统的基本使用,但没有很好地实现功能,没有达到预期效果。
如次要功能丧失,提示信息不太准确,或用户界面差,操作时间长4)微小的(minor):一些小问题,对功能几乎没有影响,产品或属性仍可使用,如有个别错别字、文字排列不整齐等。
5)此外,有时还需要“建议(Suggestion)”级别来处理测试人员所提出的建议或质疑。
6.软件缺陷的状态软件缺陷除了严重性以外,还存在反映软件缺陷处于一种什么样的状态,便于跟踪和管理某个产品的缺陷,可以定义不同的bug状态:1)激活状态(Active或Open):问题没有解决,测试人员新报的bug,或验证后bug依然存在2)已修正状态(Fixed或Resolved):开发人员针对所存在的缺陷,修改程序,认为已解决问题,或通过单元测试3)关闭或非激活状态(Close或Inactive):测试人员验证fixed bug后,确认bug不存在之后的状态。
此外,还有下面一些中间状态:4)保留(Hold):bug目前无法解决或是由第三方软件产品引起的5)延期(Differed):bug暂时不需要解决或在下一版本中解决更彻底一些7.软件缺陷产生的主要原因:1)技术问题主要包括:算法错误、语法错误、计算和精度问题、系统结构不合理、算法不科学,造成系统性能低下、接口参数传递不匹配,导致模块集成出现问题2)团队工作对客户的需求不是十分清楚,或者和用户的沟通存在一些困难;开发人员相互理解不一致;设计或编程上的一些假定或依赖性,没有得到充分的沟通3)软件本身文档错误、用户使用场合(user scenario),时间上不协调、或不一致性所带来的问题。
系统的自我恢复或数据的异地备份、灾难性恢复等问题8.软件缺陷的构成在真正的程序测试之前,通过审查、评审会可以发现更多的缺陷。
规格说明书的缺陷会在需求分析审查、设计、编码、测试等过程中会逐步发现,而不能在需求分析一个阶段发现9.软件缺陷的发现随着时间的推移带来的成本越来越大。
(8,9结合作业)10.评审是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进。
检验工作产品是否正确地满足了以往工作产品中建立的规范。
11.软件测试的分类根据测试过程中被测软件是否被执行,分为静态测试和动态测试12.软件测试模型:V模型(书P67)13.软件测试的工作范畴1)软件测试工作的组织与管理:制定测试策略、测试计划,确认所采用的测试方法与规范,控制测试进度,管理测试资源。
2)测试工作的实施:编制符合标准的测试文档,搭建测试环境,开发测试脚本、与开发组织协作实现各阶段的测试活动。
14.测试工作流程15.执行测试主要有下列一些活动:1)建立必要的测试环境2)按照所写的测试用例,编写测试脚本3)根据测试对象和目的,构造测试用例的集合4)运行测试脚本或手工按测试用例进行5)记录测试结果6)结果比较分析,找出软件缺陷7)将软件缺陷记录到缺陷数据库中,清楚地描述该缺陷8)跟踪和管理软件缺陷9)验证被处理的软件缺陷,并进行回归测试10)对测试过程进行管理,保证测试工作执行的正确性,实现资源调拨和相关合作方的协调。
对测试中的问题进行全程跟踪16. 在单元测试阶段,主要用白盒测试方法设计测试用例;在功能测试阶段,主要用黑盒测试方法来设计测试用例。
17.白盒法常用的覆盖标准(PPT 第三章P18-38)18. 黑盒测试方法(PPT 第三章P40-88)19. 单元测试的定义1)定义:单元测试是对软件基本组成单元进行的测试。
2)测试对象:软件设计的最小单位-模块。
3)时机:一般在代码完成后由开发人员完成,QA人员辅助。
4)过程:在详细设计阶段完成单元测试计划。
建立单元测试环境,完成测试设计和开发。
执行单元测试用例,并且详细记录测试结果。
判定测试用例是否通过。
提交《单元测试报告》。
20. 单元测试的目标和任务1)主要目标:确保各单元模块被正确地编码2)单元测试的主要任务有:程序语法检查、程序逻辑检查、模块接口测试、局部数据结构测试、路径测试、边界条件测试、错误处理测试、代码书写规范检查。
21. C++Test 实验报告22. 静态测试的方法?23. 集成测试,也叫组装测试或联合测试。
在单元测试的基础上,将所有模块按照设计要求(如根据结构图)集成为子系统或系统,进行集成测试24. 集成测试基本可以概括为以下两种:1)非渐增式测试模式(一次性集成):先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒模式。
2)渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。
3)非渐增式测试模式优缺点:工作量较小;发现模块间接口错误较晚;发现错误较难诊断,可以并行测试。
4)渐增式测试模式优缺点:要编写的软件较多,工作量较大;发现模块间接口错误较早;测试执行更彻底;需要较多的机器时间。
25. 驱动程序和桩程序1)驱动程序/驱动模块(driver),用以模拟被测模块的上级模块。
驱动模块在集成测试中接受测试数据,把相关的数据传送给被测模块,启动被测模块。
2)桩程序/桩模块(stub),也有人称为存根程序,用以模拟被测模块工作过程中所调用的模块。
桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验被测模块与其下级模块的接口。
26. 自顶向下法自顶向下法,从主控模块(主程序)开始,沿着软件的控制层次向下移动,逐渐把各个模块结合起来。
组装过程可以采用深度优先策略和宽度优先策略优点:1)不需要测试驱动程序;2)能够在测试阶段的早期实现并验证系统的主要功能;3)能在早期发现上层模块中的接口错误。
缺点:1)需要桩程序,要使桩模块能够模拟实际子模块的功能十分困难;2)同时涉及复杂算法,真正输入/输出的模块一般在底层,他们是最容易出问题的模块,到测试和集成的后期才遇到这些模块,一旦发现问题导致过多的回归测试。
27. 自底向上法自底向上法,测试从原子模块(软件结构最底层的模块)开始集成以进行测试1)优点:不需要桩程序;同时由于涉及到复杂算法和真正输入/输出的模块最先得到集成和测试,可以把最容易出问题的部分在早期解决;自底向上增值的方式可以实施多个模块的并行测试,提高测试效率。
2)缺点:“程序一直未能作为一个实体存在,直到最后一个模块加上去后才形成一个实体”。
也就是说,在自底向上集成和测试的过程中,对主要的控制直到最后才接触到。
28. 大棒集成方法1)采用大棒集成方法,先是对每一个子模块进行测试(单元测试阶段),然后将所有模块一次性的全部集成起来进行集成测试。
2)因为所有的模块一次集成的,所以很难确定出错的真正位置、所在的模块、错误的原因。
只适合在规模较小的应用系统中使用。
29. 三明治集成方法1)三明治集成方法自两头向中间集成。
2)采用三明治方法的优点是:它将自顶向下和自底向上的集成方法有机地结合起来,不需要写桩程序因为在测试初自底向上集成已经验证了底层模块的正确性。
采用这种方法的主要缺点是:在真正集成之前每一个独立的模块没有完全测试过。
30. 集成测试过程主要参与角色:1)项目软件经理(开发负责人):负责审批测试计划;评审测试用例。
2)测试人员:负责完成测试用例设计、集成测试环境搭建、执行集成测试、记录测试、撰写测试报告。
系统测试包括:功能测试、压力测试、容量测试、性能测试、安全性测试、健壮性(容错)测试、GUI测试、安装测试、故障转移与故障恢复测试、备份测试、兼容性测试、回归测试、易用性测试、文档测试、在线帮助测试、数据转换测试等。
32. 功能测试1)功能测试,是在系统集成过程中和系统集成之后所进行的系统功能测试,不仅要考虑模块之间的相互作用,而且要考虑系统的应用环境,其衡量标准是实现产品规格说明书上所要求的功能。
2)根据产品规格说明书,检验系统是否满足各方面功能的使用要求33. 回归测试?非功能性测试34. 性能测试1)性能测试的目的:为了验证系统是否达到用户提出的性能指标,同时发现系统中存在的性能瓶颈,起到优化系统的目的。
2)主要的性能指标:服务器的各项指标(CPU、内存占用率等)、后台数据库的各项指标、网络流量、响应时间35. 压力测试1)压力测试是在一种需要反常数据、频率或资源的方式下,执行可重复的负载测试,以检查程序对异常情况的抵抗能力,找出性能瓶颈。
本质上说,测试者是想破坏程序。
2)压力测试是对异常情况的检测,异常情况主要指的是峰值、大量数据的处理能力、长时间运行等情况。
压力测试总是迫使系统在异常的资源配置下运行。
36. 容量测试1)容量测试的目的是通过测试预先分析出反映软件系统应用特征的某项特征极限值,系统在其极限值状态下还能保持主要功能正常运行。
容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。
2)容量测试完成的标准可以定义为:所计划的测试已全部执行,而且达到或超过指定的系统限制时没有出现任何软件故障。
压力测试、容量测试和性能测试的测试目的虽然有所不同,但其手段和方法在一定程度上比较相似,通常会使用特定的测试工具,来模拟超常的数据量、负载等,监测系统的各项性能指标,如CPU和内存的使用情况、响应时间、数据传输量等。