当前位置:文档之家› 2JAVA和测试基础面试题及答案

2JAVA和测试基础面试题及答案

软件测试面试题目1、软件的评审一般由哪些人参加?其目的是什么?评审是对软件元素或项目状态进行评估的活动,用于确定与预期结果之间的偏差和相应的改进意见,通常由人来执行。

除了在项目早期发现缺陷和降低项目的失败风险外,项目中需要进行评审的其他原因包括:分享知识、培训团队成员、为管理层决策提供依据、为过程改进提供信息以及项目所处状态评审。

评审参与人员:用户、客户或有关部门开发人员,测试人员,需求分析师都可以,就看处于评审哪个阶段。

2、你认为做好测试用例工作的关键是什么?首先是理解需求,第二是测试用例编写的方法要熟练,第三就是你的测试经验了,看到某个功能,马上会想到那种测试用例会测出问题。

3、说明缺陷管理的过程?4、软件测试流程?5、你认为做好软件测试计划工作的关键是什么?1. 明确测试的目标,增强测试计划的实用性编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。

因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确2.坚持“5W”规则,明确内容与过程“5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。

利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。

3.采用评审和更新机制,保证测试计划满足实际需求测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。

4. 分别创建测试计划与测试详细规格、测试用例应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。

测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。

6、在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?7、根据自己的理解什么是测试用例和测试规程,设计一个测试用例应当从哪几方面考虑?测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。

内容包括测试目标,测试环境,输入数据,测试步骤,预期结果,测试脚本等并形成文档首先你的用例来源于需求分析,那么项目或者产品是否有功能性及非功能性需求呢。

比如说系统可用性需求,网络带宽需求,系统响应性能需求等等。

如果存在这些需求,那么用例设计时就需要考虑这些角度。

其次功能性需求在设计用例时也需要考虑诸如大用户量并发的情况之类的。

再次,测试用例包含容错用例。

最后,测试用例编写的同时,是有等级区分的,有的用例是关键流程或者功能点,那么等级就高;有的用例很少使用,就会低。

这样便于你进行回归或者重复使用。

8、什么是回归测试?回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

自动回归测试将大幅降低系统测试、维护升级等阶段的成本。

9、设计用例的方法、依据有那些?常用的方法有:等价类划分法边界值分析法错误推测法因果图法正交表分析法下面上一个我们的微信登录界面的测试用例你可以参考一下,登录界面功能都差不多的。

10、按阶段划分测试分为那几种类型?各自的侧重点是什么?单元测试、集成测试、系统测试和验收测试(确认测试)每个步骤重点:开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。

集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。

确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。

系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。

目的:第一是确认软件的质量,其一方面是确认软件做了你所期望做的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事情(Do it right)。

第二是提供信息,比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息。

第三软件测试不仅是在测试软件软件产品本身,而且还包括软件开发的过程。

如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。

因此,软件测试的第三个目的是保证整个软件开发过程是高质量的。

JA V A面试题目1、谈一谈你对java中面向对象的理解,面向对象的特征有哪些?抽象抽象是忽略一个主题中与当前目标无关的方面,把现实世界中的概念转换为对象。

有利于从众多变化的状态中抽离出不变的东西。

有利于使用继承来构造类的体系,实现多态。

抽象是概念建模和业务流程建模很重要的工具,是面向对象体系的基石,而不是一堆杂乱、混乱、重复、散沙般的、关系错综复杂的类。

继承是一种连结类的层次模型,并且允许和鼓励类的重用,提供了一种明确表示共性的方法。

继承意味着能声明一个类型,而且能继承父类中的所有操作和数据,同事还有机会声明自己的新方法以改进、具体化、代替或者扩展父类中的方法使用父类为应用领域建立层次模型,提供代码重用并允许定制。

多态一个对象变量可以指向多种实际类型的现象。

动态绑定:一个对象在运行时自动选择正确的方法进行调用的现象过程:1、编译器检查对象的声明类型和方法(虚拟机预先为每个类计算一个方法表)2、重载解析:编译器检查方法调用中提供的方法参数类型(方法原型:名字和参数列表,返回值不是原型的一部分)3、静态绑定:如果方法是private,static,final的,或者是一个构造器4、动态绑定:虚拟机必须调用对象变量所指向的对象的实际类型和匹配的方法版本。

封装把数据和行为结合在一个包中,并对对象的使用者隐藏数据有关的实现过程,封装赋予对象“黑盒”特性。

2、谈一谈你对重载和覆盖的理解?方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。

子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。

如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。

Overloaded的方法是可以改变返回值的类型。

3、Java中有几类数据类型,分别是什么?基本数据类型包括byte、int、char、long、float、double、boolean和short。

4、谈一谈你对linux中find和grep的理解?Find 查找文件,grep从文件中查找内容5、基本数据类型怎么比较?引用数据类型用那些?怎么比较基本数据类型用==进行比较,引用数据类型用equal进行比较,需要复写父类中的equal6、请说出你所知道的集合类都有哪些?Collection<--List<--Vector实现一个类似数组一样的表,自动增加容量来容纳你所需的元素。

使用下标存储和检索对象就象在一个标准的数组中一样。

你也可以用一个迭代器从一个Vector中检索对象。

Collection<--List<--ArrayList实现一个数组,它的规模可变并且能像链表一样被访问。

它提供的功能类似Vector类但不同步Collection<--List<--LinkedList实现一个链表。

由这个类定义的链表也可以像栈或队列一样被使用Hashtable:实现一个映象,所有的键必须非空。

为了能高效的工作,定义键的类必须实现hashcode()方法和equal()方法。

这个类是前面java实现的一个继承,并且通常能在实现映象的其他类中更好的使用。

HashMap:实现一个映象,允许存储空对象,而且允许键是空(由于键必须是唯一的,当然只能有一个)。

WeakHashMap:实现这样一个映象:通常如果一个键对一个对象而言不再被引用,键/对象对将被舍弃。

这与HashMap形成对照,映象中的键维持键/对象对的生命周期,尽管使用映象的程序不再有对键的引用,并且因此不能检索对象。

TreeMap:实现这样一个映象,对象是按键升序排列的。

7、String 和StringBuffer的区别?JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。

这个String类提供了数值不可改变的字符串。

而这个StringBuffer类提供的字符串进行修改。

当你知道字符数据要改变的时候你就可以使用StringBuffer。

典型地,你可以使用StringBuffers来动态构造字符数据。

8、谈一谈你对java跨平台的理解?一处编译随处运行9、C/S与B/S的区别C/S是Client/Server的缩写。

服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQL Server。

客户端需要安装专用的客户端软件。

B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或SQL Server等数据库。

在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。

浏览器通过Web Server 同数据库进行数据交互。

10、静态变量和实例变量的区别?静态变量属于类,不用实例化就已经存在,所有的实例共享同一个静态变量,可以通过类名和实例名来访问。

实例变量属于实例,每个实例都有自己的这个变量,只能通过实例名来访问。

相关主题