24大连交通大学813软件工程考研习题

1.等价分类法相关概念。

(1)等价分类法的基本思想是什么?

根据程序的输入特性,将程序的定义域划分为有限个等价区段 ---"等价类",从等价类中选择出的用例具有"代表性",即测试某个等价类的代表值就等价于对这一类其它值的测试。如果某个等价类的一个输入数据(代表值)测试中查出了错误,也即是该等价类中的其它值也会查出同样的错误。

(2)等价类划分方法中,划分好等价类后设计测试用例的步骤是什么?

  1. 为每个等价类编号;2) 使一个测试用例尽可能覆盖多个有效等价类;

3)特别要注意:一个测试用例只能覆盖一个无效等价类;

2.一般,驱动模块比桩模块容易设计,为什么?

因为驱动模块是模拟主程序或者调用模块的功能,处于被测试模块的上层,所以驱动模块只需要模拟向被测模块传递数据,接收、打印从被测模块返回的数据的功能,较容易实现。而桩模块用于模拟那些由被测模块所调用的下属模块的功能,由于下属模块往往不只一个,也不只一层,由于模块接口的复杂性,桩模块很难模拟各下层模块之间的调用关系,同时为了模拟下层模块的不同功能,需要编写多个桩模块,而这些桩模块所模拟的功能是否正确,也很难进行验证。因此,驱动模块的设计显然比桩模块容易。

3.渐增式与非渐增式各有何优、缺点?为什么通常采用渐增式?

非渐增式是将所有的模块一次连接起来,简单、易行、节省机时,但测试过程难于排错,发现错误也很难定位,测试效率低;渐增式是将模块一个一个的连入系统,每连入一个模块,都要对新系统进行测试。这种组装测试相比于非渐增式容易查出错误,并及时定位,有利于查出模块接口部分的错误,因此测试效率高。故通常采用渐增式测试方法。

4.单元测试与集成测试相关概念。 大连交通大学:伍一久一柒柒叭二叭

(1)请简述单元测试的主要内容?

模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

(2)在单元测试中,所谓单元是如何划分的?

单元测试的对象通常是软件设计的最小逻辑单元,单元的划分在面向过程的结构化程序中一般是函数或子过程,在面向对象的程序中可以是类或类的成员函数。

(3)如果开发时间紧迫,是否可以跳过单元测试而直接进行集成测试?

不可以。因为没有经过单元测试的模块会遗留大量的缺陷到集成测试阶段,而在集成测试阶段对这些缺陷定位困难,导致后续工作展开困难,修复缺陷成本成指数级增长。

(4)集成测试也叫组装测试又叫联合测试,为何要进行集成测试?

单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。

****5.如果没有软件规格说明或需求文档,可以进行动态黑盒测试吗?为什么?****答:不行。因为黑盒测试是基于软件规格说明的测试。

6. 软件测试阶段如何划分?

答:软件测试的阶段划分为:规格说明书审查;系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验收测试。

7.分析比较面向对象的软件测试与传统的软件测试的异同。

解:传统的单元测试的对象是软件设计的最小单位------模块。当考虑面向对象软件时,单元的概念发生了变化,此时最小的可测试单位是封装的类或对象,而不再是个体的模块。传统单元测试主要关注模块的算法实现和模块接口间数据的传递,而面向对象的单元测试主要考察封装在一个类中的方法和类的状态行为。

面向对象软件没有层次的控制结构, 因此传统的自顶向下和自底向上集成策略就不再适合,它主要有以下两种集成策略: 基于类间协作关系的横向测试;基于类间继承关系的纵向测试。 系统测试一般不考虑内部结构和中间结果, 因此面向对象软件系统测试与传统的系统测试差别不大。

面向对象软件测试的整体目标和传统软件测试的目标是一致的, 即以最小的工作量发现尽可能多的错误,但是面向对象测试的策略和战术有很大不同。测试的视角扩大到包括复审分析和设计模型,此外,测试的焦点从过程构件(模块)移向了类。

8.怎样防止维护的副作用?

修改代码所产生的副作用一般可以在回归测试过程进行查明和纠正;修改软件所带来的副作用可以通过完善的设计文档的加以限制;修改文档资料所产生的副作用可以在软件系统交付使用之前,对整个软件配置进行复审,将能大大减少。

9.提高软件可维护性的方法有哪些? 大连交通大学:伍一久一柒柒叭二叭

(1)建立明确的软件质量目标与优先级。

(2)使用提高软件质量的技术与工具(如模块化)

(3)进行明确的质量保证审查

(4)选择可维护性好的程序设计语言

(5)改进程序文档

(6)开发时考虑到维护

10.详细设计有哪几种描述结构化程序设计的基本要点是什么 ?

主要有三个:

(1)采用自顶向下、逐步求精的程序设计方法

(2)使用三种基本控制结构构造程序。任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。

(3)主程序员组方法 ?

详细设计的描述方法有图形、表格和语言,其中图形常用结构化程序流程图、盒图和PAD(问题分析图)为描述工具,语言常用过程设计语言(PDL)来作为工具。

相关推荐
雾江流1 天前
DaVinci4.2.3 | 无限次AI图片生成,可以预制多种风格,提示限制清理数据重新进即可
软件工程
郝学胜-神的一滴1 天前
使用Linux系统函数递归遍历指定目录
linux·运维·服务器·开发语言·c++·软件工程
逐步前行1 天前
C语言--数据类型
软件工程
王嘉俊9251 天前
软件工程原则:构建高质量软件的基石
软件工程
rengang661 天前
软件工程新纪元:AI协同编程架构师的修养与使命
人工智能·软件工程·ai编程·ai协同编程架构师
workflower2 天前
软件工程与计算机科学的关系
开发语言·软件工程·团队开发·需求分析·个人开发·结对编程
爱学习的uu2 天前
CURSOR最新使用指南及使用思路
人工智能·笔记·python·软件工程
雾江流2 天前
Olib 2.4.2 | 一款开源电子书下载软件,可以免梯免登录下载ZLibrary上的书籍
软件工程
M17迪Pq:00072 天前
学会“做减法”之--用户体验优化
人工智能·贪心算法·产品运营·动态规划·软件工程
m0_651593912 天前
深入理解软件设计中的协议与规范:从理论到Java实践
java·软件工程·代码规范·设计规范