《最新《软件工程与软件测试技术》期末复习大纲.doc》由会员分享,可在线阅读,更多相关《最新《软件工程与软件测试技术》期末复习大纲.doc(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品资料软件工程与软件测试技术期末复习大纲.软件工程与软件测试技术课程复习大纲与练习题课程名称软件工程与软件测试技术教材信息名称软件测试理论与实践教程出版社人民邮电出版社作者张向宏主编版次2009.06备注:1)复习材料包括:复习大纲、教材、授课幻灯片、习题课幻灯片、在线练习题。2)如学员使用其他版本教材,请参考相关知识点第一章 软件工程和软件测试概述 基本概念:软件、软件危机、软件工程、软件生命周期、软件过程模型 重点的知识点: 软件工程方法学的要素 软件生命周期都包括哪些阶段,每个阶段的任务 主要的软件过程模型有哪些,每个软件过程模型的特点、优点、缺点、适用场合 需了解的知识点 软件测试的
2、起源 软件测试工程师应具备的素质第二章 软件测试基础 基本概念: 软件测试,软件缺陷,软件质量保证,单元测试,集成测试,系统测试,确认测试,验收测试,黑盒测试,白盒测试,灰盒测试,开发方测试(alpha测试),用户测试(Beta测试),第三方测试,V模型,W模型,H模型,X模型,前置测试模型 重点的知识点: 软件测试的目的 软件测试的原则 软件测试的类型 软件测试模型 软件质量保证的工作内容 需了解的知识点 软件质量保证的工作过程 软件质量保证的目标 软件质量保证与软件测试的区别第三章 白盒测试技术 基本概念: 白盒测试,静态测试,动态测试,桌面检查,代码审查,走查,静态结构分析,基本路径测试
3、法,LCSAJ 重点的知识点 逻辑覆盖法(掌握各种逻辑覆盖的定义和条件) 基本路径测试法 最小测试用例数的计算 白盒测试的综合测试策略 ESTCA覆盖准则 LCSAJ覆盖准则 需了解的知识点 词法分析与语法分析 静态程序分析 程序插桩技术 静态质量度量法第四章 黑盒测试技术 基本概念 黑盒测试,有效等价类、无效等价类,等价类划分法、边界值分析法、场景法、因果图法、正交实验法、判定表法,错误推测法、随机测试、功能分解法等 重点的知识点 功能测试用例设计方法(等价类划分法、边界值分析法、场景法、因果图法、正交实验法、判定表法,错误推测法、随机测试、功能分解法等) 测试方法综合使用策略 需了解的知识
4、点 黑盒测试用例的编写和组织 QTP自动测试工具。第五章 性能测试 基本概念 软件性能,软件性能测试,响应时间,并发用户数,系统吞吐量,资源利用率,负载测试,压力测试,大数据量测试,疲劳强度测试,失效恢复测试,执行效率测试,资源占用测试,网络效率测试,稳定性测试,并发测试 重点的知识点 性能测试的类型 性能测试的策略(客户端、网络层、服务器层) 性能测试的实施流程 需要了解的知识点 主要的性能测试工具第六章 案例分析 重点 通过案例分析掌握功能测试用例设计方法的实际应用 通过案例分析掌握白盒测试用例设计(静态测试、覆盖率测试)的实际应用 通过案例分析掌握性能测试的实际应用第七章 软件测试标准
5、基本概念 软件质量,软件度量 重点的知识点 McCall软件质量模型 Boehm质量模型 ISO9126质量模型 国内外软件测试标准第八章 测试前沿技术 基本概念 敏捷测试、测试驱动开发 重点的知识点 敏捷方法的4个基本特征 敏捷测试用例设计 TDD的基本过程 需要了解的知识点 敏捷自动化的原则 TDD的原则期末综合练习题客观部分:(单项选择、多项选择, 答案参考100道在线练习题)题目内容答案软件测试的目的是尽可能多的找出软件的缺陷。是Beta 测试是验收测试的一种。是验收测试是由最终用户来实施的。否项目立项前测试人员不需要提交任何工件。否按照测试实施组织划分,可将软件测试分为开发方测试、用
6、户测试和第三方测试。是黑盒测试又称功能测试或逻辑驱动测试。 否总是首先设计白盒测试用例否可以发布具有配置缺陷的软件产品。否所有软件必须进行某种程度的兼容性测试。是 软件测试中,应该尽量穷尽所有的数据,以便保证测试的质量. 否一、单项选择题1. 为了提高测试的效率,应该 DA随机地选取测试数据 B取一切可能的输入数据作为测试数据 C在完成编码以后制定软件的测试计划 D选择发现错误可能性大的数据作为测试数据 2. 使用白盒测试方法时,确定测试数据应根据(A) 和指定的覆盖标准。 A程序的内部逻辑 B程序的复杂结构 C使用说明书 D程序的功能 3. 软件测试的目的是 BA证明程序中没有错误 B. 发
7、现程序中的错误 C. 测量程序的动态特性 D. 检查程序中的语法错误 4. 软件内部外部质量模型中,可移植性不包括(C) 子特性。 A. 适应性 B. 共存性 C. 兼容性 D. 易替换性 5. 下列关于软件测试的叙述中,正确的是 。 A. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。B. 测试是为了验证该软件已正确地实现了用户的要求。 C. 发现错误多的程序模块,残留在模块中的错误也多。D. 黑盒测试方法中最有效的是因果图法。 6. 软件测试的对象包括 。 A. 目标程序和相关文档 B. 源程序、目标程序、数据及相关文档 C. 目标程序、操作系统和平台软件 D. 源程序和目标程序 7.
8、 下述说法错误的是 。A. 单元测试又称为模块测试,是针对软件测试的最小单位程序模块进行正确性检验的测试工作; B. 集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、递增的测试; C. 集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统; D. 系统测试是在真实或模拟系统运行环境下,检查完整的程序系统能否和相关硬件、外设、网络、系统软件和支持平台等正确配置与连接,并满足用户需求。 8. 验收测试的定义是 。 CA. 由用户按照用户手册对软件进行测试以决定是否接受; B. 由某个测试机构代表用户按照需求说明书和用户手册对软件进行测试
9、以决定是否接受; C. 按照软件任务书或合同,供需双方约定的验收依据进行测试,决定是否接受 D. 由开发方和用户按照用户手册执行软件验收 9. 软件调试的目的是 。 AA. 找出错误所在并改正之 B. 排除存在错误的可能性 C. 对错误性质进行分类 D. 统计出错的次数 10. 软件质量的定义是:D 。A. 软件的功能性、可靠性、易用性、效率、可维护性、可移植性 B. 满足规定用户需求的能力 C. 最大限度达到用户满意 D. 软件特性的总和,以及满足规定和潜在用户需求的能力 11. 关于第三方测试的描述,正确的观点是 。BA. 既不是开发人员,也不是用户所进行的测试就是第三方测试 B. 由在技
10、术、管理和财务上与开发方和用户方相对独立的组织进行的测试 C. 第三方测试是在开发方与用户方的测试基础上所进行的验证测试 D. 第三方测试又称为测试 12. 在软件生命周期的不同阶段,需要实施不同类型的测试工作,单元测试是对程序设计进行验证,其中 不是单元测试的主要内容。 A. 模块接口测试 B. 有效性测试 C. 路径测试 D. 边界测试 13. 从下列关于软件测试的叙述中,选出5条正确的叙述,正确的答案是(1) 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。 (2) 尽量用公共过程或子程序去代替重复的代码段。 (3) 测试是为了验证该软件已正确地实现了用户的要求。 (4) 对于连锁型分
11、支结构,若有n个判定语句,则有2n条路径。(5) 尽量采用复合的条件测试,以避免嵌套的分支结构。 (6) GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。 (7) 发现错误多的程序模块,残留在模块中的错误也多。 (8) 黑盒测试方法中最有效的是因果图法。 (9) 在做程序的单元测试时,桩(存根)模块比驱动模块容易编写。(10) 程序效率的提高主要应通过选择高效的算法来实现。A13459 B246710 C456710 D12389 14. 在McCall软件质量度量模型中,属于面向软件产品适应的是_ A可用性 B可维护性 C适应性 D可互操作性 15.
12、以下_属于白盒技术设计测试用例的方法 A逻辑覆盖 B等价类划分 C边界值分析 D因果图 16. 以下属于软件维护阶段文档的是_A软件需求说明 B操作手册 C软件问题报告 D测试分析报告 17. 对于软件的测试,下列描述正确的是_。 A测试就是在软件公司内部展开的测试,由公司专业的测试人员执行的测试 B测试就是在软件公司内部展开的测试,由公司的非专业测试人员执行的测试 C测试就是在软件公司外部展开的测试,由专业的测试人员执行的测试 D测试就是在软件公司外部展开的测试,可以由非专业的测试人员执行的测试 18. 用边界值分析法,假定1X 10 )THEN C = 0 IF( A - 30 ) 10
13、AND ( B - 30 )payload)i;switch (c) case SLIP_END: sio_send(SLIP_ESC, netif-state); sio_send(SLIP_ESC_END, netif-state); break; case SLIP_ESC: sio_send(SLIP_ESC, netif-state); sio_send(SLIP_ESC_ESC, netif-state); break; defult: sio_send(c, netif-state); break; A4 B3C2 D 137. 广义的软件测试包括_ 。 A单元测试、集成测试、确
14、认测试和系统测试 B确认、验证和测试 C需求评审、设计评审、单元测试和综合测试 D开发方测试、用户测试和第三方测试 38. 软件内部/外部质量模型中,以下_ 不是功能性包括的子特性。 A适合性 B准确性 C稳定性 D互操作性 二、多项选择题39. 可行性研究的方面包括 _ABC_A. 经济可行性 B.技术可行性 C.法律可行性 D. 抉择 E. 软件的规模 40. 以下测试方法是白盒测试方法的是 _A. 判定覆盖和边界值分析法 B. 等价划分和错误推测法 C. 路径覆盖和判定/条件覆盖法 D. 条件组合覆盖和语句覆盖法 E. 条件覆盖和错误推测法 41. 以下属于黑盒测试方法的有_ABCDE_
15、 A等价类划分 B. 边界值分析 C. 错误推测 D. 因果图 E. 决策表 42. GB/T17544中,测试文档的种类包括 _ACD_测试计划 测试描述 测试报告 测试用例 测试评价 43. 下列关于alpha 测试的描述中正确的是_AD_Aalpha 测试需要用户代表参加 Balpha 测试不需要用户代表参加 Calpha 测试是系统测试的一种 Dalpha 测试是验收测试的一种 44. 软件开发模型有 ()、原型模型、() 、()。 ABDA 瀑布模型 B增量模型 C W模型 D 螺旋模型 45. 下列属于安装测试范围的是_ A 安装正确性和完整性检查 B 安装过程中的访问控制 C 产
16、品文件完整性的检查 D 软件名称与版本的正确性 46. 下列输入测试执行阶段的输入的是_ A 软件测试计划 C 测试数据 B 测试用例 D 测试环境描述 47. 下列属于软件缺陷问题的是_ A 点击某链接返回HTTP错误 B 新增某条信息记录后没有提示保存成功 C 登录系统时输入错误密码,提示用户名不正确D 上传文件时提示服务器空间已满,无法上传 48. 下列软件测试工具中哪些适用于自动化功能测试 AMercury QuickTest Professional B. Mercury WinRunner C. Compuware Application Vantage D. Borland Si
17、lkTest E. Compuware Test Partner 49. 下列哪些属于软件测试阶段的交付成果物 ABCA 测试计划 B 测试用例 C 测试报告D 用户手册 E 安装部署手册 50. 以下哪些过程能够提高软件质量? BDA. 可行性分析 C. 测试 E. 概要设计 B. 需求评审 D. 代码走查 主观部分:三、名词解释(均来自习题课课件中列出的名词解释)第一章:软件、软件危机、软件工程、软件生命周期、软件过程模型;.1 软件:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。2 软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列
18、严重问题。这些问题绝不仅仅是不能正常运行的软件才具有,实际上,几乎所有软件都不同程度地存在这些问题。3 软件工程: 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; 研究中提到的途径。4 软件生命周期:软件生命周期是从软件的产生到报废的生命周期,生命周期中有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级、废弃等阶段。第二章:软件测试,软件质量保证,单元测试,集成测试,系统测试,确认测试,验收测试,黑盒测试,白盒测试,灰盒测试,开发方测试(alpha测试),用户测试(Beta测试),第三方测试,V模型,W模型,H模型,X模型
19、,前置测试模型;1 软件测试:软件质量保证的关键元素,代表了规约、设计和编码的最终检查。从标准论角度,软件测试是 “验证(Verification)”和“确认(Validation)”活动构成的整体。验证是通过提供客观证据检验规定的要求是否得到满足,也就是说对输入与输出进行比较。确认是在验证好的基础上,预期的应用要求是否得到满足,也就是说,在确认时应考虑应用的条件范围要远远大于输入时确定的范围。2 软件质量保证(Software Quality Assurance, SQA)是为了提供信用,证明项目将会达到有关质量标准,而在质量体系中进行有计划、有组织的活动。3 单元测试又称模块测试,是针对软
20、件设计的最小单位 程序模块,进行正确性检验的测试工作。4 集成测试又称组装测试、联合测试、子系统测试或部件测试,是在单元测试的基础上,将所有模块按照设计要求组装成子系统或系统进行的测试活动。5 系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。6 验收测试是系统开发生命周期中的一个阶段,它是一项判断产品是否能够满足合同或用户既定需求的测试7 开发方测试通常也叫“验证测试”或“Alpha测试”,是在软件开发环境下,由开发者检测与证实软件的实现是否满
21、足软件设计说明或软件需求说明的要求。8 用户测试又称“Beta测试”,是在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。9 第三方测试是介于软件开发方和用户方之间的测试组织的测试,也称为独立测试,是由在技术、管理和财务上与开发方和用户方相对独立的组织进行的软件测试。10.白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。11.黑盒测试也称功能测试或数据驱动测试。它主要是检测每个功能是否能正常使用。在测试过程中,将程序看做一个不能
22、打开的黑盒子,在完全不考虑程序内部结构的情况下,主要检查程序的功能是否按照软件需求规格说明书的规定正常使用,程序能否正确的接收所输入的数据,并产生正确的输出信息。12.灰盒测试,是介于白盒测试与黑盒测试之间的测试,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。第三章:静态测试,动态测试,桌面检查,代码审查,走查,静态结构分析,基本路径测试法,LCSAJ; 软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试 而软件的动态测试是通过输入一组预先按照一定的测试
23、准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。 桌面检查是代码检查方式的一种,由程序员自己检查自己编写的程序。程序员在程序通过编译之后,进行单元测试设计之前,对源程序代码进行分析、检验,并补充相关的文档,目的是发现程序中的错误。 代码审查是由若干程序员和测试员组成一个审查小组,通过阅读、讨论和争议,对程序进行静态分析的过程。 走查与代码审查基本相同,其过程分为两步。第一步也把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会。开会的程序与代码审查不同,不是简单地读程序和对照错误检查表进行检查,而是让与会者“充当”计算机,即首先由测试组成员为被测程序准备一批有代表性的测试用
24、例,提交给走查小组。第四章:等价类划分法、边界值分析法、场景法、因果图法、正交实验法、判定表法,错误推测法、随机测试、功能分解法1 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其他值的测试。2 有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。3 无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。第五章:软件性能测试,响应时间,并发用户数,系统吞吐量,资源利用率,负载测试,压力测试,大数据量测试,疲劳强度测试,失效恢复测试1 响应时间(Response Ti
25、me), 指系统接受用户请求进行处理,然后将处理结果返回给用户所花费的时间,即“对请求做出响应所需要的时间”。2 并发用户(Concurrency Users)数,指在同一时段,有多少用户会同时访问被测系统。3 系统的吞吐量(Throughout),指的是单位时间内系统处理的客户端请求的数量。它反映了系统的承载能力或处理交易能力。4 资源利用率(System Resource Utilization),这个概念涉及的范围很广。a) 狭义上主要指服务器操作系统的资源利用率、网络资源利用率、中间件软件的资源利用率和数据库关系系统的资源利用率。b) 广义上可以指软件系统所需的硬件资源和软件资源的总利
26、用率5 负载测试主要是通过逐步增加系统的负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。6 压力测试主要是通过逐步增加系统的负载,测试系统性能的变化,并最终确定系统在什么负载条件下系统性能处于失败状态。7 大数据量测试指对系统进行大量数据处理能力的测试,用于评估系统处理大量数据时的系统性能情况。8 疲劳强度测试针对系统而言仍是一种负载,但强调的是对系统长时间运行情况的考查,其目的是为了通过综合分析交易执行指标和资源监控指标来测试系统长时间无故障稳定运行的能力。9 失效恢复测试主要是针对冗余备份和负载均衡的系统设计,用来检验和评估如果系统的局部发生了故
27、障,用户是否还能继续正常的使用系统;以及在发生局部故障的情况下,系统会在用户的使用上造成多大程度的影响。其目的是评估系统的健壮性和可恢复性。第七章:软件质量,软件度量 软件质量的定义1)ANSI/IEEE Std 729-1983定义软件质量为:“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。2)M.J.Fisher将软件质量定义为:“所有描述计算机软件优秀程度的特性的组合。”3)GB/T6583 ISO 8402(1994)定义软件质量为:“反映实体满足明确和隐含需要的能力和特性总和” 软件度量是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的
28、在于对此加以理解、预测、评估、控制和改善。第八章:敏捷测试、测试驱动开发1.敏捷测试是指在采用敏捷技术的项目中开展的测试.同时,敏捷测试也意味着测试遵循敏捷的基本原则,接纳敏捷的核心价值观(交流,简单,反馈,勇气)敏捷测试要求“交付可用产品”而非单纯的“发现缺陷”2、测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,即简化了代码,又保证了软件的质量四、问答题(参考习题课课件中列出的问题)1 请说明软件工程方法学都包含哪些要素?简要说明目前使用最广泛的两种软件工程方法学答:软件工程方法学包含3个要素:方法、工具和过程。其中方法是完成软件开发的各项任务的技术方法,回答“怎样
29、做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。与传统方法相反,面向对象方法把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结合起
30、来的方法。2 软件生命周期都包括哪些阶段,简述每个阶段的任务答:软件生命周期包括问题的定义,可行性分析,需求分析,概要设计,详细设计,编码,测试,维护8个阶段。问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”可行性研究阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”需求分析阶段的任务是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。概要设计阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”3 简述瀑布模型的特点、优点、缺点、适用场合答:瀑布模型是按照软件生命周期的阶段进行的,每个阶段都必须完成规定的文档,
31、并在阶段结束前都要对所完成的文档进行评审;各个阶段间具有顺序性和依赖性。瀑布模型的优点:可强迫开发人员采用规范的方法(例如,结构化技术);严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 瀑布模型的缺点:1)在项目开始的时候,用户常常难以清楚地给出所有需求;用户与开发人员对需求理解存在差异。2)很少软件项目按照顺序模型进行,不能很好地支持迭代。3)只有到了整个项目的后半段时间,客户才能看到软件的模样。一个没有及时发现的错误,可能导致灾难。 瀑布模型适用场合:1)当有一个稳定的产品定义和很容易被理解的技术解决方案时,可以采用纯瀑布模型。2)当你对一
32、个定义得很好的版本进行维护或将一个产品移植到一个新的平台上,可以采用瀑布模型。3)在质量需求高于成本需求和进度需求的时候,可以采用瀑布模型。4 简述快速原型模型的特点、优点、缺点、适用场合所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。 快速原型模型主要优点:(1) 原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。(2) 开发人员通过建立原型系统已经学到了许多东西,因此在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后
33、续阶段需要改正前面阶段所犯错误的可能性。 缺点:1)用户有时误解了原型的角色,例如他们可能误解原型应该和真实系统一样可靠。2)缺少项目标准,进化原型方法有点像编码修正。3)缺少控制,由于用户可能不断提出新要求,因而原型迭代的周期很难控制。4)额外的花费:研究结果表明构造一个原型可能需要10%额外花费。5)原型法要求开发者与用户密切接触,有时这是不可能的。例如外包软件。 适用场合:1)适用于用户驱动的系统,即需求模糊或随时间变化的系统;2)已有产品或产品的原型,只需客户化的工程项目;3)简单而熟悉的行业或领域;4)有快速原型开发工具;5)进行产品移植或升级5 简述增量模型的特点、优点、缺点、适用
34、场合增量模型以增量的形式分阶段发布产品。第一个增量往往是核心的产品。也就是,实现了基本的需求,但很多补充的特征,使用和/或评估的结果是下一个增量的开发计划。该计划包括对核心产品的修改,使其能够更好的满足客户的需要,并发布一些新增的特征和功能。这个过程在每个增量发布后不断重复,直到产生最终的完善产品。增量过程模型,本质上是迭代的,强调每一个增量均发布一个可操作产品 增量模型的优点:融合了线性顺序模型的基本成分和原型实现的迭代特征;能较快地产生可操作的系统;在每一步递增中,均发布一个新的增量,把用户/开发者的经验结合到不断求精的产品中;每个增量的开发没有必要使用相同的过程;可改善测试效果和降低软件
35、开发总成本。 增量模型的缺点:1)增量应该相对较小,每个增量应该包含一定的系统功能。所以,很难把用户的需求映射到适当规模的增量上。2)大多数系统需要一组在系统许多部分都会用到的基本服务。但由于增量实现前,需求不能被详细定义,所以,明确所有增量都会用到的基本服务就比较困难。3)若软件系统的组装和拆卸性不强,或开发人员全局把握能力不高,或客户不同意分阶段提交产品等,均不合适。 适用场合:1)客户接受分阶段交付。2)对应用领域不熟悉,难以一步到位。3)用户可参与到整个软件开发过程中。4)有较好的类库和构件库。6 简述螺旋模型的特点、优点、缺点、适用场合螺旋将瀑布模型和快速原型模型结合起来,强调了其他
36、模型所忽视的风险分析,把软件开发过程组成为一个逐步细化的定义周期(螺旋周期)序列,每经历一个周期,系统就得到进一步的细化和完善;本质上,具有上述特征的螺旋是一直运转的,直到软件退役。有时这个过程处于睡眠状态,但任何时候出现了改变,过程都会从合适的入口点开始;紧密围绕开发中的风险问题,用风险分析推动软件设计向深一层扩展、求精;强调持续地判断、确定和修改用户任务目标,并按成本、效益来分析候选的软件产品性质对任务目标的贡献;可结合采用多种软件开发方法,但究竟结合哪一种方法仍由风险分析来决定。 优点:1)对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;2)
37、减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;3)在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。 缺点:1)比较复杂,需要相当的风险评估技术,且成功依赖于这种技术。2)需要软件开发人员具有丰富的风险评估经验和这方面的专门知识 适用场合:适应于内部的大规模软件开发7 简述测试的目的、原则与对象软件测试的目的:1)是以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。2)是确认软件的质量,软件做了所期望的事情(Do the right thing),另
38、一方面是确认软件以正确的方式来做了这个事件(Do it right)3)是为开发过程提供反馈信息,协助开发过程的改进:软件测试不仅是在测试软件产品本身,还包括软件开发的过程。软件测试的第三个目的是保证整个软件开发过程的高质量。4)软件质量评估:软件测试是以评价一个程序或系统属性为目标的一种活动,是对软件质量的度量与评估,以验证软件的质量满足用户的需求,为用户选择与接收软件提供有力的依据。 软件测试的原则1. 所有的软件测试都应追溯到用户需求2. 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。3. 完全测试是不可能的,测试需要终止4. 软件测试无法显示软件潜在的缺陷5. 充分注意软
39、件测试中的群集现象6. 程序员应避免检查自己的程序7. 尽量避免测试的随意性8. 妥善保存一切测试过程文档。 软件测试的对象:需求规格说明、概要设计规格说明、详细设计规格说明、源程序 。8 什么是V模型?简述V模型在软件测试过程中的作用,以及在V模型中各个测试阶段和开发过程的对应关系V模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系 。 从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系 。 左边依次下降的是开发过程各阶段,与此相对应的是右边依次上升的部分,即各测试过程的各个阶段。V模型的局限性在于没有明确地说明早期的测试,无法体现“尽早地和不断地进行软件测试”的原则9 什么是W模型?简述其特点W模型由Evolutif公司提出,相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。W模型强调:测试伴随着整个软件开发周期,而且测