软件开发工程师面试题(java软件开发工程师面试题)
本篇文章给大家谈谈软件开发工程师面试题,以及java软件开发工程师面试题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
软件工程师经典面试题及答案
1、为什么要在一个团队中开展软件测试工作?
因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。
2、您所熟悉的软件测试类型都有哪些?
测试类型有:功能测试,性能测试,界面测试。
功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。
界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。
3、您认为做好测试用例设计工作的关键是什么?
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果黑盒用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。4、验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
.net软件工程师笔试题和面试题答案目
说明:
1. 本试题分可选题和必选题两部分。必选题需要根据题目要求回答。
2. 本试题考试时间为 0.5 小时。
3. 本试题完成后,请标明你的姓名以及联系方式(包括:Email、联系电话)。
注意事项:
1、在规定时间内自行选题(在可选题部分中),选题数目不能少于2个,难度不限,编程语言不限(除非题目中有特别说明)。
2、尽可能用代码段或函数完成,或自然语言来描述解题方法。
3、评分标准跟所选题目的数量和完成度无关,请尽可能展示自己的编程能力、思路、经验和风格。
可选题部分:
(1) 请使用目录树遍历的方法统计出指定逻辑驱动器的目录总数及文件总数,并显示硬盘空间浪费的百分比
类别:系统类
难度:中级
(2) 列出局域网中的所有工作组和计算机名,并可显示每一个计算机的共享目录
类别:系统类
难度:高级
(3) 写一个类似OICQ点对点消息发送软件,仅实现发送和接收的功能即可
类别:网络编程类
难度:高级
(4) 为DataGrid(WinForm)增加ComboBox样式的数据列
类别:数据库编程类
难度:中级
(5) 一维数组iArray[10],类型为int。请使用选择排序算法对其排序,并输出结果。
类别:数据算法
难度:初级
(6) 请新建一个类(名称为ClassA),该类必须含有三个属性:姓名(字符串),性别(布尔值),年龄(数值)。
用该类建立一个链表,该链表有以下算法:创建、添加、插入、删除和查找,算法内不用
考虑内存的分配与释放
类别:数据结构
难度:中级
Public Class ClassA{
Public string name;
Public boolean sex;
Public int age;
}
(7) 在上题的基础上,实现以下两个功能:
a. 保存该链表为二进制文件test.lib(存放在本题目路径之下)
b. 读取生成的二进制文件到链表中。
类别:数据结构
难度:中级
(8) 你所知道有哪些操作平台,谈谈你对他们的见解
类别:其它类
难度:无
(9) 你所知道有哪些编程语言,谈谈你对他们的看法,你使用过哪些语言,熟练程度
如何,编写过什么样的程序
类别:其它类
难度:无
(10) 请用VBScript或JavaScript语言中任何一种,与CSS结合,编写出移动Layer的例子,具体效果与Windows窗体类似。
类别:Web
难度:中级
必选题部分(必须用VS2003开发):
(1) C#回答题:请描述抽象类、接口、结构三者的区别:
抽象类当中的属性和方法不能被其子类重写,接口只定义其中的属性和方法,其方法的实现部分必须在其继承的子类中实现,结构和类比较类似,也有其属性和方法,但不能被继承和实例化.
(2) C#编程题:在WinForm 中实现类似于Windows 资源管理器的功能,左边有目录树,点击目录树,在右边显示该目录下的所有文件。查看方式分:大图标、小图标、列表、详细资料等。
(3) 写一个简单的存储过程或触发器,要求能正确运行(数据库采用Oracle,自建测试表)
Create table test
(id int primary key,
Name varchar2(10) not null,
Address varchar2(50),
Tel varchar2(18)
);
Create or replace procedure InsertTest as
Declare IDN test.id%type;
Declare VName test.name%type;
Declare VAddress test.address%type;
Declare VTel test.tel%type;
Begin
Select nvl(decode(max(id),0,1,max(id)),1) + 1 into IDN
End
When
4 更多相关文章推荐参考:
安捷伦笔试真题
中兴数据库笔试真题
工商银行历年考试真题
软件工程师面试时,HR都会问些什么问题
软件工程岗位面试大致可分为两类:特定领域知识面试和计算机科学基础知识面试
特定领域知识面试
特定领域知识面试通常涉及到你最熟悉的技术领域的具体知识点。例如,如果你主要使用Angular1.x进行前端开发,并且面试公司又有 Angular前端,那他们就可能问你关于 Angular控制器、指令和服务的相关内容。也就是说,你需要做好准备去建立、展示和讨论Angular。
特定领域的面试重点关注的是你已经实际构建起来的东西,因此要想顺利通过这些面试,最好是你已经构建过相关技术的项目。你应该为自己的工作而感到自豪,不必感觉不好意思,而应该深入探讨具体项目的技术细节。项目最好是近阶段完成的,没人会愿意去听你去年写的那些代码,你自己也会对这种陈旧的项目感觉厌倦,面试效果也欠佳。
特定领域面试的另一个常见策略是看求职者能否构建一些非常棒的产品或者是排除实际存在的一些问题和故障。这通常是让求职者带回家去完成的一种测试,求职者一般有 24-48个小时的时间来完成这些测试。例如,如果你是一名 Laravel开发人员,并且你面试的公司恰好也使用 Laravel,那他们可能会要求你构建公司产品或者是公司定期创建的产品的微缩版本。对于这种带回家做的测试,做好投入大量工作的心理准备。准备好启动模板,不要抗拒去Google搜索答案,发送电子邮件寻求帮助和使用外部工具包这些做法。因为能否通过特定领域面试最重要的一个衡量标准是你能否构建出有效的产品。
计算机科学基础知识面试
计算机科学和基础编程面试明显不同于上文所探讨的特定领域面试。计算机科学和基础编程面试是为了评估你解决问题的能力,更多的是关注找到最佳解决方案的能力,而不是简单的去完成某些特定任务。因此,面试官通常也不会问关于你是谁、你过去的工作经历或者你构建过的项目方面的问题。对于计算机科学基础面试这一类型来说,面试官的工作就是评估你的原始编程能力,通常他们是通过数据结构和算法相关的问题来进行评估。
计算机科学基础面试的问题有章法可循。因为学习数据结构和算法需要大量的准备工作和长时间的学习,你需要了解你所选择的编程语言、数据结构和算法来解决问题。计算机科学基础知识面试通常可以用六种不同类型的算法来解决:
深度优先搜索算法/广度优先搜索算法
贪心算法
滑动窗口算法
分治算法
递归算法
动态规划算法
你需要研究每一种算法,可以在 Pramp上与其他软件工程师一起练习面试和面试问题。应对面试是一门独立于软件工程师之外的技能,你可以通过练习和重复来提升自己在面试时的表现。
计算机科学基础知识面试通常遵循的那些问题结构对于求职者来说只有通过几个小时的练习和准备才能发现。即便这些知识中的一部分并不适用于日常的编程任务,但只要你坚持这样做,你就能抓住更多的面试机会,就能收到更多公司发来的 offer。如果你的目标是获得更多的工作机会,那你一定要看一下《Cracking The Coding Interview》这本书,并且查看这一免费的面试资源来进行相应的准备工作。
软件测试工程师经典面试题汇总
1.说说一个缺陷的生命周期
考查点: 测试人员对于缺陷整体生命周期的理解 ,注意面试官用词,有时只需要回答关键节点,有时需要分开阐述。
围绕缺陷提交、缺陷确认、缺陷打开、缺陷修复、缺陷回归、缺陷关闭这几个关键节点回答即可。
2.缺陷的基本类型有哪些?
考查点:需求、数据、逻辑、性能、功能、安全、兼容、变更、易用等
对于工作经历的侧面了解,有时会需要分别举例说明。
3.测试用例的基本要素有哪些?
用例编号、用例类型、用例标题(名称)、前置条件、操作步骤、测试数据、预期结果、实际结果
考察类型形式多样,有些面试官会出场景需求要求现场设计用例,来用于考察应试者的思维缜密性、经验是否丰富以及对需求的理解程度。
4.你如何做用例评审?
考查点:主要考察之前工作流程是否规范,同时对于评审工作的参与度
灵活回答,不同公司不同项目评审流程也有区别。
参考:内部评审(通常由测试组内部人员评审)-正式评审(由参与该项目的产品、开发、测试、项目经理评审)-用例修订-项目经理确认
5.针对微信的聊天窗口设计测试用例
考查点:也经常会换成其他知名网站的一些搜索功能、列表功能、分页功能等等,来考察系统思维能力。
参考:
首先,了解完成业务需求后,转化为测试需求,最终的测试需求一定是跟项目组评审通过的。
开始设计:
冒烟用例:实现最简单的聊天功能(语音、文字形式)
功能业务:
纯文字聊天
语间聊天
表情
组合发送聊天
特殊字符及组合
发送文件
查看聊天记录
截屏功能
视频聊天
实时语音聊天
不同版本间的切换功能
客户化场景分解
异常场景分解
兼容性测试用例:
一般在业务需求中会定义好
在测试需求中可以分解好对应的机型与系统版本,求得最优最小组合,用于兼容性测试的用例。
安全测试用例
性能测试用例
(一般都有独立的测试方案)
回归测试用例:
抽取用例库中的核心用例组合成回归用例 。
6.你发现一个缺陷,但开发人员认为不是问题,你会怎么办?
考察点:沟通表达能力,过往工作流程经验,合作意识、责任意识
此类问题需要首先清楚自己的角色定位,作为一名软件测试人员,此类问题是经常遇到的。如果是执行人员,可以带出原来工作的测试流程,因为缺陷处理也是属于测试流程中的一部分,如开发人员会在缺陷管理系统中备注原因,自己先分析,如果不确定可以找上级测试负责人来一起处理。但如果是管理岗,回答时可以举例说明自己以往遇到的类似问题以及处理方式,更具有说服力。
7.你评估的测试时间是5天,但领导只给三天怎么办?
考察点:沟通表达能力,过往工作冲突的处理方式经验
此类问题如果面试官并未给出具体场景,就一定需要反问把问题的背景描述出来,通过背景分析给出解决冲突的方法。
问题背景如:临时紧急需求、常规需求、经常性压缩时间、客户压缩时间、因自身漏洞导致压缩时间等等
那么回答时就需要应景:排列工作优先级、重新分解当前工作、改变测试策略、团队内分工、外部求助等
8.说说一个项目的测试流程
考察点:以往工作的流程规范性,业务熟悉度
可以参考下文章《测试过程文档模板整理(一)-提测流程》中提到的测试流程,结合目前项目来说明。回答时体现自信、专业、对工作环节的熟悉度
9.黑盒测试用例设计方法有哪些?
等价类划分法、边界值分析法、因果图法、正交实验法、判定表法、错误推测法、随机测试、场景法
10.软件的质量特性有哪些?
可维护性、可扩展性、可测试性、可重用性、可移植性、易理解性
一般在实习生与初级测试工程师中的笔试题也会有很多考查类型,中高级测试工程师更倾向于考察关于质量的影响因素等。
11.缺陷的基本要素有哪些?描述缺陷有哪些注意事项?
缺陷编号、缺陷标题、前置条件、测试数据、操作步骤、预期结果、实际结果、初步定位原因、截图或日志信息(可选)
软件开发工程师面试题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java软件开发工程师面试题、软件开发工程师面试题的信息别忘了在本站进行查找喔。