医治白癜风的专家 https://m-mip.39.net/disease/mipso_5950145.html黑色字体为原本答案,蓝色字体修改补充了复习题组「56-60/56-60/1/1」一、名词解释56.集成测试
根据软件设计规定的软件体系结构,把已测试过的模块组装起来,在组装时,检查程序结构组装的正确性。
集成测试是在单元测试的基础上,把软件单元按照软件概要设计规格说明的规格要求,组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求。
集成测试包括BigBang、自顶向下、自底向上、核心系统集成、高频集成。
57.团队软件过程团队软件过程是为开发软件产品的开发团队提供指导,TSP的早期实践侧重于帮助开发团队改善其质量和生产率,以使其更好的满足成本及进度的目标。加上PSP帮助高绩效的工程师在一个团队中工作,来开发有质量保证的软件产品,生产安全的软件产品,改进组织中的过程管理。
58.项目计划评审技术计划评审技术就是工程项目当作一种系统,用网络图或者表格或者矩阵来表示各项具体工作的先后顺序和相互关系,以时间为中心,找出从开工到完工所需要时间的最长路线,并围绕关键路线对对系统进行统筹规划,合理安排以及对各项工作的完成进度进行严密的控制,以达到用最少的时间和资源消耗来完成系统预定目标的一种计划与控制方法。
PERT是利用网络分析制定计划以及对计划予以评价的技术。
它能协调整个计划的各道工序,合理安排人力、物力、时间、资金,加速计划的完成。在现代计划的编制和分析手段上,PERT被广泛的使用,是现代化管理的重要手段和方法。
59.内聚内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。
内聚是指一个模块的内部功能相互关联的紧密程度,执行某个特定的任务或相关任务组的模块是具有高内聚性的,而没有核心功能只是将大量功能凑到一起的模块具有低内聚性。
60.主动对象主动对象内部包含一个线程,可以自动完成动作或改变状态。主动对象是内部拥有自己的控制线程的对象。
二、简答题56.为什么要进行阶段评审?评审项目的状态,并确定项目是否应该进入下一阶段。
项目的资源状况(人力、资金)
项目的风险状况
项目的技术进展
项目的规模
里程碑状态(进度)
软件的质量保证工作不能等到编码阶段结束之后再加以实施,其理由为:第一,大部分错误始于编码之前;第二,错误的发现与修改时间越晚,需要付出的代价就越高。因此,本原则意味着,在软件开发的每个阶段应该进行严格的评审,以便尽早发现软件开发过程中的错误。
57.软件维护分几类,每类的内容是什么?软件维护在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
维护的分类
(1)改正性维护:在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。
()适应性维护:在使用过程中,外部环境(新的硬、软件配置)数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。
(3)完善性维护:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为满求了足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
(4)预防性维护:采用先进的软件采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。
58.什么叫模块化,为什么要划分模块?指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程
第一,把一个系统分解成各个不同的子模块,不同的开发者专注于对其中某一模块的开发,一方面实现了劳动的分工,另一方面也提高了自由软件开发的效率。
第二,对于开发者而言,基于模块化的自由软件开发具有更大的吸引力,其在参与开发过程中可以得到更高的期望收益。
第三,在非模块化的软件开发过程中,存在着严重的“搭便车”现象,当一个开发者选择参与开发,其余的开发者就会选择“搭便车”,最终会导致软件的供给不足;在基于模块化的开发过程中,所有的开发者都更倾向于参与开发不同的模块,从而实现整个系统的开发。
模块化就是有组织地把一个大文件拆成独立并互相依赖的多个小模块。模块内部有许多私有属性,只向外暴露一部分公开的接口(如可以修改私有属性的方法等),模块化是一种处理复杂系统分解为更好的可管理模块的方式。
为什么要划分模块:
1.高内聚低耦合,有利于团队作战,当项目很复杂的时候,将项目划分为子模块分给不同的人开发,最后再组合在一起,这样可以降低模块与模块之间的依赖关系体现低耦合,模块又有特定功能体现高内聚。
.可重用,方便维护,模块的特点就是有特定功能,当两个项目都需要某种功能的时候,我们定义一个特定的模块来实现该功能,这样只需要在两个项目中都引入这个模块就能够实现该功能,不需要书写重复性的代码;并且当需求变更该功能需要改变的时候,我们直接修改该模块,这样就能够修改所有项目的功能,维护起来很方便。3、通过exports暴露接口。这意味着不需要命名空间了,更不需要全局变量。这是一种彻底的命名冲突解决方案。4、通过require引入依赖。**这可以让依赖内置,开发者只需关心当前模块的依赖,其他事情Sea.js/Require.js都会自动处理好
59.比较在组装测试中,自顶向下与自底向上、深度优先与宽度优先的优缺点。自顶向下
优点:
1较早地验证主要的控制和判断点。
可以首先实现和验证一个完整的软件功能,增强信心;
3减少了测试驱动程序开发和维护的费用4可以和开发设计工作一起并行执行集成测试,能够灵活的适应目标环境;
5容易进行故障隔离和错误定位。
缺点:桩模块的开发和维护费用大。
自底向上
优点
1减少了桩模块的工作量;
容易对错误进行定位。
缺点
1直到最后一个模块加进去之后才能看到整个系统的框架;
只有到测试过程的后期才能发现时序问题和资源竞争问题;
3驱动模块的设计工作量大;
4不能被及时发现高层模块设计上的错误。
自底向上的组装测试方案是工程实践中最常用的测试方法。相关技术也较为成熟。它的优点很明显:管理方便、测试人员能较好地锁定软件故障所在位置。但它对于某些开发模式不适用,如使用XP开发方法,它会要求测试人员在全部软件单元实现之前完成核心软件部件的组装测试。尽管如此,自底向上的组装测试方法仍不失为一个可供参考的组装测试方案。
自顶向下集成的优点在于能尽早地对程序的主要控制和决策机制进行检验,因此较早地发现错误。缺点是在测试较高层模块时,低层处理采用桩模块替代,不能反映真实情况,重要数据不能及时回送到上层模块,因此测试并不充分。
自底向上集成方法不用桩模块,测试用例的设计亦相对简单,但缺点是程序最后一个模块加入时才具有整体形象。它与自顶向综合测试方法优缺点正好相反。
60.简述RUP(RationalUnifiedProcess)的基本内容RUP(RationalUnifiedProcess,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。
内容:迭代式开发、管理需求、体系结构、可视化建模、验证软件质量、控制软件变更
统一软件开发过程)是一个面向对象且基于网络的程序开发方法论。
RUP是风险驱动的、基于UseCase技术的、以架构为中心的、迭代的、可配置的软件开发流程。我们可以针对RUP所规定出的流程,进行客户化定制,定制出适合自己祖师的使用的软件流程。RUP是一个流程定义平台,是一个流程框架。
内容:迭代式开发、管理需求、体系结构、可视化建模、验证软件质量、控制软件变更
三、论述题1.论述软件测试与软件质量的关系软件质量是指软件产品的特性可以满足用户的功能、性能需求的能力。软件过程是人们通常所说的软件生命周期中的活动,一般包括软件需求分析、软件设计、软件编码、软件测试、交付、安装和软件维护。随着软件过程的开始,软件质量也逐渐建立起来。软件过程的优劣决定了软件质量的高低,好的过程是高效高质量的前提。人员和过程是决定软件质量的关键因素。高质量的人员和好的过程应该得到好的产品。
软件系统的开发包括一系列生产活动,其中由人带来的错误因素非常多,错误可能出现在程序的最初需求分析阶段,设计目标可能是错误的或描述不完整,也可能在后期的设计和开发阶段,因为人员之间的交流不够,交流上有误解或者根本不进行交流,所以尽管人们在开发软件的过程中使用了许多保证软件质量的方法和技术,单开发出的软件中还会隐藏许多错误和缺陷。可见,只有通过严格的软件测试,才能很好的提高软件质量,而软件质量并不是依靠软件测试来保证的,软件的质量要靠不断的提高技术水平和改进软件开发过程来保证,软件测试只是一种有效的提高软件质量的技术手段,而不是软件质量的安全网。
软件测试能够找出软件缺陷,确保软件产品满足需求。但是测试不是质量保证,二者并不等同。测试可以查找错误并进行修改,从而提高软件产品的质量。软件测试避免错误以求高质量,并且还有其他方面的措施以保证质量问题,如软件质量保证。
正规的软件测试系统主要包括:制定测试计划、测试设计、实施测试、建立和更新测试文档。而软件质量保证的工作主要为:制定软件质量要求、组织正式度量、软件测试管理、对软件的变更进行控制、对软件质量进行度量、对软件质量情况及时记录和报告。软件质量保证的职能是向管理层提供正确的可行信息,从而促进和辅助设计流程的改进。软件质量保证的职能还包括监督测试流程,这样测试工作就可以被客观地审查和评估,同时也有助于测试流程的改进。二者的不同之处在于软件质量保证工作侧重对软件开发流程中的各个过程进行管理与控制,杜绝软件缺陷的产生。而测试则是对已产生的软件缺陷进行修复。
四、应用题1.某网站开发新的邮件系统供用户使用,现需要做系统测试。请以“输入正确的用户邮件地址和错误的密码”为例,完成如下的测试用例中(1)、()、(3)和(4)部分。测试用例:
l测试目标:(1)(5分);
l测试环境:WindowsXP操作系统和浏览器IE8;
l输入数据:()(5分);
l步骤:(3)(15分);
l期望结果(4)(5分)。
l测试目标:(检验客户输入正确邮箱地址和错误密码时候会出现的现象)(5分);
l测试环境:WindowsXP操作系统和浏览器IE8;
l输入数据:(用户名,密码)(5分);
l步骤:(①输入正确用户邮件地址②输入错误密码③提交观察结果)(15分);
l期望结果(系统反馈输入密码错误提示,不会进入邮箱)(5分)。
黎小美May