java程序员面试笔试题
第一篇:java程序员面试笔试题
Java 软件工程师面试笔试题
Java 软件工程师面试笔试题.txt﹃根网线'尽赚了多少人的青春い有时候感动的就是身边微不足道的小事。﹎破碎不是最残酷的 最残酷的是踩着这些碎片却假装不疼痛 固执的寻找﹎将来就算我遇见再怎么完美的人,都有一个缺点,他不是你,_____下辈子要做男生,娶一个像我这样的女生。
一、你对MVC的理解,MVC有什么优缺点?结合Struts,说明在一个Web应用如何去使用? 答:
MVC设计模式(应用观察者模式的框架模式)
M: Model(Business process layer),模型,操作数据的业务处理层,并独立于表现层(Independent of presentation)。
V: View(Presentation layer),视图,通过客户端数据类型显示数据,并回显模型层的执行结果。
C: Controller(Control layer),控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图
MVC框架的一种实现模型 模型二(Servlet-centric):
JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,Sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。
StrutsMVC框架(Web application frameworks)
Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。
Struts提供了一些组件使用MVC开发应用程序:
Model:Struts没有提供model类。这个商业逻辑必须由Web应用程序的开发者以JavaBean或EJB的形式提供
View:Struts提供了action form创建form bean, 用于在controller和view间传输数据。此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。
Controller:Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定义Action规范,还需要在struts-config.xml的特定配置文件中进行配置,接收JSP输入字段形成Action form,然后调用一个Action控制器。Action控制器中提供了model的逻辑接口。
二、什么是WebService? 答:
WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。 WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web服务定义语言)/SOAP(简单请求协议)规范的。 WebService=WSDL+SOAP+UDDI(webservice的注册)
Soap是由Soap的part和0个或多个附件组成,一般只有part,在part中有Envelope和Body。
Web Service是通过提供标准的协议和接口,可以让不同的程序集成的一种SOA架构。 Web Service的优点
(1) 可以让异构的程序相互访问(跨平台)
(2) 松耦合
(3) 基于标准协议(通用语言,允许其他程序访问) Web Service的基本原理
(1) Service Provider采用WSDL描述服务
(2) Service Provider 采用UDDI将服务的描述文件发布到UDDI服务器(Register server)
(3) Service Requestor在UDDI服务器上查询并 获取WSDL文件
(4) Service requestor将请求绑定到SOAP,并访问相应的服务。
三、什么是中间件?
中间件就是程序中可织入的,可重用的,与业务逻辑无关的各种组件。
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
分类:数据访问中间件,远程调用中间件,消息中间件,交易中间件,对象中间件。
举例:
1,RMI(Remote Method Invocations, 远程调用)
2,Load Balancing(负载均衡,将访问负荷分散到各个服务器中)
3,Transparent Fail-over(透明的故障切换)
4,Clustering(集群,用多个小的服务器代替大型机)
5,Back-end-Integration(后端集成,用现有的、新开发的系统如何去集成遗留的系统)
6,Transaction事务(全局/局部)全局事务(分布式事务)局部事务(在同一数据库联接内的事务)
7,Dynamic Redeployment(动态重新部署,在不停止原系统的情况下,部署新的系统)
8,System Management(系统管理)
9,Threading(多线程处理)
10,Message-oriented Middleware面向消息的中间件(异步的调用编程)
11,Component Life Cycle(组件的生命周期管理)
12,Resource pooling(资源池)
13,Security(安全)
14,Caching(缓存)
四、什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处? 答:(1) Presentation layer(表示层)
(1) 表示逻辑(生成界面代码)
(2) 接收请求
(3) 处理业务层抛出的异常
(4) 负责规则验证(数据格式,数据非空等)
(5) 流程控制
(2) Service layer(服务层/业务层)
(1) 封装业务逻辑处理,并且对外暴露接口
(2) 负责事务,安全等服务
(3) Persistence layer(持久层)
(1) 封装数据访问的逻辑,暴露接口
(2) 提供方便的数据访问的方案(查询语言,API,映射机制等) Domain layer(域层)
(1) 业务对象以及业务关系的表示
(2) 处理简单的业务逻辑
(3) 域层的对象可以穿越表示层,业务层,持久层
软件分层结构使得代码维护非常方便,设计明确,各层独立,专注自己擅长的领域。
五、什么是OOP?OOP相对于面向过程编程有哪些优点?
OOP,Object-Oriented Programming,面向对象编程不同于面向过程编程:
(1)OOP关注对象和角色,也就是事物的本质
1)OOP把客观世界中的对象抽象成对应的类;
2)通过类构造实例;
3)通过依赖、继承、实现等形式建立对象间的通信关系
(2)OOP易于扩展,增加或改变业务的功能,无需大幅改动改变源代码
(3)OOP易于建模,OOP就是软件架构师在计算机高级语言中对客观世界的抽象和再现,人们可以很好地理解和建立起计算机中的抽象模型
六、谈谈Overload和Override的区别。
答:
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
七、谈谈HashMap和Hashtable的区别。 答:
HashMap是轻量级的(线程不安全的,效率高的)集合,Hashtable是重量级的(线程安全的,效率低的)集合。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。
八、请问abstract class和interface有什么区别?
答:
1) 接口没有任何的实现,而抽象类它可以有部分的实现也可以没有;
2) 如果需要复用或者共享部分代码,应该用抽象类而不是接口;
3) 继承无法解决类型的转换问题,接口就是为了解决这一问题而产生的(Java的单继承是接口产生的根本原因) 接口是一种抽象的第三方规范,跟对象没什么直接关系。
九、请问软件开发中的设计模式你会使用哪些?
答:我熟悉的设计模式有单例模式,DAO模式,模板方法,工厂模式,委托代理模式,MVC模式等。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
Singleton模式一般形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
十、类的核心特性有哪些?
类具有封装性、继承性和多态性。
封装性:
类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。
继承性:
类的继承性提供从已存在的类创建新类的机制,继承(inheritance)使一个新类自动拥有被继承类(父类)的全部成员。
多态性:
类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。
十一、请问类与对象有什么区别?
类
类就是某一种事物的一般性的集合体,是相同或相似的各个事物共同特性的一种抽象。
对象
在面向对象概念中,对象(Object)是类的实例(instance)。对象与类的关系就像变量与数据类型的关系一样。
十二、写出生产者消费者模型的实现
十三、用软件工程和Java来叙述购物车(shopping cart)系统实现
十四、文件系统的几个类:FileInputStream、FileOutputStream、FileReader、FileWriter的区别
十五、请写出Java API中最常用的五个包,并且各举两个类加以说明。 十
六、请问你在“电信运营支撑系统”中遇到了哪些问题?你是怎么解决的?做这个项目你最大的收获是什么?
十七、请说出几个常用的异常类
答:NullpointException(空指针异常)
ClassNotFoundException(类找不到异常)
ClassCastException(类型转换异常)
IllegalArgumentException(非法参数异常)
ArithmeticException(算术异常)
NumberFormatException(数据格式异常)
IndexOutOfBoundsException(数组下标越界异常)
IllegalStateException(非法语句异常)
十八、什么是进程和线程?两者的区别是什么?
十九、请简要描述一下你做的ShoppingCart项目。
二
十、请问网络7层协议,tcp/ip4 层协议是什么?
二十一、Java面向对象的四大特点
二十二、public,private,protected,default访问权限(可见性)
答:
public:全局可见
protected:继承体系结构之间可见
default(或不写):同包可见
private:本类可见。
二十二、public,private,protected,default访问权限(可见性)
答:
public:全局可见
protected:继承体系结构之间可见
default(或不写):同包可见
private:本类可见。
二十三、名词解释
CRM
[Customer Relationship Management, 客户关系管理] ERP
[Enterprise Resource Planning, 企业资源规划] OSS
[Operation Support System, 运营支撑系统] BSS
[Business Support System, 数据定义语言] BOSS
[Business Operation Support System, 数据定义语言] OA
[Office Automatization, 办公自动化] HTTP OOP SOA GUI DDL
[Data Definition Language, 数据定义语言] DML
[Data Manipulation Language, 数据操作语言]
WYSIWYG
所见即所得 [What You See is What You Get] CMP CMT B2B C2C B2C IDE DOM
Client/Server CMM ORM MIS MVC
MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
OLE
CORBA
CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture),由对象管理组织 (Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。 其目的为:
用不同的程序设计语言书写
在不同的进程中运行
为不同的操作系统开发。
UML
UML,标准建模语言,包含用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图等。
XML CMMI JRE J2EE
J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。
JDK AOP OO
Container W3C JMS
Domain POJO JVM JNDI JTA SOAP
[Simple Object Access Protocol,简单对象访问协议] WSDL JDO
JDO是Java对象持久化的新的规范,为Java Data Object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。
TDD DAO IoC
[Inversion of Control, 控制反转] RMI DNS
[Internet Domain Name System, 因特网域名系统] URL URI
二十四、数据库连接池的工作机制
二十五、互联网提供哪些服务?
二十六、请写出JSP的几个隐含内置对象
答:JSP中隐含内置对象
名称 类型
request javax.servlet.http.HttpServletRequest request
response javax.servlet.http.HttpServletResponse
注释和范围 response page javax.lang.Object page
Exception java.lang.Throwable page
pageContext javax.servlet.jsp.PageContext page
session javax.servlet.http.HttpSession session
application javax.servlet.ServletContext ServletContext out javax.servlet.jsp.JspWriter OutputStream
config javax.servlet.ServletConfig ServletConfig
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
request 用户端请求,此请求会包含来自GET/POST请求的参数
response 网页传回用户端的回应
page JSP 网页本身
exception 针对错误网页,未捕捉的例外
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
config Servlet的构架部件
二十七、请你谈谈SSH整合
答:SSH:
Struts(表示层)+Spring(业务层)+Hibernate(持久层)
Struts:
Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。
在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。(View:沿用JSP,HTTP,Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)
Hibernate:
Hibernate是一个持久层框架,它只负责与关系数据库的操作。
Spring:
Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。
二十八、应用服务器与Web Server的区别
二十九、Java Servlet API中forward() 与redirect()的区别
答:
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
三
十、写一个简单的C/S结构程序,Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?
答:Server端程序: package test; import java.net.*; import java.io.*;
public class Server { private ServerSocket ss; private Socket socket; private BufferedReader in; private PrintWriter out; public Server() { try { ss=new ServerSocket(10000); while(true) { socket = ss.accept(); String RemoteIP = socket.getInetAddress().getHostAddress(); String RemotePort = ":"+socket.getLocalPort(); System.out.println("A client come in!IP:"+RemoteIP+RemotePort); in = new BufferedReader(new
InputStreamReader(socket.getInputStream())); String line = in.readLine(); System.out.println("Cleint send is :" + line); out = new PrintWriter(socket.getOutputStream(),true); out.println("Your Message Received!"); out.close(); in.close(); socket.close(); } }catch (IOException e) { out.println("wrong"); } } public static void main(String[] args) { new Server(); } }; Client端程序: package test; import java.io.*; import java.net.*;
public class Client { Socket socket; BufferedReader in; PrintWriter out; public Client() { try { System.out.println("Try to Connect to 127.0.0.1:10000"); socket = new Socket("127.0.0.1",10000); System.out.println("The Server Connected!"); System.out.println("Please enter some Character:"); BufferedReader line = new BufferedReader(new
InputStreamReader(System.in)); out = new PrintWriter(socket.getOutputStream(),true); out.println(line.readLine()); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); System.out.println(in.readLine()); out.close(); in.close(); socket.close(); }catch(IOException e) { out.println("Wrong"); } } public static void main(String[] args) { new Client(); } };
第二篇:出纳面试笔试题
1、支票的提示付款期限为自出票日起()天内有效。
2、签发的支票必须记载的事项有哪些?
3、情况1张某某借现金10000元用于出差
情况2 张某某出差期间发生的费用如下:机票金额3000元,住宿2500元,招待费2000元,出差返回后到财务部办理相应财务手续。 问题一,如何办理现金收支?将涉及什么单据?
问题二,张某某收到原始单据,是否需要填写报销单据?如果需要填写应该填写什么单据?
以下是答案:
1.10天
2. (1)出票日期;(2)确定的金额;(3)付款人名称;(4)出票人签章
3.(1)张某某应填写出差申请单和批办单,经部门主管、财务主管等有权限人员审批后出纳支付款项,张某某签收。出纳登记现金日记账,并将批办单交与会计人员登记入账。
(2)张某某回来后应填写支出凭单。由有权限人员审批后交由出纳进行冲抵前期借款,退回现金由出纳开具收款收据进行冲抵借款,出纳根据原始票据和退回现金进行登记现金日记账。
第三篇:销售人员面试笔试题
发布时间:2010年08月17日 来源:应届毕业生求职网
公务员面试面试技巧终极面试面试自我介绍面试119
结构化面试面试问题面试题面试英语事业单位面试
一、基本题:
1、请您作一下自我介绍。
2、您来面试前有没有想过整个过程?说说您先前是如何打算应对这场面试的,包括各个阶段。
3、您的缺点或不足是什么?您的优点或特长是什么?
4、谈谈你工作中一次失败的经历,谈谈你工作中一次成功的经历。
5、你希望与什么样的上级共事?
6、上级下达了错误的指令,这个指令会造成公司一百多万的损失,你会不会执行?为什么?或者你将怎样处理?
7、当与上级意见不一时,你将怎么办?
8、你为什么离开原来的单位?
9、我们公司什么地方吸引你?
10、你以前具体的日常工作是什么?你做的怎么样?
11、你对这项工作有哪些可预见的困难?
12、没有工作经验,你如何能胜任这份工作?
13、如果公司录用了你,你将怎样开展工作?
14、你到我们公司工作的目的是什么?
15、你期望的工作环境和工作状态是什么?你希望公司给你什么样的支持?
16、你以前的薪酬怎样?你期望什么样的薪酬和待遇?
二、实务题:
1、王老板口头上同意经销我公司产品,并答应你三天内可以打款进货,但到第四天他还没有打款。当你打电话或上门拜访时,他又以种种原因推脱说这几天很忙再过几天就打款。请问你该如何让王老板尽快打款进货?
2、张老板是你的新客户,由于尚未建立相互信任度,张老板要求货到后再付款,但公司明文规定经销商必须先打款后发货。请问你该怎么办?
3、你认为张老板信用度比较高,并以自己的工资做担保向公司申请货到付款,但货到后,张老板又对产品挑三捡四,以种种理由要求只付货款的90%给你,剩余的10%作为换货保证金,否则他就让你把这些货拉回公司。请问你如何让张老板全额付款?
4、郭老板很想经销我公司产品,你也认为郭老板是我公司在t市最合适的经销商,但郭老板向你提出两个要求:第一,要求产品降价;第二,要求公司为其做一块户外广告牌,费用5000元。公司执行全国统一价,不会为个别市场降价,而且在郭老板尚未给公司创造出利润的前提下不支付5000元广告费。请你提出合理的解决方案让郭老板尽快打款进货。
5、李老板经销我公司产品已经三年了,3个月前他进的一批果汁还有200箱没有卖出去,李老板让你帮他把这200箱果汁退回公司,否则他就不进公司新上市的八宝粥产品,但公司规定产品无质量问题不准退货。请问你该如何让李老板尽快配合公司新品上市?
6、马经理是b公司在s市的经销商,经销b公司的所有产品,但他已经半年没从b公司进货了,而且还欠公司两万元货款,另外他还有500箱b公司的饮料没有销售。假如你是b公司的业务员,你得知s市的陈经理很愿意经销你的八宝粥产品,通过几次接触,陈经理表示如果你撤消马经理的经销权,他就从公司进货。你了解到马经理在当地社会关系复杂,如果处理不当会对公司市场造成负面影响,同时你又对陈经理的市场能量估计不足,而公司又催促你s市20天内必须进货。请问你该如何操作s市的市场。
7、在促销力度不强的情况下,你如何销售品牌知名度不高而价位又与知名品牌同类竞品相差无几的中高档新产品?
8、如果公司在市场上受到竞品、促销等方面的强力冲击,你该如何应对?
9、你认为在市场操作中终端(零售商)和中间商(经销商、二批商)孰重孰轻,为什么?
10、公司生产销售中高档、低档八宝粥、中高档、低档杏仁露、果汁、花生牛奶、核桃露和麻辣品等二十多个产品,假如给你一个空白区域,比如一个地区,让你在一个月内完成8万销售额,请问你具体该怎么做?
第四篇:物流行业面试笔试题
笔试试题
一、选择题(40分)
1请问您从小成长在: □农村□乡镇□郊区□县城□市区 2请问您出生在:(具体到门牌号)
3请问您的父母是:□知识分子□工人□农民□公务员□商人
4请问您读大学是在: □跨区域求学□跨省求学□本省求学□本市求学
5大学生活你的社交圈子主要在: □跨校园之间□本校□院系□班级□本宿舍之间 6请问您大学生活中担任过: □学生会主席□组织部□文化部部长□班长或团支书□其他院系或者班级干部□未担任过任何职务
7请问您大学生活中在社团担任的职务:□负责人职务□某个部担任负责人□担任成员□没有任何职务
8请问您大学生活中在社会实践方面:□寒暑假课余时间都会参加□每年寒暑假会参加□只是毕业钱参加过□从来没有
9请问你大学学习成绩排名在:□前10%□中等偏上□中等偏下□后10%
10请问您大学期间获得奖学金情况:□多次获得院校奖学金□多次获得系奖学金□获得次数比较少□没有获得过
11大学毕业后希望找到的工作:□可以跨行□更看重发展前景;找到本专业最好□找不到也无所谓□专业相关就可□专业必须对口,不然浪费所学知识
12电脑操作知识,办公软件,打字速度:□熟练□一般□只会基本操作□速度慢 13您希望找到的工作在食宿方面:□可自己解决,公司不提供食宿也无所谓□最好公司协助解决□需要提供食宿)
14在朋友圈子里,您扮演的角色:□领导者□协调者□参谋者□随从者□特例独行者
15工作地点希望在:□服从公司安排□华南地区□华东地区□华北地区□西部地区 16您希望找到的工作是一份:□长期的事业□一份长期的工作□毕业了就先就业□解决生活问题
17进入公司发展,你的发展方向是成为一个:□优秀的管理者□优秀的专业技术人才□优秀的员工□普通员工就行 二填空题(10分)
1您选择应聘本公司的三个最重要原因: 2应聘本公司您认为自身具备的三个优势:
3您认为在大学生活中您那些能力得到了提升(三个方面):
4您在公司3年的发展计划:3年后您将晋升到( )职位,收入达到( ) 5进入公司您最想从事的岗位( )和期望能够的工作地点( ) 三问答题(10分)
物流行业是一个比较辛苦的行业,工作地点都是在比较偏的地方,同时经常会加班,也会经常面临工作地点的调动,如果进入公司您将怎样面对这些问题?
第五篇:it面试笔试题集
笔试不多,就三道题
1、名词解释:软件工程
2、写出完整的程序,求大于1且小于参数n的偶数的和,输出结果
3、写出你对软件测试的认识,尽量详细。(就是能写多少写多少!)
考官从办公室(面试现场)随意选取一个简单物品,假定是一个喝水的带广告图案的花纸杯,让应聘人对它设计出尽可能多的测试用例。
测试项目:杯子
需求测试:查看杯子使用说明书
界面测试:查看杯子外观
功能度:用水杯装水看漏不漏;水能不能被喝到
安全性:杯子有没有毒或细菌
可*性:杯子从不同高度落下的损坏程度
可移植性:杯子再不同的地方、温度等环境下是否都可以正常使用
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透
跌落测试: 杯子加包装(有填充物),在多高的情况摔下不破损
震动测试: 杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路公路航空运输
测试数据:测试数据具体编写此处略(最讨厌写测试数据了)。其中应用到:场景法、等价类划分法、因果图法、错误推测法、边界值法等方法
期望输出:该期望输出需查阅国标、行标以及使用用户的需求
说明书测试: 检查说明书书写准确性
给大家提三个产品:1.手机 2.电饭锅 3.电梯
4.称球问题
称球问题是最经典的一道趣味数学题目,经常出现于各种智力游戏及智力测试中,最常见的题目如下所示:
12个球中,有一个重量与其他的11个不同,但不知道是重还是轻。给你一个天平,只许称3次把这个不标准的球找出来,应该怎么称呢?
分析与解答
首先强调说明两点:
(1)不规则的球不知是轻还是重,一共12个球,因此最后必定是24种可能。
(2)任何时候如果天平相等,那么天平上的球都是标准球,可以作为后续参考
球。如果天平不相等,下次称的时候将其中的一部分球交换位置天平保持不变,那么交换的球都是标准球,反之如果天平发生变化则不标准球就在交换的球之中。
为了使读者查看方便,12个球用1~12(数字)进行标识,其中已确定是标准球的号码加括号注明:
第一次{1+2+3+4}比较{5+6+7+8}
如果相等,第二次{9+10}比较{(1)+11}
如果相等,证明是12球不规则,第三次和任意球比较,12或者重或者轻两种可能
如果{9+10}>{(1)+11}
第三次9比较10,如果9>10并且{9+10}>{(1)+11}证明是9重
同理如果9<10,证明是10重
同理如果9=10,证明是11轻
如果{9+10}<{(1)+11}
第三次9比较10,如果9>10并且{9+10}<{(1)+11},证明是10轻
如果9<10,证明是9轻
如果9=10,证明是11重
至此刚好8种可能;
如果{1+2+3+4}>{5+6+7+8}
第二次{1+2+5}比较{3+6+(9)}(关键把其中3,5球的位置交换)
如果相等,证明1,2,3,5,6为规则球,不规则球在4,7,8中(见说明2) 第三次7比较8,如果7=8并且{1+2+3+4}>{5+6+7+8}证明是4重
如果7<8,证明是7轻
如果7>8,证明是8轻
如果{1+2+5}>{3+6+(9)}
证明3,5,4,7,8为规则球,不规则球在1,2,6中
第三次1比较2,如果1=2并且{1+2+5}>{3+6+(9)}证明是6轻
如果1>2,证明是1重
如果1<2,证明是2重
如果{1+2+5}<{3+6+(9)}
证明不规则球在3,5中(因为位置变化天平变化)
第三次随便比较1与3,如果1=3,证明是5轻
如果1<3,证明是3重
1>3不可能,因为已经有第一次{1+2+3+4}>{5+6+7+8}
这样刚好也是8种可能。
同样道理,{1+2+3+4}<{5+6+7+8}时处理方法同上,也会有8种不重复的可能性,最终刚好是24种可能。
同样还是称球的问题,如果12个球你解决了,接着再考虑一下如何解决13个球吧,条件完全相同,13个球中有一个非标准球,仍然是称3次找出来,13个球是称3次的极限了。
分析与解答
有了称12个球的经验,下面就解释得稍微简单一些了,分组方式为4,4,5。 第一次仍然为{1+2+3+4}比较{5+6+7+8}
如果相等,第二次{9+10+11}比较{(1)+(2)+(3)}
如果相等证明不标准球是12或者13
第三次比较1和12,如果1>12,证明是12轻
如果1<12,证明是12重
如果1=12,证明不标准球是13
如果{9+10+11}>{(1)+(2)+(3)},则说明不标准球在9,10,11中且为重 第三次9比较10,如果9=10,证明是11重
如果9<10,证明是10重
如果9>10,证明是9重
如果{9+10+11}<{(1)+(2)+(3)},则说明不标准球在9,10,11中且为轻 第三次9比较10,如果9=10,证明是11轻
如果9<10,证明是9轻
如果9>10,证明是10轻
如果{1+2+3+4}>{5+6+7+8}
第二次{1+2+3+5}比较{4+(9)+(10)+(11)}
如果相等,证明不规则球在6,7,8中且为轻
第三次6比较7 如果6=7证明是8轻
如果6<7,证明是6轻
如果6>7,证明是7轻
如果{1+2+3+5}>{4+(9)+(10)+(11)}
证明不规则球在1,2,3中且为重
第三次1比较2,如果1=2证明是3重
如果1>2,证明是1重
如果1<2,证明是2重
如果{1+2+3+5}<{4+(9)+(10)+(11)}
证明不规则球在4,5中(因为位置变化天平变化)
第三次1比较4即可,如果1=4证明是5轻
如果1<4证明是4重
1>4的情况不成立
同样{1+2+3+4}<{5+6+7+8}可以分析得出,合计8+8+9=25种可能。
1. 为什么在一个团队中开展软件测试工作
2.描述软件测试的过程,其中有那些工作要做
3.描述软件开发的过程,完整的开发过程需要完成那些工作
4.你在测试过程中从事那些工作,最擅长那些工作
5.软件测试的类型有哪些
6.比较黑盒测试,白盒测试,单元测试,集成测试,系统测试,验收测试的区别与联系
7.软件测试计划工作的目的,内容,最重要的是哪部分,关键是什么
8.测试用例的设计方法有哪些,描述一个具体的例子
9.测试用例的关键是什么
10.描述测试用例设计的完整过程
11.软件测试的评审过程和内容
12.性能测试工作的完整过程,目的,最关键的是什么
13.缺陷跟踪记录包含哪些,如何提高高质量的记录
14.使用什么工具进行软件测试的跟踪管理,描述管理的过程
15.单元测试和集成测试,描述工作实际开展的情况
16.工作中哪些需要改进,期望的工作环境
17.软件配置管理工作开展的情况和认识
18.对RUP.CMM,CMMI,XP,PSP.TSP的认识
19.与开发人员如何进行有效的沟通的
2.
1、导入导出Oracle数据文件的相关命令
2、Ghost的主要用途和常用方法
3、写出Weblogic控制台访问地址(端口缺省)
4、在Red Hat中,从root 用户切到userl用户,写出命令
5、软件测试份哪些阶段?各阶段的含义
6、等价划分法和边界值分析法的含义
7、测试用例包括哪些内容
测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
8、 手工修改Tomcat端口,在那个文件里?
9、 WinRunner分几种录制模式,有什么特点?
10、WinRunner 运行测试脚本时,有哪些模式?在什么情况下使用?
11、 写表单(右图的)我记不下来
12、 上机题:
(1)怎么把C: est目录配制成FTP目录,供远程端使用
(2)怎么配置Weblogic域?
3. 面试中常问的非技术类问题:
1.简单介绍一下你自己。
2.对自己做个评价,优点、缺点。
3.自己做过的项目,详细介绍一下。
4.实习经历,在实习过程中遇到哪些问题,如何解决的?
5.你对公司有什么问题要问吗(对公司有什么要了解的)?
技术类的问题主要就看对技术的掌握程度和自己的综合能力了。
百度移动终端研发工程师笔试题,题量不大,2个小时,有点难度。
1.写一个字符串逆序的程序,时间复杂度和空间复杂度最低,效率越高越好。
2.实质:二叉树的层序遍历,每层的结点用单链表输出。
3.1-N(N最大32000,且未知),内存只有4K,找出其中的重复数
4.编程题,比较复杂,是个系统设计题,与《编程之美》中3.2,电话号码对应英语单词类似。
百度软件开发工程师一面问题:
1.有101个数,为[1,100]之间的数,其中一个数是重复的,如何寻找这个重复的数,其时间复杂度和空间复杂度是多少?
2.Java中抽象类与接口的区别。
3.进程与线程之间的联系与区别。(多家公司都在问,好好研究一下)
4.谈谈对设计模式的认识与理解,简单介绍一下你所知道的设计模式。(多家公司都问,Android方向面试必考的)
5.线程、多线程相关(必问)
6.Linux常用的命令,shell编程,grep命令的使用。
7.海量数据查找或者排序,有资源限制要求。(常考的)
建议:简历中对自己的专业技能要实事求是的写,突出自己的重点,不宜托大,面试官面试时提问的依据就是简历上的内容。百度的工作环境很好,做技术的员工给人的感觉就是虽然人家的技术水平很高,但是都比较谦逊。百度确实是一个不错的互联网公司。
Sina无线客户端开发工程师面试
笔试的题目和7月22日实习生的题目差不多。面试主要问了:
1.二叉树的一些基础知识。
2.Java多线程,对stop()方法的认识,如何安全的终止一个线程。
3.设计模式相关的问题
4.谈谈你对面向对象编程中继承的认识
5.排序算法
网易2012校招无线客户端开发笔试,题目不太难,比较基础。
1.面向对象编程中多态的概念,用伪代码展示出来。
2.斐波那契数列编程,效率越高越好(详见《编程之美》2.9)
3.60W长度为32的字符串一次性读入内存中,大约占用多少内存空间?
4.一个X向量n,如何求其内部的最大距离。
5.在浏览器中输入,从输入到页面在浏览器中显示出来,期间发生了哪些过程,越详细越好。
6.简单介绍一下Android系统中的Activity,Service, Intent, ContentProvider组件。
7.编程解析一段josn格式内容,并在界面上显示出来。
8.英文阅读,考察英语能力。
9.网络应用分析,发挥自己的主观能动性和积累。
搜狗2012校招笔试
搜狗的题目出的很全,所有职位的题目都在一份卷子上,涉及到数据结构、网络、操作系统、算法、软件工程等多方面,根据自己所投递的职位,有针对性的选择要答的题目即可。
金山2012校园招聘笔试
为了保险,做了运维的题目,难度不大,主要是网络和Linux操作系统方面的,稍微准备一下即可。答题的时候自我感觉良好,结果没收到面试通知,被鄙视了,o(╯□╰)o
Android开发工程师面试中经常会问到的问题
1.Activity的生命周期(最基本的)。
2.Android基本框架结构。
3.Android终止一个进程的方法,如何彻底终止一个程序。
4.如何改写程序,改变android手机中返回键的功能(西安TCL研究院技术面试)。 一般来说,大公司的校园招聘中首先看的还是基础,有工作或者实习经验的会重点考虑,多问一些在实习中的项目细节,同时会问一些算法,建议认真研读《编程之美》《编程珠玑》之类的书籍。首先要做好充足的准备,打好基础,其次还要看一些算法、设计的内容,一面以后的技术面问的题目都有一定的挑战性。如果有实习或者项目经历,可以大大增加校招中简历筛选通过的机率。对于互联网公司,特别喜欢海量数据的排序、搜索,网上类似的资源很多,可以看看。技术更新永无止境,要时刻保持清醒的头脑,不断学习,充实自己,才能在竞争中不被淘汰,祝大家好运,找到心仪的工作。