首页 > 精品范文库 > 6号文库
软件工程师笔试题3(★)
编辑:青灯古佛 识别码:15-589563 6号文库 发布时间: 2023-07-21 02:52:07 来源:网络

第一篇:软件工程师笔试题3

预处理器(Preprocessor)

1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR(60 * 60 * 24 * 365)UL

我在这想看到几件事情:

1).#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)

2).懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。

3).意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L告诉编译器这个常数是的长整型数。

4).如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。

2.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。

#define MIN(AB)((A)6”。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得不到这份工作的边缘。

13.评价下面的代码片断:

unsigned int zero = 0;

unsigned int compzero = 0xFFFF;

/*1's complement of zero */

对于一个int型不是16位的处理器为说,上面的代码是不正确的。应编写如下: unsigned int compzero = ~0;

这一问题真正能揭露出应试者是否懂得处理器字长的重要性。在我的经验里,好的嵌入式程序员非常准确地明白硬件的细节和它的局限,然而PC机程序往往把硬件作为一个无法避免的烦恼。

到了这个阶段,应试者或者完全垂头丧气了或者信心满满志在必得。如果显然应试者不是很好,那么这个测试就在这里结束了。但如果显然应试者做得不错,那么我就扔出下面的追加问题,这些问题是比较难的,我想仅仅非常优秀的应试者能做得不错。提出这些问题,我希望更多看到应试者应付问题的方法,而不是答案。不管如何,你就当是这个娱乐吧… 动态内存分配(Dynamic memory allocation)

14.尽管不像非嵌入式计算机那么常见,嵌入式系统还是有从堆(heap)中动态分配内存的过程的。那么嵌入式系统中,动态分配内存可能发生的问题是什么?

这里,我期望应试者能提到内存碎片,碎片收集的问题,变量的持行时间等等。这个主题已经在ESP杂志中被广泛地讨论过了(主要是 P.J.Plauger 他的解释远远超过我这里能提到的任何解释),所有回过头看一下这些杂志吧!让应试者进入一种虚假的安全感觉后,我拿出这么一个小节目:下面的代码片段的输出是什么,为什么?

char *ptr;

if((ptr =(char *)malloc(0))== NULL)

puts(“Got a null pointer”);

else

puts(“Got a valid pointer”);

这是一个有趣的问题。最近在我的一个同事不经意把0值传给了函数malloc,得到了一个合法的指针之后,我才想到这个问题。这就是上面的代码,该代码的输出是“Got a valid pointer”。我用这个来开始讨论这样的一问题,看看被面试者是否想到库例程这样做是正确。得到正确的答案固然重要,但解决问题的方法和你做决定的基本原理更重要些。

Typedef

15.Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子:

#define dPS struct s *

typedef struct s * tPS;

以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么?

这是一个非常微妙的问题,任何人答对这个问题(正当的原因)是应当被恭喜的。答案是:typedef更好。思考下面的例子:dPS p1p2;

tPS p3p4;

第一个扩展为

struct s * p1 p2;

上面的代码定义p1为一个指向结构的指,p2为一个实际的结构,这也许不是你想要的。第二个例子正确地定义了p3 和p4 两个指针。

16.C语言同意一些令人震惊的结构下面的结构是合法的吗,如果是它做些什么?int a = 5 b = 7 c;

c = a+++b;

这个问题将做为这个测验的一个愉快的结尾。不管你相不相信,上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最处理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成:

c = a++ + b;

因此 这段代码持行后a = 6 b = 7 c = 12。

第二篇:软件测试工程师笔试题

软件测试工程师笔试题一及答案

一、基础理论

1、软件测试的结束标准是什么?

2、一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。

3、什么是缺陷报告?

4、缺陷报告的作用

5、缺陷报告的要点

6、软件测试缺陷报告的“5C”原则

7、缺陷的二八定理

8、软件测试的流程

9、测试计划的目的是什么?测试计划的内容都包括什么?其中哪些是最重要的?

10、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。

11、Alpha 测试与beta 测试的区别

答案:

一、基础理论

1、测试计划中所有规定的测试内容和回归测试都已经运行完成或根据上级主管对测试结果的意见,就可以结束本次测试

2、计划阶段、设计阶段、白盒单元、白盒集成、黑盒单元、黑盒集成、系统测试、回归测试、验收测试

一套完整的测试应该由五个阶段组成:

1)测试计划首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准。以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。

2)测试设计将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响测试结果的有效性)。

3)测试开发建立可重复使用的自动测试过程。

4)测试执行执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理,测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。

5)测试评估结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。

3、缺陷报告是描述软件缺陷现象和重现步骤地集合。软件缺陷报告Software Bug Report(SBR)或软件问题报告Software Problem Report(SPR)

4、缺陷报告是软件测试人员的工作成果之一,体现软件测试的价值

缺陷报告可以把软件存在的缺陷准确的描述出来,便于开发人员修正

缺陷报告可以反映项目/产品当前的质量状态,便于项目整体进度和质量控制

软件测试缺陷报告是软件测试的输出成果之一,可以衡量测试人员的工作能力

5、标题(Title)

简洁、准确、完整、反映缺陷本质、方便查询

前缀 + 标题正文,标题正文采用结果和动作,或者现象和位置的方式表达

步骤(Steps)

可复现、完整、简洁、准确

按数字编号

实际结果(Actual results)

准确、详细描述软件的现象和特征

期望结果(Expected results)

准确、丰富、有理有据

平台(Platforms)

准确

截图(Screenshots)

准确反映缺陷特征

注释(Notes)

关于缺陷的辅助说明

6、内容准确(Correct):

每个组成部分的描述准确,不会引起误解

步骤简洁(Concise):

只包含必不可少的信息,不包括任何多余的内容

内容清晰(Clear):

每个组成部分的描述清晰,易于理解

结构完整(Complete):

包含复现该缺陷的完整步骤和其他本质信息

风格一致(Consistent):

按照一致的格式书写全部缺陷报告

7、在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的缺陷,而系统测试又能找出其余缺陷中的80%,最后的4%的缺陷可能只有在用户大范围、长时间使用后才会暴露出来。

8、制订测试计划、设计测试用例、实施测试、提交缺陷报告、测试总结。

9、测试计划的目的:编写软件测试计划的目的是指导测试组成员进行工作和让测试组以外的项目成员了解测试工作的。

测试计划的内容:测试目的和测试项目简介、测试参考文档和测试提交文档、术语和定义、测试策略、确定测试内容、资源、测试进度、测试员的职责与任务分配、项目通过或失败的标准、暂

停和重新启动测试的标准、风险和问题等。

最重要的:测试策略、确定测试内容、资源、测试进度、测试员的职责与任务分配、项目通过或失败的标准

10、黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性,只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。

白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。

单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。

集成测试:在单元测试的基础上,对单元模块之间的连接和组装w进行测试。

系统测试:在所有都考虑的情况下,对系统进行测试。

验收测试:第三方进行的确认软件满足需求的测试。

第三篇:某公司软件工程师笔试题

软件工程师-笔试试题

说明:不需要全部完成,做你懂的就可以。

Java基础

1.Set、Map、List有什么异同?

2.Abstract class和interface有什么区别?什么是基于接口编程?

3.类C有4个方法m1、m2、m3、m4,其中m1、m2、m3使用synchronized声明,m3还有static声明,m4没有特殊的声明。当一个线程T1进入C的一个实例的m1方法后,另一线程T2能立刻进入另一个实例的m1、m2、m3、m4方法吗?为什么?[高分] 4.String和StringBuffer区别,什么时候应该使用StringBuffer?

5.RuntimeException与一般异常(非RuntimeException的Exception)有何异同?

Web(HTML, DOM, JavaScript, CSS)

6.你平时有注意浏览器的兼容性吗?简述你知道的浏览器兼容性的例子。7.简述iframe的特点、使用模式 8.你用过些什么javascript的框架? 9.你了解什么是SEO吗?

10. 怎样的网页适合做缓存?一个网页怎样才会被缓存?网页缓存为什么重要? 11. 使用Cookie应注意什么问题,什么时候适合用Cookie,什么时候不适合?

JavaEE 12。说出Servlet的生命周期

13。Forward和redirect的区别

14。Jsp中动态include和静态include的区别?

15。不能往Session里面存储太多太大的对象,为什么?

16。Servlet里面,什么情况下会调用doGet()和doPost()?有什么区别

数据库

17。写一段数据库查询的JDBC或hibernate程序(select * from employee where empid=?”)(只要主要的代码,把你认为“不可缺少”的语句写上,但要完整)18。在SQL里面怎样过滤重复的记录?

19。What is a “transaction”?Why are they necessary? 20。Trigger 有什么作用?

21。What are stored procedures?How is it useful? 22。What is the advantage of using PreparedStatement?

XML和WebService 23。Xml文档定义有几种形式?它们之间有何本质区别? 24。What is the difference between SAX parser and DOM parser?

OOAD和UML 25。What is an usecase? 架构与框架

26.说说你对MCV的认识

第四篇:软件测试工程师笔试题及参考答案

厦门银禾数码技术有限公司软件测试工程师笔试题试卷(A)姓名:_________性别:____ 笔试日期200_年__月__日 是否应届/软件测试工作年限_____ 联系电话:_______________ 电子邮箱:________________ 期望待遇:_______________

1、什么是软件测试?2’

2、软件测试与软件质量保证的区别。10’

3、报告软件缺陷时,测试人员要对软件缺陷分类,以简明扼要的方式指出其影响,以及修

改的优先次序。请描述如何划分缺陷与错误严重性和优先级别?10’

4、BUG信息应该包含那些内容。5’

5、测试用例说明应该包含哪些内容?测试用例计划包含哪些目标?10’

6、WEB应用软件测试必须进行哪些类型测试,请列出每种类型的测试要点。15’

7、网络应用测试的主要内容是什么?10’

8、用户文档测试应该注意哪些要点?10’

9、在DBMS中,视图的作用是什么?

写出建立视图的命令格式(如建立信息系学生的视图)10’

10、请列举您认为身为测试人员应具备的能力和技术。8’

参考答案

1、什么是软件测试?2’

【要点】

在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成过程的文档、数据以及程序进行测试。

【详解】

软件测试就是在软件投入运行前对软件需求分析、软件设计规格说明书和软件编码进行查错(包括代码执行活动与人工活动)。也可以说,软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部构造而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误,这是在软件投入前,对软件需求分析、软件设计规格说明书和软件编码的最终复审,是软件质量保障的关键步骤。

1、软件测试与软件质量保证的区别。10’

【要点】

软件测试只是质量保证工作中的一个环节,软件质量保证与软件测试是软件质量工程的两个不同层面的工作;

质量保证:通过预防、检查与改进来保证软件质量,采用全面质量管理和过程改进的原理来开展质量保证工作,主要关注软件质量的检查与测试,主要着眼于软件开发活动的过程、步骤和产物。

软件测试:通过执行软件来,对过程中的产物(开发文档和程序)进行走查,发现问题,报告质量

【详解】

软件测试和软件质量保证是软件质量工程中的两个不同层面的工作。软件测试只是软件质量保证工作中的一个重要环节。

质量保证(QA)的工作是通过预防、检查与改进来保证软件的质量。QA采用的方法重要是按“全面质量管理”和“过程改进”的原来开展质量保证工作。虽然在软件质量保证的活动中也有一些测试活动,但它所以关注的是软件质量的检查和测量。它的主要工作是对软件生命周期的管理,以及检验软件是否满足规定的质量和用户的需求,因此重要是着眼于软件开发活动中的过程,步骤和产物,而不是软件进行剖析,找出问题或者评估。

软件测试虽然与开发过程紧密相关,但它所关心的不是过程的活动,而是对过程的产物,以及开发出的软件进行剖析。测试人员要对过程的产物(开发文档和源代码)进行走读,运行软件。以找到问题和报告质量。测试人员必须假设软件存在潜在的问题,测试中所做的操作就是为了找出更多的问题,而不是为了验证(事实上也不可能)软件的正确性。所以软件测试虽然对提高软件的质量起着关键的作用,但它只是软件质量保证的一个重要环节。

3、请描述如何划分缺陷与错误严重性和优先级别?10’

给软件缺陷与错误划分严重性和优先级的通用原则:

(1)表示软件缺陷所造成饿危害和恶劣程度。

(2)优先级表示修复缺陷的重要程度和次序。

严重性:

(1)、严重:系统崩溃、数据丢失、数据毁坏

(2)、较严重:操作性错误、结果错误、遗漏功能

(3)、一般:小问题、错别字、UI布局、罕见故障

(4)、建议:不影响使用的瑕疵或更好的实现。

优先级:

(1)、最高优先级:立即修复,停止进一步测试。

(2)、次高优先级:在产品发布之前必须修复。

(3)、中等优先级:如果时间允许应该修复。

(4)、最低优先级:可能会修复,但是也可能发布。

4、BUG信息应该包含那些内容。5’

测试软件名称、测试版本号、测试人名称、测试事件、测试软件和硬件配置环境、发现软件错误的类型、错误的严重程度、详细步骤、必要的附图、测试注释。

5、测试用例说明应该包含哪些内容?10’

(1)定义(ANSI/IEEE829):编写用于输入的实际数据和预期结果,并明确指出使用

具体测试用例产生的测试程序的任何限制

(2)包含的内容

 标识符:由测试设计过程说明和测试程序说明引用的唯一标识符

 测试项:描述被测试的详细特性、代码模块等

 输入说明:列举执行测试用例的所有输入内容或者条件

 输出说明:描述进行测试用例预期的结果

 环境要求:执行测试用例的软件、硬件、测试工具及人员等要求

 特殊要求:描述执行测试用例的特殊要求

 用例之间的依赖性:注明与其分用例的依赖关系或受其他用例的影响

测试用例计划包含4个目标即:组织性、重复性、跟踪和测试证实。

6、WEB应用软件测试必须进行以下不同类型的测试,包括:功能测试、性能测试、可用性测试、兼容测试、安全测试等。15’

(1)、功能测试主要是用来测试WEB应用软件是否履行了预期的功能,确保每一个功能与需求说明一致。根据测试对象的不同,可分为:链接测试、表单测试、COOKIES测试、设计语言测试、数据库测试。

(2)、性能测试主要是确保WEB应用系统达到要求的性能,一般用最大的运行时间、吞吐率、相应时间描述。

性能测试又分为:链接速度测试、负载测试和压力测试,负载测试是为了测量WEB系统在某一负载级别上的性能,以保证WEB系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问WEB系统的用户数量,也可以是在线数据处理的数量。

压力测试是指实际破坏一个WEB应用系统时测试系统的反映,压力测试是测试系统的限制和故障恢复能力,也就是测试WEB应用系统会不会崩溃,在什么情况下会崩溃,压力测试的区域包括表单、登录、和其他信息传输页面等。压力测试侧重于确定系统崩溃时的用户负载量。

(3)、可用性测试:导航测试、图形测试、内容测试、整体界面测试。

(4)、兼容性测试:确定WEB应用软件在不同软件、硬件和网络配置下运行情况,它主要

是用来测试在不同浏览器中是否都可以正确地显示WEB应用程序的页面内容,从而保证页面中的某些代码,比如:JavaScript ,ActiveX、CSS等在不同平台配置上都能具有正确性。

(5)、安全测试。

7、网络应用测试的主要内容是什么?10’

网络应用系统包含:网络应用软件、工作站桌面软件和客户/服务器数据库。

网络应用测试重点考察:多用户并发访问性能、应用系统响应时间、应用系统对网络 资源的占用情况、与网络相关的应用功能特性、应用系统在网络环境下的稳定性。

(1)特性测试:特性测试核实的是单个命令和应用程序功能,通常用较小的负

载完成,关注的是用户界面、应用程序的操作,以及用户与计算机之间的互操作。

(2)功能测试:要求网络配置和负载非常接近于运行环境下的模式,关注的是

当多个用户使用应用程序时,网络和文件系统或者数据库系统之间的交互

情况,核实的是重负载下后台功能能否正确执行。

(3)应用负载测试。

(4)应用系统响应时间测试。

(5)应用系统升级测试。

8、用户文档测试的要点10’

(1)、明确读者群:根据读者群(如初级、中级、高级用户)的不同来检查文档内容,保证用户能够看得懂、能理解

(2)、术语:文档中术语的描述要适合定位的读者群,用法一致,标准定义与业界规范相吻合(3)、文档内容的正确性:要保证所有信息是真实正确的(4)、文档内容的完整性:要完全根据提示逐步操作,检查是否存在遗漏的地方

(5)、文档与程序的一致性:按照文档操作后,检查软件返回的结果与文档描述是否一致

(6)、文档的易用性:检查是否便于用户查找相应的内容

(7)、图表与界面截图:检查所有图表与界面截图与发布的程序版本一致

(8)、样例和示例:检查所有的样例和示例能够正确完成;

(9)、语言:中文文档保证无错别字和二义性

(10)、印刷与包装:印刷质量,包装质量

9、在DBMS中,视图不是真正的包含数据,只是把定义存于数据字典中。作用为:10’

(1)、简化用户操作。

(2)、使用户能从多角度中看待同一数据。

(3)、对重构数据提供一定程度的逻辑独立性。

(4)、能对机密数据提供安全保护。

CREATE VIEW<视图名>[(<列名>[<列名>]„„)]

AS

子查询

[With Check Option]

CREATE VIEW IS_Student

AS

SELECT Sno,Sname,Sage

FROM Student

WHERE Sdept =’IS’

With Check Option10、测试人员应该具备的能力和技术。8’

1、基本能力

2、沟通能力

3、技术能力

测试方法应用、测试用例设计、测试工具使用(测试管理系统、自动化测试工具、负载测试工具)

4、管理能力

5、文档能力

第五篇:某公司软件工程师笔试题4

1.面向对象的特点

2.java类是否可以多继承,怎样实现多继承

3.多线程的优点

4.谈谈final,finally,finalize的区别

5.JAVA中异常处理机制,事件机制、6.写出SQL语句:从表A中查出值大于40、小于80的记录,从表B中查出值小于

10、并将表A和表B查出的记录合并于表C中

7.Java多线程编程。用Java写一个多线程程序,如写四个线程,二个加1,二个对一个变量建议,输出。

8.Java的通信编程,编程题(或问答),用java socket编程,读服务器几个字符,再写入本地显示?

9.Servlet的基本架构 ?

软件工程师笔试题3(★)
TOP