《软件工程与软件测试技术》课程复习大纲与练习题
b) 广义上可以指软件系统所需的硬件资源和软件资源的总利用率
5.负载测试主要是通过逐步增加系统的负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
6.压力测试主要是通过逐步增加系统的负载,测试系统性能的变化,并最终确定系统在什么负载条件下系统性能处于失败状态。
7.大数据量测试指对系统进行大量数据处理能力的测试,用于评估系统处理大量数据时的系统性能情况。
8.疲劳强度测试针对系统而言仍是一种负载,但强调的是对系统长时间运行情况的考查,其目的是为了通过综合分析交易执行指标和资源监控指标来测试系统长时间无故障稳定运行的能力。
9.失效恢复测试主要是针对冗余备份和负载均衡的系统设计,用来检验和评估如果系统的局部发生了故障,用户是否还能继续正常的使用系统;以及在发生局部故障的情况下,系统会在用户的使用上造成多大程度的影响。其目的是评估系统的健壮性和可恢复性。
第七章:软件质量,软件度量 ? 软件质量的定义 1)ANSI/IEEE Std 729-1983定义软件质量为:―与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。
2)M.J.Fisher将软件质量定义为:―所有描述计算机软件优秀程度的特性的组合。‖
3)GB/T6583 – ISO 8402(1994)定义软件质量为:“反映实体满足明确和隐含需要的能力和特性总和”
? 软件度量是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。
第八章:敏捷测试、测试驱动开发
1.敏捷测试是指在采用敏捷技术的项目中开展的测试.同时,敏捷测试也意味着测试遵循敏捷的基本原则,接纳敏捷的核心价值观(交流,简单,反馈,勇气)敏捷测试要求―交付可用产品‖而非单纯的―发现缺陷‖
2、测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,即简化了代码,又保证了软件的质量
四、问答题(参考习题课课件中列出的问题)
1. 请说明软件工程方法学都包含哪些要素?简要说明目前使用最广泛的两种软件工程方法学
答:软件工程方法学包含3个要素:方法、工具和过程。其中方法是完成软件开发的各项任务的技术方法,回答―怎样做‖的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。 传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。
与传统方法相反,面向对象方法把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。
2. 软件生命周期都包括哪些阶段,简述每个阶段的任务
答:软件生命周期包括问题的定义,可行性分析,需求分析,概要设计,详细设计,编码,测试,维护8个阶段。
问题定义阶段必须回答的关键问题是:―要解决的问题是什么?‖
11 / 27
《软件工程与软件测试技术》课程复习大纲与练习题
可行性研究阶段要回答的关键问题是:―对于上一个阶段所确定的问题有行得通的解决办法吗?‖
需求分析阶段的任务是准确地确定―为了解决这个问题,目标系统必须做什么‖,主要是确定目标系统必须具备哪些功能。
概要设计阶段必须回答的关键问题是:―概括地说,应该怎样实现目标系统?‖
3. 简述瀑布模型的特点、优点、缺点、适用场合
答:瀑布模型是按照软件生命周期的阶段进行的,每个阶段都必须完成规定的文档,并在阶段结束前都要对所完成的文档进行评审;各个阶段间具有顺序性和依赖性。
瀑布模型的优点:可强迫开发人员采用规范的方法(例如,结构化技术);严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
? 瀑布模型的缺点:1)在项目开始的时候,用户常常难以清楚地给出所有需求;用户与开发人员对需
求理解存在差异。2)很少软件项目按照顺序模型进行,不能很好地支持迭代。3)只有到了整个项目的后半段时间,客户才能看到软件的模样。一个没有及时发现的错误,可能导致灾难。
? 瀑布模型适用场合:1)当有一个稳定的产品定义和很容易被理解的技术解决方案时,可以采用纯瀑
布模型。2)当你对一个定义得很好的版本进行维护或将一个产品移植到一个新的平台上,可以采用瀑布模型。3)在质量需求高于成本需求和进度需求的时候,可以采用瀑布模型。
4. 简述快速原型模型的特点、优点、缺点、适用场合
所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。
? 快速原型模型主要优点:(1) 原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档
正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。(2) 开发人员通过建立原型系统已经学到了许多东西,因此在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。
? 缺点:1)用户有时误解了原型的角色,例如他们可能误解原型应该和真实系统一样可靠。2)缺少项
目标准,进化原型方法有点像编码修正。3)缺少控制,由于用户可能不断提出新要求,因而原型迭代的周期很难控制。4)额外的花费:研究结果表明构造一个原型可能需要10%额外花费。5)原型法要求开发者与用户密切接触,有时这是不可能的。例如外包软件。
? 适用场合:1)适用于用户驱动的系统,即需求模糊或随时间变化的系统;2)已有产品或产品的原型,
只需客户化的工程项目;3)简单而熟悉的行业或领域;4)有快速原型开发工具;5)进行产品移植或升级
5. 简述增量模型的特点、优点、缺点、适用场合
增量模型以增量的形式分阶段发布产品。第一个增量往往是核心的产品。也就是,实现了基本的需求,但很多补充的特征,使用和/或评估的结果是下一个增量的开发计划。该计划包括对核心产品的修改,使其能够更好的满足客户的需要,并发布一些新增的特征和功能。这个过程在每个增量发布后不断重复,直到产生最终的完善产品。增量过程模型,本质上是迭代的,强调每一个增量均发布一个可操作产品
? 增量模型的优点:融合了线性顺序模型的基本成分和原型实现的迭代特征;能较快地产生可操作的系
统;在每一步递增中,均发布一个新的增量,把用户/开发者的经验结合到不断求精的产品中;每个增量的开发没有必要使用相同的过程;可改善测试效果和降低软件开发总成本。
? 增量模型的缺点:1)增量应该相对较小,每个增量应该包含一定的系统功能。所以,很难把用户的
需求映射到适当规模的增量上。2)大多数系统需要一组在系统许多部分都会用到的基本服务。但由于增量实现前,需求不能被详细定义,所以,明确所有增量都会用到的基本服务就比较困难。3)若软件系统的组装和拆卸性不强,或开发人员全局把握能力不高,或客户不同意分阶段提交产品等,均不合适。
? 适用场合:1)客户接受分阶段交付。2)对应用领域不熟悉,难以一步到位。3)用户可参与到整个
软件开发过程中。4)有较好的类库和构件库。
6. 简述螺旋模型的特点、优点、缺点、适用场合
12 / 27
《软件工程与软件测试技术》课程复习大纲与练习题
螺旋将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,把软件开发过程组成为一个逐步细化的定义周期(螺旋周期)序列,每经历一个周期,系统就得到进一步的细化和完善;本质上,具有上述特征的螺旋是一直运转的,直到软件退役。有时这个过程处于睡眠状态,但任何时候出现了改变,过程都会从合适的入口点开始;紧密围绕开发中的风险问题,用风险分析推动软件设计向深一层扩展、求精;强调持续地判断、确定和修改用户任务目标,并按成本、效益来分析候选的软件产品性质对任务目标的贡献;可结合采用多种软件开发方法,但究竟结合哪一种方法仍由风险分析来决定。
? 优点:1)对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发
的一个重要目标;2)减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;3)在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。 ? 缺点:1)比较复杂,需要相当的风险评估技术,且成功依赖于这种技术。2)需要软件开发人员具有
丰富的风险评估经验和这方面的专门知识 ? 适用场合:适应于内部的大规模软件开发
7. 简述测试的目的、原则与对象 软件测试的目的:
1)是以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。 2)是确认软件的质量,软件做了所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right)
3)是为开发过程提供反馈信息,协助开发过程的改进:软件测试不仅是在测试软件产品本身,还包括软件开发的过程。软件测试的第三个目的是保证整个软件开发过程的高质量。
4)软件质量评估:软件测试是以评价一个程序或系统属性为目标的一种活动,是对软件质量的度量与评估,以验证软件的质量满足用户的需求,为用户选择与接收软件提供有力的依据。
? 软件测试的原则
1. 所有的软件测试都应追溯到用户需求
2. 应当把―尽早地和不断地进行软件测试‖作为软件开发者的座右铭。 3. 完全测试是不可能的,测试需要终止 4. 软件测试无法显示软件潜在的缺陷 5. 充分注意软件测试中的群集现象 6. 程序员应避免检查自己的程序 7. 尽量避免测试的随意性
8. 妥善保存一切测试过程文档。
? 软件测试的对象:需求规格说明、概要设计规格说明、详细设计规格说明、源程序 。
8. 什么是V模型?简述V模型在软件测试过程中的作用,以及在V模型中各个测试阶段和开发过程的对应
关系
V模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系 。
从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系 。
左边依次下降的是开发过程各阶段,与此相对应的是右边依次上升的部分,即各测试过程的各个阶段。 V模型的局限性在于没有明确地说明早期的测试,无法体现―尽早地和不断地进行软件测试‖的原则
9. 什么是W模型?简述其特点 W模型由Evolutif公司提出,相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。W模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。
W模型有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应
13 / 27
《软件工程与软件测试技术》课程复习大纲与练习题
对措施,这将显著减少总体测试时间,加快项目进度。
但W模型也存在局限性。在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代的开发模型。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。
10. 什么是X模型?简述其特点
X模型也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序。
X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终成为可执行的程序,然后再对这些可执行程序进行测试。己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生。 X模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。但这样可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高。
11. 简述软件测试的分类
按照软件不同的开发阶段,可以将软件测试分为:单元测试、集成测试、系统测试、确认测试、验收测试; 按照测试实施组成划分,测试包括:开发方测试、用户测试、第三方测试; 按照测试技术划分可分为:白盒测试、黑盒测试、灰盒测试;
按照测试内容划分,可以分为:功能性测试、可靠性测试、易用性测试、效率测试(性能测试)、可移植性测试、文档测试
12. 请叙述软件质量保证的工作内容
软件质量保证的主要职责是检查开发和管理活动是否与已定的过程策略、标准和流程一致,检查工作产品是否遵循模板规定的内容和格式等。 具体的工作内容主要包括
(1)与SQA计划直接相关的工作 (2)参与项目的阶段性评审和审计
(3)对项目日程活动与规程的符合性进行检查 (4)对配置管理工作的检查和审计 (5)跟踪问题的解决情况
(6)收集新方法,提供过程改进的依据。
13. 在软件开发与运行阶段一般需要完成单元测试、集成测试、确认测试、系统测试和验收测试,这些
对软件质量保证起着非常关键的作用。 (1)简述集成测试与系统测试的关系
答:集成测试的主要依据是概要设计说明书,系统测试的主要依据是需求设计说明书;集成测试是系统模块的测试,系统测试是对整个系统的测试,包括相关的软硬件平台、网络以及相关外设的测试。
(2)公司A承担了业务B的办公自动化系统的建设工作。2004年10月初,项目正处于开发阶段,预计2005年5月能够完成全部开发工作,但是合同规定2004年10月底进行系统验收。因此2004年10月初,公司A依据合同规定向业主B和监理方提出在2004年10月底进行验收测试的请求,并提出了详细的测试计划和测试方案。在该方案中指出测试小组由公司A的测试工程师、外聘测试专家、外聘行业专家以及监理方的代表组成。公司A的做法是否正确?请给出理由。
答:验收测试要在系统测试通过之后,交付使用之前进行,而不是仅仅根据合同规定进行。2004年10月初并不具备验收测试的条件
14. 什么是逻辑覆盖测试?逻辑覆盖都有哪些类型?
? 逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖。它是一系列测试过程的总称,这组测试过程
14 / 27
《软件工程与软件测试技术》课程复习大纲与练习题
逐渐进行越来越完整的通路测试。
? 从覆盖源程序语句的详尽程度分析,逻辑覆盖标准包括:
– 语句覆盖 – 判定覆盖 – 条件覆盖
– 条件判定组合覆盖 – 多条件覆盖
– 修正条件判定覆盖
15. 简述白盒测试的综合测试策略
在白盒测试中,可以使用各种测试方法的综合策略如下: (1)在测试中,应尽量先使用工具进行静态结构分析。
(2)测试中可采取先静态后动态的组合方式:先进行静态结构分析、代码检查,再进行覆盖率测试。
(3)利用静态分析的结果作为导引,通过代码检查和动态测试的方式对静态发现结果进行进一步的确认,使测试工作更为有效。
(4)覆盖率测试是白盒测试的重点,一般可使用基本路径测试法达到语句覆盖标准;对于软件的重点模块,应使用多种覆盖率标准衡量代码的覆盖率。
(5)在不同的测试阶段,测试的侧重点不同:在单元测试阶段,以代码检查、逻辑覆盖为主;在集成测试阶段,需要增加静态结构分析等;在系统测试阶段,应根据黑盒测试的结果,采取相应的白盒测试。
16. 某商场在―五一‖期间,顾客购物时收费有4种情况:普通顾客一次购物累计少于100元,按A类标
准收费(不打折),一次购物累计多于或等于100元,按B类标准收费(打9折);会员顾客一次购物累计少于1000元,按C类标准收费(打8折),一次购物累计等于或多于1000元,按D类标准收费(打7折)。测试对象是按以上要求计算顾客收费模块,按照路径覆盖法设计测试用例。 被测模块的程序流程图如图所示
② 按照路径覆盖法设计测试用例如下:
是会员,累计消费900元, 覆盖路径127 是会员,累计消费2000元, 覆盖路径128 不是会员,累计消费80元, 覆盖路径134 不是会员,累计消费300元, 覆盖路径135
17. 对以下代码,假设输入的取值范围是1900 < year < 2050,请使用基本路径测试法为变量year设计测试
15 / 27
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库《软件工程与软件测试技术》期末复习大纲 - 图文(3)在线全文阅读。
相关推荐: