不同类型软件工程师面试题

时间:2025-10-31 10:45:16 赛赛 面试问题

不同类型软件工程师面试题

  在日常学习、工作生活中,我们最少不了的就是试题了,试题是命题者根据测试目标和测试事项编写出来的。那么一般好的试题都具备什么特点呢?以下是小编精心整理的不同类型软件工程师面试题,仅供参考,大家一起来看看吧。

不同类型软件工程师面试题

  不同类型软件工程师面试题 1

  java软件工程师面试题

  1、EJB与JAVA BEAN的区别?

  答:Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。

  2、MVC的各个部分都有那些技术来实现?如何实现?

  答:MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

  3、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。

  答:Web Service描述语言WSDL

  SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。

  UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

  4、开发中都用到了那些设计模式?用在什么场合?

  答:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。

  5、CORBA是什么?用途是什么?

  答:CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture),由对象管理组织 (Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。 其目的为:

  用不同的程序设计语言书写

  在不同的进程中运行

  为不同的操作系统开发

  6、 如何给weblogic指定大小的内存?

  在启动Weblogic的脚本中(位于所在Domian对应服务器目录下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存为32M,最大200M

  7、 如何设定的weblogic的热启动模式(开发模式)与产品发布模式?

  可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一。或者修改服务的启动文件或者commenv文件,增加set PRODUCTION_MODE=true。

  8、 如何启动时不需输入用户名与密码?

  修改服务启动文件,增加 WLS_USER和WLS_PW项。也可以在boot.properties文件中增加加密过的用户名和密码.

  9、 在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中?

  保存在此Domain的config.xml文件中,它是服务器的核心配置文件。

  10、 说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld.jsp放入何目录下,然的`在浏览器上就可打入http://主机:端口号//helloword.jsp就可以看到运行结果了? 又比如这其中用到了一个自己写的javaBean该如何办?

  Domain目录\服务器目录\applications,将应用目录放在此目录下将可以作为应用访问,如果是Web应用,应用目录需要满足Web应用目录要求,jsp文件可以直接放在应用目录中,Javabean需要放在应用目录的WEB-INF目录的classes目录中,设置服务器的缺省应用将可以实现在浏览器上无需输入应用名。

  .net软件工程师面试题

  一、不定项选择

  Question 1

  以下叙述正确的是:

  A. 接口中可以有虚方法。 B. 一个类可以实现多个接口。

  C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。

  Question 2

  以下描述错误的是()

  1. 在C++中支持抽象类而在C#中不支持抽象类。

  2. C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。

  3. 在C#中可使用 new 修饰符显式隐藏从基类继承的成员。

  4. 在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。

  Question 3

  声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是

  1. void myCallBack(int x)

  2. int receive(int num)

  3. string receive(int x)

  4. 不确定的

  Question 4

  下列描述错误的是()

  a) 类不可以多重继承而接口可以;

  b) 抽象类自身可以定义成员而接口不可以;

  c) 抽象类和接口都不能被实例化;

  d) 一个类可以有多个基类和多个基接口;

  Question 5

  下列关于构造函数的描述正确的是()

  a) 构造函数可以声明返回类型。

  b) 构造函数不可以用private修饰

  c) 构造函数必须与类名相同

  d) 构造函数不能带参数

  Question 6

  接口是一种引用类型,在接口中可以声明( ),但不可以声明公有的域或私有的成员变量。

  a) 方法、属性、索引器和事件;

  b) 方法、属性信息、属性;

  c) 索引器和字段;

  d) 事件和字段;

  二.问答题

  1. 简述 private、 protected、 public、 internal 修饰符的访问权限。

  private:私有访问,它只能在声明自身的类中进行访问。

  protected:表示受保护的访问,该类内部和继承类中可以访问

  .public :表示公共访问,在代码任何位置都可对其进行访问

  internal表示内部成员,在同一命名空间内可以访问。

  2. C#中的委托是什么?事件是不是一种委托?

  委托是指具有相同属性(也称具有相同的函数签名:返回类型相同,参数类型、参数顺序及参数个数相同)的函数或方法的抽象,关键字为delegate。主要用途是三个:1)函数回调;2)传递方法;3)事件机制

  事件就是一个狭义的委托,也就是事件是一个用于事件驱动模型的专用委托,对事件的声明, 实际是声明一个私有的委托变量,对委托变量进行封装,即委托变量加上event关键字后,不管其前面的访问修饰符是public还是private,编译器都会将其编译为private。

  委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。以委托为参数的函数具有一定的通用性。

  使用委托可以将多个方法绑定到同一个委托变量,当调用此变量时(这里用“调用”这个词,是因为此变量代表一个方法),可以依次调用所有绑定的方法。

  3. abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?

  不可以一起使用,但是可以和override一起使用。

  4. 请叙述属性与索引器的区别。

  属性:它是存取类的字段,索引器:Indexer它是特殊的属性,用它可以使用户像访问数组一样访问类的成员。

  5. 请详述在dotnet中类(class)与结构(struct)的异同。

  类class可以进行实例化,它是引用类型,内存分配在栈中,效率高,它有默认的构造函数,有析构函数可以使用 abstract 和 sealed, protected 修饰符。要用new进行初始化,

  结构它是属于值类型,内存分配在堆中,效率低,它没有默认的构造函数,但是可以添加构造函数,没有析构函数没有 abstract 和 sealed(因为不能继承) 不能有protected 修饰符 可以不使用new 初始化,但是可以在结构中初始化实例字段。

  百度软件工程师面试题

  1、找到满足条件的数组

  给定函数d(n)=n+n的各位之和,n为正整数,如d(78)=78+7+8=93。这样这个函数可以看成一个生成器,如93可以看成由78生成。

  定义数A:数A找不到一个数B可以由d(B)=A,即A不能由其他数生成。现在要写程序,找出1至10000里的所有符合数A定义的数。

  回答:

  申请一个长度为10000的bool数组,每个元素代表对应的值是否可以有其它数生成。开始时将数组中的值都初始化为false。

  由于大于10000的数的生成数必定大于10000,所以我们只需遍历1到10000中的数,计算生成数,并将bool数组中对应的值设置为true,表示这个数可以有其它数生成。

  最后bool数组中值为false的位置对应的整数就是不能由其它数生成的。

  2、一个大的含有50M个URL的记录,一个小的含有500个URL的记录,找出两个记录里相同的URL。

  回答:

  首先使用包含500个url的文件创建一个hash_set。

  然后遍历50M的url记录,如果url在hash_set中,则输出此url并从hash_set中删除这个url。

  所有输出的url就是两个记录里相同的url。

  3、海量日志数据,提取出某日访问百度次数最多的那个IP。

  回答:

  IP地址最多有2^32=4G种取值可能,所以不能完全加载到内存中。

  可以考虑分而治之的策略,按照IP地址的hash(IP)%1024值,将海量日志存储到1024个小文件中。每个小文件最多包含4M个IP地址。

  对于每个小文件,可以构建一个IP作为key,出现次数作为value的hash_map,并记录当前出现次数最多的1个IP地址。

  有了1024个小文件中的出现次数最多的IP,我们就可以轻松得到总体上出现次数最多的IP。

  4、有10个文件,每个文件1G,每个文件的每一行都存放的是用户的query,每个文件的query都可能重复。如何按照query的频度排序?

  回答:

  1)读取10个文件,按照hash(query)%10的结果将query写到对应的文件中。这样我们就有了10个大小约为1G的文件。任意一个query只会出现在某个文件中。

  2)对于1)中获得的10个文件,分别进行如下操作

  -利用hash_map(query,query_count)来统计每个query出现的次数。

  -利用堆排序算法对query按照出现次数进行排序。

  -将排序好的query输出的文件中。

  这样我们就获得了10个文件,每个文件中都是按频率排序好的query。

  3)对2)中获得的10个文件进行归并排序,并将最终结果输出到文件中。

  5、蚂蚁爬杆问题

  有一根27厘米长的细木杆,在第3厘米,7厘米,11厘米,17厘米,23厘米这五个位置上各有一只蚂蚁,木杆很细,不能同时通过两只蚂蚁,开始时,蚂蚁的头朝向左还是右是任意的,他们只会朝前走或掉头,但不会后退,当两只蚂蚁相遇后,蚂蚁会同时掉头朝反方向走,假设蚂蚁们每秒钟可以走1厘米的距离。求所有蚂蚁都离开木杆的最小时间和最大时间。

  答案:

  两只蚂蚁相遇后,各自掉头朝相反方向走。如果我们不考虑每个蚂蚁的具体身份,这和两只蚂蚁相遇后,打个招呼继续向前走没有什么区别。

  所有蚂蚁都离开木杆的最小时间为

  max(min(3,27-3),min(7,27-7), min(11,27-11), min(17,27-17),min(23,27-23))=11

  所有蚂蚁都离开木杆的最大时间为

  max(max(3,27-3),max(7,27-7), max(11,27-11), max(17,27-17),max(23,27-23))=24

  6、当在浏览器中输入一个url后回车,后台发生了什么?比如输入url后,你看到了百度的首页,那么这一切是如何发生的呢?

  回答:

  简单来说有以下步骤:

  1、查找域名对应的IP地址。这一步会依次查找浏览器缓存,系统缓存,路由器缓存,ISPDNS缓存,根域名服务器。

  2、向IP对应的服务器发送请求。

  3、服务器响应请求,发回网页内容。

  4、浏览器解析网页内容。

  当然,由于网页可能有重定向,或者嵌入了图片,AJAX,其它子网页等等,这4个步骤可能反复进行多次才能将最终页面展示给用户。

  不同类型软件工程师面试题 2

  1、怎么来设计测试方案

  根据测试需求(涉及功能需求和非功能性需求),辨认测试要点,辨认测试环境规定,安排测试轮次,根据项目筹划和开发筹划做整体的测试安排。

  被测试的特性:通过对需求规格阐明书进行分析,列出本次测试需要进行测试的各部分特性(如要测试的功能需求、性能需求、安全性需求等等)。

  不被测试的特性:由于资源、进度等方面因素,本次测试不列入测试范畴的特性。

  测试组网图:进行本次系统测试所需要的软硬件设备、配备数据已及互相间的逻辑、物理连接。此后测试执行时需要根据这个组网图来进行环境的搭建。

  2、如果给你一种B/S系统你怎么来进行测试

  此题答案还可用于回答测试流程,测试流程题亦可参照15题。

  阅读系统需求,充足理解需求,记录问题,并与项目需求人员充足沟通。

  编写测试需求,涉及系统功能和非功能测试要点、测试类型、测试进度质量规定等。

  制定测试筹划,涉及熟悉测试业务、设计测试用例、执行测试用例、进行测试小结、编写测试报告,任务颗粒度一般应不不小于5人天

  编写测试用例,根据测试方案设计用例,即便没有明确的性能和安全测试规定,也应辨认进行此两项测试。

  执行软件测试。

  进行测试小结,如果测试持续时间较长,每个版本间隙总结本轮测试。

  编写测试报告,总结测试过程,汇总度量数据。

  3、怎么进行工作流的测试

  把握需求,找准结点,理清流程,画出流转图,弄清节点间的数据流转,设计测试用例的时候必须覆盖所有也许的流程。

  工作流:

  如果问到有无做过,根据对工作流的理解状况回答,如果比较理解,可以把参与的某个项目中说上某些有工作流的,如果不是很理解就说没有做过,但是学习过有关知识。

  4、做性能测试的时候都需要关注哪些参数

  并发访问量,服务器响应时间(最小、平均、最大)

  并发性能测试的过程是一种负载测试和压力测试的过程,即逐渐增长负载,直到系统的瓶颈或者不能接受的性能点,通过综合分析交易执行指标和资源监控指标来拟定系统并发性能的过程。

  负载测试(Load Testing)是拟定在多种工作负载下系统的性能,目的是测试当负载逐渐增长时,系统构成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。

  负载测试是一种分析软件应用程序和支撑架构、模拟真实环境的使用,从而来拟定可以接受的性能过程。压力测试(Stress Testing)是通过拟定一种系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

  疲劳测试是采用系统稳定运营状况下可以支持的最大并发顾客数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来拟定系统解决最大工作量强度性能的过程。

  疲劳强度测试可以采用工具自动化的方式进行测试,也可以手工编写程序测试,其中后者占的比例较大。

  一般状况下以服务器可以正常稳定响应祈求的最大并发顾客数进行一定期间的疲劳测试,获取交易执行指标数据和系统资源监控数据。如浮现错误导致测试不能成功执行,则及时调节测试指标,例如减少顾客数、缩短测试周期等。尚有一种状况的疲劳测试是对目前系统性能的评估,用系统正常业务状况下并发顾客数为基本,进行一定期间的疲劳测试。

  大数据量测试可以分为两种类型:针对某些系统存储、传播、记录、查询等业务进行大数据量的独立数据量测试;与压力性能测试、负载性能测试、疲劳性能测试相结合的综合数据量测试方案。大数据量测试的核心是测试数据的准备,可以依托工具准备测试数据。

  5、客户没给性能指数,怎么开展性能测试

  如果客户没有提出明确的性能指标,可以按照惯例和经验设立,需要和PM协商,一般由PM确认,QA负责给出建议。

  举例说一种Server端程序,规定峰值时CPU和MEM消耗在75%如下,而一种页面的访问响应时间一般觉得顾客的忍耐时间是3-5秒以内,这些要参照实际的应用来拟定顾客规模、操作频率、同步在线数等。

  6、有无做过接口测试,是如何做的

  通过编写测试程序,获得接口指针,逐个调用接口函数验证其对的性,及失败操作

  7、测试过程中是如何来保证软件质量的

  测试用例编写完毕后要加强评审的力度,保证测试用例覆盖所有需求点

  执行测试过程中注意做小结检查覆盖状况、审视所提缺陷质量,复测时应注意有关模块的测试

  测试时间宽裕的话可以做交叉测试,用以保证测试质量。

  8、测试方案都写什么内容

  1概述

  2被测对象分析

  3应测试的特性

  4不被测试的特性

  5总体设计措施

  6测试模型

  6.1测试组网图

  6.2构造/对象关系图

  6.3测试原理

  6.4操作规程

  7测试需求

  7.1环境需求

  7.2被测对象需求

  7.3测试工具需求

  7.4测试代码需求

  7.5数据需求

  7.6其他需求

  8测试设计

  8.1工具设计

  8.2测试代码设计

  8.3用例设计

  8.3.1设计原则

  8.3.2测试项目

  9.附录

  (测试方案规定根据《SRS》上的每个需求点设计出涉及需求点简介,测试思路和具体测试措施三部分的`方案)以往华为测试方案

  目录如下:

  第1章技术方案

  1.1.测试需求描述

  1.1.1.测试类型分析

  1.1.2.测试内容

  1.2.缺陷分类

  1.3.缺陷级别

  第2章SOW及规格的应答

  2.1.测试需求应答

  2.2.交付件应答

  2.2.1.软件交付件应答

  2.2.2.非软件交付件应答

  2.3.项目里程碑项目完毕时间应答

  2.4.质量目的应答

  2.5.验收原则应答

  2.6.限制应答

  2.6.1.合伙供应商人员组织应答

  2.6.2.硬件设备应答

  2.6.3.合伙项目开发场地应答

  第3章类似项目成功案例

  第4章项目具体工作筹划

  第5章项目估算

  9、测试方案和测试筹划的区别

  测试方案是技术性的;测试筹划更多是管理性的。

  测试筹划重要要考虑测试的技术可行性、核心技术、资源投入、进度安排、风险管理、配备管理、输入输出等。测试筹划更多地供高层管理者决策时做参照;同步对后续测试工作开展起指引作用。

  在某些小项目中,也许只需要一种测试方案,测试筹划内容相对较少,可以与测试方案合并进行;而某些大项目中,也许要设计数十个测试方案,这就需要一种提纲挈领的东西了,这就是测试筹划的作用。

  10、测试用例是根据什么写的

  系统测试用例根据需求和设计编写

  (华为的SDV测试用例是根据《测试方案》和测试方略来编写的)

  11、是怎么来设计测试用例的?

  答:先熟悉系统需求,把握测试要点,设计用例的原则一方面是要覆盖每个需求点,可以通过填写需求跟踪矩阵来保证覆盖。

  黑盒测试的测试用例设计措施:等价类划分法、边界值分析法、错误推测法、因果图。

【不同类型软件工程师面试题】相关文章:

软件测试工程师面试题07-19

软件工程师面试题目05-02

不同类型的简历11-04

演讲的不同类型08-03

不同模特类型的要求07-11

2016软件测试工程师面试题08-10

常见软件测试工程师面试题05-14

软件测试工程师面试题及答案05-09

面试类型不同面试技巧也不同!08-02

不同的节目类型主持要点07-23