软件测试课后习题

更新时间:2024-05-13 17:20:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Kwok小组制作

第一章软件测试概述

1.名词解释? 软件缺陷:

即计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵。缺陷会导致软件产品在某种程度上不能满足用户的需要。 软件缺陷的准确定义,通常有以下5条描述: (1)软件未实现产品说明书要求的功能。

(2)软件出现了产品说明书指明不会出现的错误。 (3)软件超出实现了产品说明书提到的功能。

(4)软件实现了产品说明书虽未明确指出但应该实现的目标。 (5)软件难以理解,不易使用,运行缓慢或者终端用户认为不好

软件测试:

软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。通常对软件测试的定义有如下描述: 软件测试是为了发现错误而执行程序的过程。

静态测试:

静态测试就是通过对被测程序的静态审查,发现代码中潜在的错误。

动态测试:

动态测试的对象必须是能够由计算机真正运行的被测试的程序

黑盒测试:

黑盒测试是一种从用户观点出发的测试,又称为功能测试,数据驱动测试和基于规格说明的测试。

白盒测试:

白盒测试基于产品的内部结构来进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分利用。

单元测试:

单元测试是针对每个单元的测试,是软件测试的最小单位。 :

集成测试:

集成测试是对已测试过的模块进行组装,进行集成测试的目的主要在于检验与软件设计相关的程序结构问题。 确认测试:

是检验所开发的软件能否满足所有功能和性能需求的最后手段,通常采用黑盒测试方法。 系统测试:

系统测试的主要任务是检测被测软件与系统的其他部分的协调性。 验收测试:

验收测试是软件产品质量的最后一关。这一环节,测试主要从用户的角度着手,其参与者

Page 1 of 14 1

Kwok小组制作

主要是用户和少量的程序开发人员。 ??

2.简述软件测试发展的历史及软件测试的现状?

软件测试的现状:

在我国,软件测试可能算不上一个真正的产业,软件开发企业对软件测试认识淡薄,软件测试人员与软件开发人员往往比例失调,而在发达国家和地区软件测试已经成了一个产业。

我们在软件测试实现方面并不比国外差,国际上优秀的测试工具,我们基本都有,这些工具所体现的思想我们也有深刻的理解,很多大型系统在国内都得到了很好的测试。

3.谈谈你对软件测试的重要性的理解?

4.简述软件测试的目标及标准? 软件测试的目的包括以下三点:

(1) 测试是程序的执行过程,目的在于发现错误,不能证明程序的正确性,仅限于处理有限种的情况。

(2) 检查系统是否满足需求,这也是测试的期望目标。

(3) 一个好的测试用例在于发现还未曾发现的错误;成功的测试是发现了错误的测试。 软件测试标准如下:

(1)软件测试的目标在于揭示错误。测试人员要始终站在用户的角度去看问题,系统中最严重的错误的是那些导致程序无法满足用户需求的错误。 (2)软件测试必须基于“质量第一”的思想去开展各项工作。

(3)事先定义好产品的质量标准。只有建立了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。

(4)软件项目一启动,软件测试也就开始,而不是等程序写完,才开始进行测试。

(5)测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多的发现错误,提高程序的可靠性。 (6)对发现错误较多的程序段,应进行更深入的测试。

5.简述软件测试的原则?

5.1应当把尽早地和不断地进行软件测试作为软件开发者的座右铭。坚持在软件开发的各个阶段的技术评审,这样才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期,杜绝某些隐患,提高软件质量。

5.2测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。如果对测试输入数据没有给出预期的程序输出结果,那么就缺少了检验实测结果的基准,就有可能把一个似是而非的错误结果当成正确结果。

5.3程序员应避免检查自己的程序。如果由别人来测试程序员编写的程序,可能会更客观,更有效,并更容易取得成功

5.4在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。

5.5充分注意测试中的群集现象。测试时不要以为找到了几个错误问题就已解决,不需

Page 2 of 14

2

Kwok小组制作

继续测试了。应当对错误群集的程序段进行重点测试,以提高测试投资的效益。

5.6严格执行测试计划,排除测试的随意性。对于测试计划,要明确规定,不要随意解释。

5.7应当对每一个测试结果做全面检查。这是一条最明显的原则,但常常被忽视。必须对预期的输出结果明确定义,对实测的结果仔细分析检查,抓住关键,暴露错误。 5.8妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。

6.简述软件测试与软件开发的关系? 6.1.测试与软件开发各阶段的关系 软件开发过程是一个自顶向下,逐步细化的过程,首先在软件计划阶段定义了软件的作用域,然后进行软件需求分析,建立软件的数据域、功能和性能需求、约束和一些有效性准则。接着进入软件开发,首先是软件设计,然后再把设计用某种程序设计语言转换成程序代码。而测试过程则是依相反的顺序安排的自底向上,逐步集成的过程,低一级测试为上一级测试准备条件

6.2.测试与开发的并行性

在软件的需求得到确认并通过评审后,概要设计工作和测试计划制定设计工作就要并行进行。如果系统模块已经建立,对各个模块的详细设计、编码、单元测试等工作又可并行。待每个模块完成后,可以进行集成测试、系统测试。 6.3.测试与开发模型

软件测试不仅仅是执行测试,而是一个包含很多复杂活动的过程,并且这些过程应该贯穿于整个软件开发过程。

第二章软件测试过程与策略

1.对软件的经济性进行总结分析。

2.阐述软件测试的充分性准则。

3.如何描述测试流程整体框架。

4.简述单元测试的目标。

单元测试的主要目标是确保各单元模块被正确地编码。单元测试除了保证测试代码的功能性,还需要保证代码在结构上具有可靠性和健全性,并且能够在所有条件下正确响应。进行全面的单元测试,可以减少应用级别所需的工作量,并且彻底减少系统产生错误的可能性。如果手动执行,单元测试可能需要大量的工作,自动化测试会提高测试效率。

5.解释驱动模块简述软件测试的复杂性。

Page 3 of 14

3

Kwok小组制作

6.和桩模块概念。

助模块可分为两种: (1) 驱动模块(driver):相当于被测模块的主程序。它接收测试数据,把这些数据传送给被测模块,最后输出实测结果。 (2) 桩模块(stub):用以代替被测模块调用的子模块。桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。

7.简述集成测试的层次划分。

? 模块内集成测试; ? 子系统内集成测试; ? 子系统间集成测试。

对于面向对象的应用系统来说,可以把集成测试分为两个阶段: ? 类内集成测试; ? 类间集成测试。

8.归纳确认测试阶段的工作。

9.简述系统测试的流程。

10.归纳验收测试常用的策略。 常用策略有三种,它们分别是: (1) 正式验收

(2) 非正式验收或 Alpha 测试 (3) Beta 测试

11.简述验收测试的流程。

Page 4 of 14 4

Kwok小组制作

12.简述静态测试和动态测试的区别。 13.比较阐述黑盒测试和白盒测试的优缺点。 黑盒测试 白盒测试 ④ 可构成测试数据使特定程序部分得到测试; ⑤ 有一定充分性度量手段; ⑥ 可获较多工具支持。 优点 ① 适用于各个测试阶段; ② 从产品功能角度进行测试; ③ 容易入手生成测试数据。 缺点 ① 某些代码得不到测试; ④ 不易生成测试数据; ② 如果规则说明有误,无法②无法对未实现规格说明的部分发现; 进行测试;工作量大,通常只用③ 不易进行充分行测试。 于单元测试,有应用局限性。 黑盒测试 白盒测试 性质

Page 5 of 14

一种确认技术,目的是确认“设计一种验证技术,目的是验证“系统的系统是否正确”。 的设计是否正确”。 5

Kwok小组制作

Insure++ .test 黑盒测试工具 工具名 WinRunner Astra Quicktest LoadRunner Robot TeamTest QARun QALoad SilkTest SilkPerformer e-Test e-Load WAS WebLoad OpenSTA C,C++ .Net 公司名 Mercury Interactive Mercury Interactive Mercury Interactive IBM/Rational IBM/Rational Compuware Compuware Segue Software Segue Software Empirix Empirix MS Radview OpenSTA 实时性能监控以及分析优化 代码分析和动态测试 官方站点 http://www.merc-inc.com http://www.merc-inc.com http://www.merc-inc.com http://www-306.ibm.com/software/rational/ http://www-306.ibm.com/software/rational/ http://compuware.com http://compuware.com http://www.segue.com http://www.segue.com http://www.empirix.com http://www.empirix.com http://www.microsoft.com http://www.radview.com http://www.opensta.com 测试管理工具 测试管理工具的代表有Rational公司的TeamManager、 Compuware公司的TrackRecord、Mercury Interactive公司的 TestDirector等软件。 除此之外,还有专用于性能测试的工具包括有:Radview公司的 WebLoad;Microsoft公司的WebStress等工具;针对数据库测试 的TestBytes;对应用性能进行优化的EcoScope等工具。 4. 简述对常用测试自动化工具的认识。 5. 试从网络上免费下载自动化测试工具,并在客户机或服务器上安装和运行。 6. 下载本章所介绍的白盒测试、黑盒测试、负载测试等工具,学习其主要功能及使用方法,尝试进行实例测试。

1. 质量保证部门与测试部门的职责是否一样?归纳它们的共同点和不同点。 2. ISO 9000标准与软件测试的关系是什么?

Page 11 of 14

11

第7章 软件测试管理

Kwok小组制作

3. 简述CMM的具体等级划分。

(1)等级1(初始级)。该等级的软件开发过程是随意的,甚至是混乱的。项目能否成功依靠个人的能力和运气,具有偶然性。软件开发过程没有定义,没有通用计划,难以监视和控制。开发的时间和费用无法预知。测试过程和其他过程混杂在一起。 (2)等级2(可重复级)。该等级成熟度主要集中在项目级。建立基本的项目管理过程去跟踪成本、进度、功能和质量。可以借鉴以前成功项目的经验,应用到新项目中。软件开发具有一定的组织性,使用了基本软件测试行为,例如测试计划和测试用例。 (3)等级3(已定义级)。该等级具备了组织化思想,而不仅仅是针对具体项目。软件开发中的管理活动和工程活动被文档化和标准化,并且形成整个软件组织的标准软件过程。所有项目均采用在标准软件过程中进行。 (4)等级4(已管理级)。在该成熟度等级中,组织过程处于在统计的控制下。软件过程和产品质量有具体的度量标准,软件过程和产品质量得到了定量理解和控制。 (5)等级5(优化级)。通过来自过程、新技术和新思想等各方面的定量信息反馈,着能够进行持续地过程改进,以期达到质量更佳的等级。

1. 简述面向对象的特点与其测试的概念。

2. 面向对象的软件测试与传统的软件测试有什么区别?

传统的软件测试策略是从“小型测试”开始,逐步走向“大型测试”。即从单元测试开始,然后逐步进入集成测试,最后是有效性和系统测试。在传统应用中,单元测试集中在最小的可编译程序单位——子程序(如:模块、子例程、进程),一旦这些单元都已经被独立的测试过之后,就被集成在程序结构中,然后进行一系列的回归测试以发现模块的接口错误和由于新单元的加入而产生的副作用,最后,把系统作为一个整体进行测试以发现需求规格说明中的错误。 面向对象程序的结构不再是传统的功能模块结构,作为一个整体,原有集成测试所要求的逐步将开发的模块搭建在一起进行测试的方法已成为不可能。而且,面向对象软件抛弃了传统的开发模式,对每个开发阶段都有不同于以往的要求和结果,已经不可能用功能细化的观点来检测面向对象分析和设计的结果。因此,传统的测试模型对面向对象软件已经不再适用。

3. 通常情况下,类测试驱动程序是由测试人员还是程序员进行开发的? 4. 如何对抽象类进行测试?

(1)一般情况下,利用Java的内类机制,在抽象类的测试驱动程序内引入内类,让内类实现对被测试抽象类的继承,然后把它作为引用体,这样对内类的测试就等价于对被测试抽象类的测试。

如果抽象类被具体类继承,那么,在创建该具体类的测试驱动程序时要继承抽象类的测试驱动程序,在以后的回归测试中,只要执行最低层的测试类,就可以对其父测

第八章 面向对象的软件测试

Page 12 of 14 12

Kwok小组制作

试类重新执行一次测试,同时将测试结果分别返回。

5. 如何对接口类进行测试? 应该遵循以下原则:

? 如果接口没有被任何类实现就无需进行测试。

? 如果已被别的类实现,那么就针对实现该接口的类进行测试。

6. 如何测试重载和覆盖?

要对类实例方法的所有重载形式分别进行测试。

子类的测试驱动程序在继承父类测试驱动程序的同时,要对覆盖了父类的同名方法进行测试,而且应该重新对父类的类实例方法的所有重载形式执行一次测试。

第九章 web网上测试

1.简述Web网站的测试内容。

? 功能测试; ? 性能测试; ? 安全性测试;

? 可用性/易用性测试; ? 配置和兼容性测试; ? 数据库测试; ? 代码合法性测试; ? 完成测试。

2.功能测试包括哪些方面?

功能测试主要包括以下几个方面的内容:

? 内容测试 ? 链接测试 ? 表单测试 ? Cookies测试 ? 设计语言测试

3.负载/压力测试的作用。

负载测试的作用是在软件产品投向市场以前,通过执行可重复的负载测试,预先分析软件可以承受的并发用户的数量极限和性能极限,以便更好地优化软件。

压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩

溃,在什么情况下会崩溃。

4.概括安全性测试中的登录测试内容。

5.简述兼容性测试。

测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不

Page 13 of 14 13

Kwok小组制作

同厂商、不同版本的浏览器对某些构件和设置的适应性。

第十章 软件测试职业

1.简述软件测试资源的获取途径。

要获得快捷可靠的软件测试资源,一般从正规的培训会议,相关的网站及从事软件测试的专业组织这三种途径中获取。

2.简述软件测试工程师应具备的素质。 .具有较强的沟通能力 .掌握比较全面的技术 做优秀的外交家 具有挑战精神 具有准确的判断力 做故障排除家

要有充分的自信心和耐心

3.软件测试员的目标是什么?

软件测试员的目标是找出软件缺陷,尽可能早一些,并确保得以修复 4.谈谈你对今后从事软件职业的打算。

Page 14 of 14 14

本文来源:https://www.bwwdw.com/article/r9c7.html

Top