软件工程知识技能水平测试

通过软件工程课程的学习,学生应掌握软件开发与维护的原则、技术及方法。软件项目的计划、组织及管理。以及如何用工程化的方法开发软件项目,在开发过程中应遵循的流程、准则、标准和规范。

一、软件工程知识技能水平高低的主要体现方面

  • 开发环境的了解、掌握。

这方面包括一些常用开发工具的了解,以及linux系统的了解。

  • 开发语言的掌握程度。

由于每个人偏好的开发语言不同,对这方面的考察应更侧重算法或数据结构的考察。

  • 软件开发的流程

应了解掌握瀑布模型、敏捷开发等软件工程开发的流程。了解软件开发各周期或阶段的目标以及作用。了解软件开发的一些原则技术及方法。

  • UML图

UML能提升团队协作能力,有利于队员间在各个开发环节间确立沟通的标准。有利于共享开发经验和资源。

  • 设计模式

设计是软件开发生命周期中的关键阶段,好的设计能产生好的产品,而不当的设计则会影响最终产品的质量。计模式是拥有多年开发设计经验的人给我们的经验传承,它是作为专家的建议而引入的,它背后的真正威力是其对真实世界的抽象。

  • 软件测试方法

应了解各测试方法及原理,包括黑盒测试、白盒测试、灰盒测试、静态测试及动态测试。

二、软件工程知识技能水平的测评试题

主要针对上述六个方面,每一方面出至少一题。题型包括选择题、判断题、简答题、编程题。


1、linux文件的权限一共10位长度,分成四段,第二段表示的内容是( )。
A、 文件类型
B、 文件所有者的权限 
C、 文件所有者所在组的权限 
D、 其他用户的权限

原创,对开发环境Linux的考察。linux命令众多,有些太常用而过于简单,有些则太专业不一定会接触到。而对于linux环境开发来说,文件权限的重要性不言而喻,但若没有linux基础的人则会摸不到头脑。

答案解析:B

通过ls -l可查看文件权限,共分为四段,每段的意义见下图(参考鸟哥的私房菜):


2、请简述什么是多态,什么是重载?

答案解析:多态:是指子类重新定义父类的虚方法(virtual,abstract)。当子类重新定义了父类的虚方法后,父类根据赋给它的不同的子类,动态调用属于子类的该方法,这样的方法调用在编译期间是无法确定的。重载,是指允许存在多个同名方法,而这些方法的参数不同。重载的实现是:编译器根据方法不同的参数表,对同名方法的名称做修饰。对于编译器而言,这些同名方法就成了不同的方法。它们的调用地址在编译期就绑定了。

原创。这题考查了同学们的基本开发素养,以及软件开发中设计的基本知识点。同时属于以后面试中经常被提及的题目。


3、[2019 408考研真题]

问:(1)给出算法的基本设计思想;
(2)根据设计思想,采用你熟悉的代码来实现。

考研408真题,同学们应该都还记得吧。主要为了考察同学们的算法以及编程能力,链表类型的题比较能考察同学们的代码能力。

答案解析:



4、软件生存周期是从软件开始开发到开发结束的整个时期。( )

答案解析:F

软件生命周期包含3大阶段: 计划阶段、开发阶段、维护阶段。 开发只是其中一个阶段。软件生命周期的基本概念考察,属于一般题。


5、在类图中,“#”表示的可见性是()
A、Public  
B、Protected  
C、Private 
D、Package

答案解析:B。类图中+表示public、-表示private、#表示protected.

对UML的考察,侧重点应放在实际使用上。在实际使用的最多就是类图,类图中考察可见性的细节可以考察同学们对UML的熟悉程度。


6、下图是哪个设计模式的类图( )
A、观察者模式
B、创造者模式
C、策略模式
D、装饰模式

答案解析:A 图片为课程PPT中的图片

考察方向为设计模式的考察。设计模式的考察可难可易。通过选择题的考察属于比较简单。但是通过该方式的考察可以充分考察同学对不同模式的了解程度。


7、黑盒测试与白盒测试的差异是什么

一、测试方式不同
1、黑盒测试:功能测试,是通过测试来检测每个功能是否都能正常使用。
2、白盒测试:称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
二、测试目的不同
1、黑盒测试:把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
2、白盒测试:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。
三、测试原则不同
1、黑盒测试:以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
2、白盒测试:一个模块中的所有独立路径至少被测试一次。所有逻辑值均需测试true和false两种情况。

[百度文库],设计软件测试的知识,软件测试体系中比较重要的是对白盒测试及黑盒测试的原理区分