单选题
软件测试是保证软件可靠性的主要手段之一。测试阶段的根本任务是 (28) ,设计测试用例的基本目标是 (29) 。测试大型软件系统时通常由模块测试、集成测试、系统测试、 (30) 和并行运行等步骤所组成。系统测试通常采 用黑盒法,常用的黑盒测试法有边值分析、等价类划分、错误推测和 (31) 。系统测试的工作应该由 (32) 来承担。
单选题
A.证明经测试后的程序是正确的 B.确认编码阶段的结束
C.发现并改正软件中的错误 D.利用计算机调试程序和改进程序
单选题
A.尽可能用测试用例覆盖可能的路径
B.选用少量的高效测试用例尽可能多地发现软件中的问题
C.采用各种有效测试策略,使所得的程序准确无误
D.评估与选用不同测试方法,尽可能完成测试进度计划
单选题
A.接口测试 B.组装测试 C.性能测试 D.验收测试
单选题
A.路径覆盖 B.因果图 C.判定树 D.PERT图
单选题
A.开发该系统的部门以外的人员 B.该系统的系统分析师
C.该系统的设计人员 D.该系统的编程者
【正确答案】
A
【答案解析】[解析] 软件测试的根本任务就是要发现并改正软件中的错误。测试的过程是:设计测试用数据(称之为测试用例);执行程序;分析结果,找出错误并改正。这个过程可能会有反复。测试用例的设计是测试的重要环节,设计测试用例的目标是选用少量高效的数据(测试用例)尽可能多地发现软件中的问题。
软件测试的工作量约占软件开发总工作量的40%以上,其目的是尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。
测试的关键是测试用例的设计,设计方法可分成两类:白盒测试和黑盒测试。
(1)白盒测试 把程序看成是装在一只透明的盒子里,测试者完全了解程序的结构和处理过程。白盒测试根据程序的内部逻辑来设计测试用例,检查程序中的逻辑通路是否都按预定的要求正确地工作,白盒测试的具体方法主要是逻辑覆盖,由于覆盖的详尽程度不同,逻辑覆盖由弱到强又分为语句覆盖、判定覆盖、条件覆盖、条件组合覆盖和路径覆盖等。
(2)黑盒测试 把程序看成是装在一只不透明的盒子里,测试者完全不了解(或不考虑)程序的结构和处理过程。黑盒测试根据规格说明书规定的功能未设计测试用例,检查程序的功能是否符合规格说明的要求。黑盒测试方法具体有等价类划分、边界值分析、错误推测和因果图等。
软件测试的主要步骤有单元测试(模块测试)、集成测试(组装测试)、系统测试和确认测试(验收测试)。
(1)单元测试 通常在编码阶段进行,主要用来发现编码和详细设计中产生的错误,一般采用白盒测试。
(2)集成测试 集成测试是对由各模块组装而成的模块进行测试,主要检查模块间的接口和通信。集成测试主要用来发现设计阶段产生的错误,通常采用黑盒测试。
(3)系统测试 系统测试的任务是把软件放在实际的硬件和网络环境中进行测试,主要测试软件的非功能需求和质量属性是否得到满足。系统测试通常采用黑盒测试。
(4)确认测试 确认测试的任务是检查软件的功能、性能和其他特征是否与用户的需求一致,它是以需求规格说明书作为依据的测试,通常采用黑盒测试。
在确认测试时,如果一个软件是为某个客户定制的,那么由客户实施验收测试,以便确认该软件是他所需要的。但是,对于那些作为产品被众多客户使用的软件,就不可能为每个客户做验收测试。大多数软件生产商使用一种a测试和β测试的过程。
(1)a测试 在开发者的现场由客户来实施的,被测试的软件是在开发者从用户的角度进行常规设置的环境下运行的。
(2)β测试 在一个或多个客户的现场由该软件的最终用户实施的。与a测试不同的是,进行β测试时开发者通常是不在场的。
从使用的工具来看,软件测试的方法又可分为静态测试和动态测试。
(1)静态测试 指人工评审软件文档或程序,借以发现其中的错误,由于评审的文档或程序不必运行,所以称为静态测试。人工评审的手续虽然比较简单,但事实证明这是一个相当有效的检验手段。由于评审人员的能力有限,静态测试显然不可能发现所有的错误。
(2)动态测试 指通常的上机测试,这种方法是使程序有控制地运行,并从多种角度观察程序的行为,以发现其中的错误。
在软件维护阶段,当修改软件后,除了对修改部分的软件进行常规的测试外,还应对软件的其他部分进行回归测试,回归测试是指全部或部分地重复已做过的测试,它主要检查软件的修改是否在软件的未修改部分引入了新的错误。
模块测试、集成测试一般以软件系统开发人员为主来测试。系统测试和验收测试一般不能以开发人员为主来测试。这是因为系统测试是整体性的测试,而测试的根本任务是做“否定性”工作,为减少或避免开发人员的主观影响,使系统测试具有更强的客观性,一般应由开发该系统的部门以外的人员来承担。