面试准备题目


1、 请你做下自我介绍
各位面试官好,我叫XXX,来自XXX,XXXX年X月出生,2014年7月毕业于XXX大学,学的是XXX专业,我有X年多的软件测试经验,我在上家公司主要做功能测试,从事一个网站的建立项目,因为个人发展原因,今天来到贵公司面试

2、 你不是本专业怎么会进入软件测试行业?
我从事这个行业主要是因为我在大学的时候经常利用业余时间在电脑城从事电脑硬件组装和系统软件的安装,对软件行业比较感兴趣,后来又有同学从事这个行业说这行发展前景比较客观,我自己也通过各种方式了解到这行也是一个技术性较强的行业,所以本人选择了转行到软件测试行业

3、 你为什么离职到这儿(假如上一份工作在外地)(或者问你愿不愿意长期待在上海这个大都市?)
因为我通过了解上海的软件测试行业发展比较迅速,对测试行业的人才需求比较旺盛,有利于我个人才而且需要软件测试岗位的公司比较多,另外,众所周知,上海是一个国际化大都市,环境优美,人才济济,在这里可以学到很多东西,而且上海到我家比较近,只要三个多小时,在这里工作我也可以照顾到家里的情况,上一家公司里我住的地方比较远,交通不怎么便利,来回要三个小时

4、 你对上一家公司如何评价
我的上家公司环境蛮不错的,整个项目组的成员都很团结,氛围很浓郁,遇到不懂的问题我能够和同事们进行沟通,但是考虑到我自身发展的因素,我还是被迫辞职了

5、 你都会哪些技能
会Oracle、SQLserver数据库技术,Linux的基本命令和环境部署,JAVA、VBscript语言,这些我之前在大学和公司都有学过这些东西,还有QTP的自动化技术,文档管理工具SVN,测试管理工具QC,缺陷管理工具禅道等都在平时工作中学习过,其中业余时间我还学习了Python语言,Jmeter测试工具等

6、 介绍一下你上一个项目
我的上一个项目是上海融巧科技有限公司网站项目,主要做的是一个关于该公司的网站模块的测试,主要有六大模块如首页、课程介绍、融巧咨询、学员天地、关于我们等,首先我们的开发、测试和业务人员与客户进行沟通,了解需求,业务人员编写需求规格说明书,之后进行讨论总结出评审后的需求说明书,然后项目经理派发任务给开发和测试人员,开发根据需求规格说明书和设计说明说进行开发工作,之后进行单元测试,我们测试则进行测试计划的设计、评审、测试用例的设计,之后开发完成开发工作,并且搭建好测试环境之后我们首先进行冒烟测试,测试主要功能是否完备环境通不通,之后进行案例的执行,执行过程中做好测试记录,并且用缺陷管理工具禅道对缺陷进行发现、记录、跟踪,一轮测试完成后进行第二轮和第三轮的回归测试,之后编写测试总结和报告。

7、 介绍下你们的项目流程
答:(1)接到项目后,由项目经理、需求人员、开发经理、测试经理和客户进行沟通,分析需求,由需求人员编写需求文档,编写之后进行需求评审,看看有没有不能完成或者有必要增加或修改的地方
(2)评审过后,由需求人员把需求文档细化成需求规格说明书,由项目经理编写项目计划并分配任务,开发人员根据需求说明书、设计说明书进行软件开发,然后开发人员进行单元测试。这时我们测试人员了解客户需求,根据需求规格说明书编写测试用例之后对测试用例进行评审,在评审中注意有无遗漏或有误的地方,修改案例
(3)测试用例评审ok后,这时开发人员也开发好了,搭建好测试环境,我们首先进行冒烟测试,看看软件关键功能可不可以正常用,环境通不通。然后我们根据测试用例进行测试,在测试过程中遇到bug后,用缺陷管理工具记录bug,并根据缺陷生命周期跟踪bug,复测通过后关闭缺陷
(4)所有测试执行后,缺陷也关闭了,然后测试人员编写测试总结报告,完成后到运行维护阶段。

8、 介绍下你们的测试流程(或者问你怎么去做测试工作的?或者问你平时在单位是怎样开展工作的?)
首先会召开需求分析会议,参加人员有产品(或者叫业务)、开发和测试,主要是探讨需求需要的一些功能点,完了之后,开发就排期进行开发,我们就根据主管写出来的计划、分配到的任务编写测试用例,写完之后会进行用例评审,需要修改的就修改整理形成最终的用例版本,之后开发人员将软件开发完成并部署到SIT测试环境后,我们会依据测试用例来执行测试,测试过程中,对于发现的BUG提交到缺陷管理工具禅道,并跟踪bug状态直至关闭,首轮测试完后还需要第二轮回归测试或者第三轮回归测试(回归几轮都是根据具体的可用测试时间来决定的,一般我们都是回归测试一轮就结束)最后测试完成后编写测试报告。

9、 你是否了解网络协议
局域网常用的三种通信协议分别是TCP/IP协议、NetBEUI协议和IPX/SPX协议TCP/IP协议毫无疑问是这三大协议中最重要的一个,作为互联网的基础协议,没有它就根本不可能上网,任何和互联网有关的操作都离不开TCP/IP协议。不过TCP/IP协议也是这三大协议中配置起来最麻烦的一个,单机上网还好,而通过局域网访问互联网的话,就要详细设置IP地址,网关,子网掩码,DNS服务器等参数。

TCP/IP协议族中包括上百个互为关联的协议,不同功能的协议分布在不同的协议层, 几个常用协议如下:

1、Telnet(Remote Login):提供远程登录功能,一台计算机用户可以登录到远程的另一台计算机上,如同在远程主机上直接操作一样。

2、FTP(File Transfer Protocol):远程文件传输协议,允许用户将远程主机上的文件拷贝到自己的计算机上。

3、SMTP(Simple Mail transfer Protocol):简单邮政传输协议,用于传输电子邮件。

4、NFS(Network File Server):网络文件服务器,可使多台计算机透明地访问彼此的目录。

5、UDP(User Datagram Protocol):用户数据包协议,它和TCP一样位于传输层,和IP协议配合使用,在传输数据时省去包头,但它不能提供数据包的重传,所以适合传输较短的文件。

HTTP协议简介

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

HTTP协议的主要特点可概括如下:

1.支持客户/服务器模式。

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。

由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。


10、什么是系统测试
答:系统测试是指针对软件产品系统进行的测试,是做完单元测试和集成测试后进行的测试,总体包含功能测试与非功能测试。功能测试是验证软件系统功能是否实现系统需求规格的测试过程,而非功能测试是验证系统是否在实现功能测试的基础上,系统的容错性、稳定性、异常处理能力,以及高强度输入的处理能力、可用性、性能等是否符合用户要求的测试过程。

11、你使用过哪些测试工具
我用过文档管理工具SVN,自动化测试工具QTP,缺陷管理工具禅道、测试管理工具QC等等

10、 你认为你在项目中最自豪的事是什么?
最自豪的是我经常能发现别人不能发现的BUG,因为我写的测试用例是根据测试需求最基本的功能点进行设计的,且设计方法比较科学,测试覆盖率比较高,并且在测试完成后我都会总结一些问题进行补充测试用例,对遗漏的问题进行总结,对下一次问题进行改进

11、 你认为你的优点和缺点分别是什么
我的优点是执行力比较好,上面下达的任务我能按部就班的完成,有比较好的责任感,会将一件事认真负责的做下去,遇到困难不会退缩,会想法涉法询问有经验的同事查找资料等方法去解决,我有良好的团结协作意识,对于一个共同完成的项目会将自己的事情主动做好,并且也协助同事做好他的事情,发现一个问题会紧追不舍,我的文档整理能力也比较强,缺点就是本人技术水平有限,不能完全独自一个人解决所有的问题,这点自己会在以后的工作中和业余时间通过不断学习来改进我的方法和技术

12、 你在项目中遇到最窘迫的事,你是怎么解决的
记得我刚进公司的时候,处理问题的能力比较差,对公司的业务部怎么熟悉,做事效率比较低,花了一个月时间才适应过来,后来环境熟悉后,我知道了最为一个团队,每个人都各司其职,各有所长,只要大家在一起多交流沟通,都能成功解决自己遇到的问题

13、 你的未来规划是什么
本阶段我的规划是不断加强我的功能测试技术,等到进贵公司后,尽快熟悉公司的业务和操作系统,以最快的速度适应公司的工作节奏,之后打算自己提升在自动化技术以及性能测试方面的能力,利用自己的业余时间不断学习和进步

14、 你们公司有多少人?项目组有多少人?测试组有多少人?
我们公司有五百多人,项目组有四五十人之多,测试组有15个人

15、 你认为开发与测试之间的关系是什么?
开发与测试其实并不是相互对立的关系,他们其实是站在统一战线上的战友,他们都是为了提高软件质量,共同满足客户需求的过程,是一种相互协作的关系

16、 Web测试包括哪几类测试?(界面测试、功能测试、可用性测试、客户端兼容性测试、安全性测试)

17、 黑盒测试与白盒测试的区别
(1)黑盒测试也称功能测试,通过测试来检测每个功能是否都正常使用,测试中把程序看成一个黑盒子,在完全不考虑内部程序结构和特性的情况下 ,执行测试。黑盒测试是以用户角度,从输入数据与输出数据的对应关系出发进行的测试。 缺点是:发现不了本身设计或规格说明的问题。黑盒测试设计测试用例的方法包括:等价类划分法、边界值分析法、判定表法、因果图法、正交法、错误猜测法等
(2)白盒测试是基于代码的测试,白盒是指盒子是可视的,清楚内部是如何运作的,白盒测试人员要全面了解程序内部逻辑结构、对所有的逻辑路径进行测试。 常用的白盒测试用例设计方法有:语句覆盖法、判定覆盖法、条件覆盖法、判定条件覆盖法、路径覆盖法

18、 V模型与w模型的区别
V模型主要是测试的基本层次 W模型主要是开发与测试同事进行

19、 你认为做好测试计划工作的关键是什么?
测试任务的分配,怎样安排测试的时间和人天的安排,测试的策略,用什么样的测试方法和测试用例的方法,还有风险和解决方案,考虑到在以后的测试过程中会遇到什么样的阻碍以及怎么去解决出现的问题

20、 当开发人员认为你提的问题不是Bug时,你怎么办?
首先确认是否自己对需求理解错误或者操作不当导致,如果不是则确认是否是需求不明确,如果需求不明确则告知项目经理,并由项目经理确认;如果是双方理解差异则也只有请项目经理判断

1)尽量保持面对面的沟通,尽量表达清楚,逻辑思维清晰,明确问题的利害2)保持耐心,将问题阐述完整并得到对方确认3) 如果跟开发人员对问题存在争议,直接向上级或者产品经理确认问题
21、 什么是冒烟测试
冒烟测试是对应用程序的重点功能进行测试,主要是看测试的软件主要功能能否实现,环境通不通
22、 什么是回归测试
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,因此首先要意识到回归测试的必要性,不要麻痹大意。而且回归测试假如时间非常紧,我们需要注意选择最合适的测试用例执行回归

23、 按照测试阶段划分,测试分哪几类?(单元测试、集成测试、系统测试、验收确认测试)

24、 常见的测试方法有哪些?(功能性测试:所有功能模块是否都实现功能;性能测试:内存CPU占用以及瓶颈数据是否达标;压力测试:最大峰值;负载测试检验系统的能力最高达到什么程度;易用性测试;安装测试;界面测试;配置测试;文档测试;兼容性测试;安全性测试)

25、 软件测试和软件质量的关系
软件测试不能保证软件质量,软件质量是由多重因素影响的,当我们改进规范化、科学化软件开发过程,利用更高深的开发技术和测试技术的时候能够使软件质量得到一定的保证

26、 单元测试、集成测试、系统测试的侧重点是什么
单元测试也叫模块测试,是对软件开发的代码进行的测试,
集成测试主要是看模块之间的衔接和参数的传递是否准备好
系统测试主要看系统的运行与其他软件的兼容性,包括功能和非功能测试

27、 测试计划包含哪些内容
5个W一个H
Why:为什么要进行测试,测试的目的是什么
What:测试哪些方面,不同阶段的工作内容
When:测试不同阶段的起止时间
Where:相应的文档、缺陷存放位置,测试环境等
Who:测试的人员安排
How:测试的策略方法以及测试工具

28、 编写测试用例的注意事项
其中最重要的是选取最有价值的最有效的测试用例去覆盖,选择的测试用例不能过于简单也不能太复杂,要尽量用最少的测试用例覆盖尽可能多的功能模块

29、 Bug的生命周期
录入缺陷后,测试人员应该跟踪一个缺陷的整个生命周期,从new到closed的所有状态包括new、open、fixed、rejected、delay、closed和reopen这些状态。
提交缺陷到缺陷管理工具,这时缺陷的状态是new。当确认是bug后,打开缺陷,此时缺陷状态为open,并且指派给相应的开发人员。开发人员进行修改把缺陷状态置为fixed修改状态,修改好后等待测试人员回归测试。如果开发人员认为不是bug有权拒绝修改把缺陷状态改为rejected。如果开发人员认为暂时不需要修改或暂时不能修改,则延后修改,缺陷状态为delay。修改状态的bug经过测试人员复测通过后,则关闭bug,状态为closed。如果复测不通过,则重新打开bug这时的缺陷状态是reopen,等待开发人员重新修改。


30、 QA和QC他们的共同点和区别
QA是质量保证人员 QC是质量控制人员
他们都是对质量进行管理,都是在查找错误,但是QC查找的是产品错误,而QA查找的是过程错误
31、 你的测试职业发展规划是什么
我的目前发展规划是积累更多的测试经验,多学点技术,一步一步脚踏实地向高级测试工程师迈进,同事将自己向自动化和性能测试方面靠近

32、 一套完整的测试应该由哪些阶段组成(测试需求1、测试计划2、测试设计3、案例评审4、测试执行5、测试评估)

33、 有哪些测试方法:
功能测试、性能测试、负载测试、压力测试、易用性测试、安装测试、界面测试、文档测试、配置测试、兼容性测试、安全测试、恢复测试、敏捷测试等

34、 软件测试用例设计方法或者问你怎样编写测试用例
首先根据需求提炼测试功能点,依照我们的各种测试用例方法如:
黑盒测试用例方法有:等价类划分,边界值,因果图,正交表,场景法,错误猜测法,判定表法
白盒测试用例方法有:语句覆盖法、判定覆盖法、条件覆盖法、判定条件覆盖法、路径覆盖法 差不多就这些了

35、 集成测试与系统测试的关系(集成测试主要根据概要设计说明书,系统测试的主要根据需求设计说明书;集成测试是系统模块间的衔接以及参数的传递等的测试,系统测试是整个系统测试的运行以及与其他软件的兼容性)
36、 怎么看待加班问题
能接受加班,因为一方面是我个人的原因,由于自己能力和技术上达到不到公司要求水平,我可以利用加班时间去弥补我自己这方面的不足,另一方面是项目的变动或者时间比较紧,客户的需求是我们测试工作的首要考虑因素,所以为了将产品尽早上线我也愿意加班
37、 如何测试一部电梯
功能性方面:首先看看这部电梯是否能够使用,能不能承载重物,看看使用说明
安全性 看这部电梯有没有产品安全标识,验证在使用过程中是否能够保证安全使用
易用性 方面:看看这部电梯操作是否都能正常,按键能不能操作,,门能否能打开
界面 :先看看电梯外观是否完好无损,有没有破坏的地方,或者设计不合理的地方
兼容性 :看看这样的电梯安装在不同地区的楼层是都都能正常使用,在不同的温度,人员重量下是否正常使用
性能测试:看看电梯的控制主板是否正常,是否需要等很长时间
压力测试 :实验用此电梯的极限重量的物品放在电梯里面,看电梯是否会报警
可靠性:长时间使用这部电梯看看电梯正常工作的最长时间是多少

在项目中如果第一轮测试不能完成怎么办?第二轮测试不能完成怎办?
第一轮不能完成的话:
我会选择加班来增加我自己的工作量,其次会挑选一些主要功能模块或者优先级别高的测试案例进行执行,如果相差时间很多的话会和上级反映情况
第二轮不能完成的话:
如果时间比较紧,就讲将第二轮测试当做回归测试,检验主要功能是否实现,将重点放在出现缺陷集中的地方进行测试

Oracle数据库

SQL语言的特点
(1)集合性
所有SQL语句都接受集合作为输入,并且返回集合作为输出
(2)统一性
SQL语句提供了统一的命令,方便用户学习和使用,包括增删改查
(3)易于移植性
所有的关系型数据库都支持SQL语言,因此用户可以将技能从一个DBMS转移到另一个
ORACLE数据库的版本
ORACLE database 11g enterprise 企业版 客户端是PL sql
Where 后面不能跟聚合函数(avg(sal)、count()、max()、min()、sum())删选用having子句代替

1、简单的增删改查
(1)增加:insert into 表名(列1,列2) values(值1,值2);
例如:
Insert into persons(firstname,lastname) values(‘峰’,’赵’);
(2)删除:delete from 表名 where 列名称=值;
例如:
Delete from persons where name=’乐乐’;
删除所有行:delete from 表名;
Delete from 表名;
Delete和truncate区别
Delete删除表的内容,oracle会产生回滚记录。可以用rollback语句撤销
Truncate会删除表结构,删除速度比delete快,不会产生回滚记录
(3)修改:update 表名 set 列名=新值 where 列名=某值;
例如:
Update peson set name=’小小’ where addess=’杭州’;
(4)查询:select
from 表名;
Select 列名 from 表名;
Select 列名 from 表名 where 列 运算符 值;
Between…and/in/like用于where中
例如:
Select from persons where city like ‘N%”;
Select
from persons where city like ‘%g’;
Select from persons where city like ‘%lon%’;
Select
from persons where lastname in(‘adams’,’carter’);
Select from persons where age between 10 and 20;

2、倒序升序(desc、asc)
3、去重(distinct)
4、两表连接查询:内连接、外连接(左外连接、右外连接、全部外连接)
A inner join B on A.a=B.b
A left join B on A.a=B.b
A right join B on A.a=B.b
A full join B on A.a=B.b
5、创建表:
Create table 表名称(
列名1 数据类型,
列名2 数据类型,

6、什么是主键约束?什么是外键约束?
1.``主键约束(``**PRIMARY** **KEY**``)

1) ``主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。
2) ``是不可能(或很难)更新.
3) ``主键列上没有任何两行具有相同值(即重复值),不允许空(``NULL``).
4) ``主健可作外健
外键约束主要用来维护两个表之间数据的一致性。

7、计算一个列的平均值
Select avg(column_name) from 表名
8、group by/having
例如:查询emp表中平均工资大于2000的部门编号
select deptno from emp group by deptno having avg(sal)>2000;
9、count()用法
例如:查询emp表中一共有多少员工
Select count(
) from emp;
10、varchar2和char类型的区别
Varchar2()用于存储可变长度的字符串,节省资源空间char用于存储指定长度的字符串,它的效率较高,但是占用的资源空间较多
11、会写存储过程吗

Java题目

1、 面向对象程序设计具有哪几个特点?
封装性、继承性、多态性
2、 类是封装对象的属性和行为的载体,在Java中对象的属性以成员变量的形式存在,对象的方法以成员方法的形式存在
3、 冒泡排序、直接选择排序、反序排序
4、 根据半径求圆的周长和面积

自动化

1、 录制模式有哪几种?区别分别是什么?
正常录制、模拟录制、低级录制

2、 你们项目使用对象库编程还是描述性编程
对象库编程优势:
(1)可以通过Complete Word、“F7”等多种方式进行高效编程,这个特性描述性编程不具有
(2)对象库编程有一个比较好的特性,假设脚本中引用了同一个对象10多次,这个对象的名字之前取的不好,后面要求更改的时候,此时只需要在对象库中改一次就能达到批量更改脚本中相应对象内容了,非常容易维护。
(3)对象库编程不容易打错字,因为有Complete Word
描述性编程优势:
(1)不用维护庞大的对象库,不过需要维护庞大的代码。这其实也算不上优势了
(2)描述性编程可以完成一些特殊的需求,比如上一节中讲到的情况

3、 你们使用的是什么语言来实现自动化?用的什么工具?
VBScript 语言,用的是QTP自动化工具

4、 TO和RO区别?
Test Objects(测试对象)和Runtime Objects(运行时对象)
测试对象(TO)和运行时对象(RO)的区别:TO就是被添加到对象库中的对象,RO其实是被测软件在运行时实际所运行的那个对象。但是无论是TO还是RO,它们都是QTP封装的对象,共同使用QTP封装好的一些属性,RO有点特殊,它可以调用自身接口的属性。

5、 GetRoProperty、GetToProperty、SetToProperty分别是什么方法

6、 自身接口属性和封装接口属性的区别
·封装接口是对象的不完全属性,有些对象的属性值是封装接口无法获取得到的
·运行时的对象(RO)可以看见自身接口的所有属性,而对象库中的测试对象(TO)只可以看见被封装的一些接口
·封装属性是不能修改实际运行时的对象的,只能获取属性的值,而调用自身接口就可以改变实际运行时的对象的
·封装属性是支持TO和RO的,自身接口只支持RO

7、 怎么调用自身接口属性
对象.Object.自身属性
对象.Object.自身方法

8、 第二种描述性编程方式怎么用
Set a=Descriptioon.Create()

9、 你在项目里遇到哪些常见对象无法识别的原因?分别怎么解决?
(1)先打开浏览器,在运行软件
(2)对象可以被QTP识别,但是加载的插件不正确
(3)同一个界面中存在两个或两个以上的属性相同的对象
(4)实际运行时的对象发生了改变导致与对象库不匹配




面试过程中的问题
1、自己项目不清,在自我介绍的时候没有将其具体介绍到当中去,在说项目的时候将自己担任的角色融入其中,具体做了什么工作说清楚
2、概念比较模糊,对有的问题没有分清概念就回答问题
3、答非所问,经常抓不住考官的问题侧重点,要把握每个问题的目的,迎合考官的思路去回答问题
4、语言组织能力欠缺,不能结结巴巴,显得很不熟练,没有做过这个项目一样,回答问题要孜然,表情和动作要随和,不能太拘谨
5、不能有冷场的情况,遇到回答不上来的问题可以说:对不起,这个问题有点模糊了,请容我思考一会或者说很长时间没有接触了,有点淡忘了
6、回答问题不能过于简洁,要用长句,将主动权操纵在自己手里,尽量拖延自己回答的时间




第一部分 (工作经验考验)
1、说说你们公司测试的一个基本测试流程是什么?(重要)
首先会召开需求分析会议,参加人员有产品(或者叫业务)、开发和测试,主要是探讨需求需要的一些功能点,完了之后,开发就排期进行开发,我们就根据主管写出来的计划、分配到的任务编写测试用例,写完之后会进行用例评审,需要修改的就修改整理形成最终的用例版本,之后开发人员将软件开发完成并部署到SIT测试环境后,我们会依据测试用例来执行测试,测试过程中,对于发现的BUG提交到缺陷管理工具禅道,并跟踪bug状态直至关闭,首轮测试完后还需要第二轮回归测试或者第三轮回归测试(回归几轮都是根据具体的可用测试时间来决定的,一般我们都是回归测试一轮就结束)最后测试完成后编写测试报告。
(系统内部集成测试(System Integration Testing) SIT

用户验收测试(User Acceptance Testing) UAT

SIT在前,UAT在后,UAT测完才可以上线)

2、 你们项目主要是做什么的,有些什么功能,业务逻辑是怎样的?
这个主要就是看公司具体的项目是什么,了解清楚功能模块,对主要功能模块做业务逻辑的一个描述就行。
3、 测试的过程中,还用过一些什么工具吗?
有就有,没有就没有,一定要如实回答!比如在测试接口或者简单施压的时候用到了 jmeter;平时需求文档、测试完成后的操作手册会用到SVN;测试过程中会用到缺陷管理工具QC、禅道,bugzilla等等
4、 如果简历上写了,MySQL、Linux等,一般会问,掌握的程度怎么样?
如实回答,对于测试人员来说,mysql基本的增删改查都会,Linux基本命令都会,也会linux环境的项目部署。掌握不熟练的就不要写。
5、 你们需求分析会议主要目的是什么?
讲解此次项目主要是做什么的,达到一个什么样的目的,探讨项目功能点,针对不清楚的及时提问,同时业务人员针对大家提出的建议和发现的问题整理出一份最终的需求文档供开发和测试工作使用。
6、 如果需求过少,你应该怎么办?
首先根据自己的业务经验提出疑问,
然后再与有经验的同事讨论学习,
如果确实只是需求少,可以当做一软件的一个优化测试就需要考虑到其影响范围,并最终确定测试范围。
7、 编写测试用例的时候,会用到什么方法?
等价类、边界值、因果图法、正交实验法、错误推测法、场景法等。
接着又问了一个:你觉得你在写用例的时候用到了吗?
我的回答是用到了,
(1) 等价类划分是我们用的最多的案例编写方法:如一个栏位里面限制了只能输入字母和数字组合,那么有效等价类就是字母和数字的组合、而单独输入字母或者数字或者其他字符类型就是无效等价类
(2) 边界值划分也是用的比较多的一个案例编写方法:如一个栏位要求字符长度控制在4-16位,那么我编写案例的时候就可以划分为0-3、4、5-15、16、17这几类长度、划分的范围有多个值的选择一个就行
(3) 因果图法一般和判定表驱动分析法(也可简称判定表法)是同时使用,最典型的就是一些查询页面,因为我们需要组合多个查询条件,从而验证预期的查询结果是否正确。
(4) 场景法我们一般使用的也很多,特别是一些业务流程比较复杂的测试,比如信用卡进件系统中,不同的个人信息在流程到达准入欺诈检查节点的时候可以造成不同流程节点走向,比如客户A个人征信记录良好,则流程会正常继续下去,而客户B因为个人征信记录有不良行为,则流程可能就此终止,信用卡申请失败。这个时候这种案例编写方法特别管用
8、 会写测试计划吗、包含哪些内容?
一般都说:没有写过,是我们主管写的,但我们会接触过这个文档,且我们的工作安排都是依照测试计划严格执行的。大概包含有:目的、背景、测试范围、测试开始结束时间、测试策略、测试人员安排、测试环境、风险评估等等。



第二部分 (工作经验考验)
1、app测试与web测试的最大的异同在哪里?或者说你遇到的最大的异同是什么?
答: 相同点:
同样的测试用例设计方法;
同样的测试方法;都会依据原型图或者效果图检查UI;
测试页面载入和翻页的速度、登录时长、内存是否溢出等;
测试应用系统的稳定性
不同点:
app的中断测试:来电中断、短信中断、蓝牙、闹钟、插拔数据线、手机锁定、手机断电、手机问题(系统死机重启)app的安装卸载:全新安装、升级安装、第三方工具安装、第三方工具卸载、直接删除卸载
消息推送测试、手机授权测试、前后台切换、网络环境(wifi/2G/3G/4G/无网络)
兼容性测试:web项目考虑不同浏览器的兼容;app需要考虑手机不同操作系统、不同机型、不同屏幕等
web自动化测试工具较常用QTP,而手机自动化monkey、monkeyrunner
遇到的最大的异同,直接从上面选择一个来说就行。

2、遇到版本迭代,通常是怎么处理的呢?(什么是版本迭代请百度)
答:1)准备一份关键业务测试用例(主要业务场景),每次版本迭代需要测试。2)对于增加的功能点,原来没有的测试用例需要增加,修改的功能点对应的测试用例需要修改,其中特别需注意修改点可能影响到的功能。

3、 需求评审哪些人参加?
答:一般需要产品经理,研发老大,测试老大参与;如果必要时可以要所有的开发人员和测试人员都参加,这样会对需求更加明确,也更加直接的了解需求和业务。

4、你们的bug是怎么管理的?对于复现概率不高的bug是怎么处理的?你下一次测试的时候对于这样的bug点是怎么做的?
答:公司有缺陷管理平台来进行管理,我们用的是禅道。
关于复现率较低的bug,在实际工作中采取的是全部上报,但是我会在标题中注明重现率低或偶现。
在工作中我们如果有时间的话可以多费些心思在重现bug上面,学会分析可能产生的原因,同时在发现bug后第一件事情就是要将证据保留下来,截图,错误信息等等,这些及有助于证明这个bug的存在,也有助于bug的重现,所有这些应该培养成习惯。

5、你对你们qa认为做的最好的地方和你认为做的不好的地方在哪里?
答:如果公司没有这个职位就说我们公司没有开设这个职位。QA是质量管理职位,很多大公司有专门的质量管理部。
在项目开发过程,会由QA进行全程的监督,查看是否按照CMMI的标准进行软件开发。文档是否齐备,开发基线是否明确,是否存 在 风险,BUG的削减是否能够完成目标之类的。

6、你们的用例怎么分级的?
答:用例的优先级:重要功能、主业务流程优先,优先级别高;次要功能模块或者界面UI测试优先级低一些,一般就这样来分级的,比如:
我们信用卡项目中的进件系统,对于进件系统的申请流程走向和每个节点系统自动处理的结果我们案例的优先级比较高,而比如说录入客户信息功能中,栏位字符长度控制的相关测试案例优先级就比较低。

7、你对测试工作的职业发展有什么看法?
答:做好功能测试,培养好自己的测试逻辑思维与工作方式以及习惯,然后向高级测试工程师转变。并且打算提升自己在自动化和性能测试方面的测试技能。

8、测试工程师应该具备什么品质?
1)耐心细心:因为有时候测试工作涉及的业务内容复杂且枯燥,这时候就要求我们能明察秋毫且不轻言放弃
2)负责任:对自己测试的项目有一定的责任心。对于发现的BUG,一定要确认开发已经修复且没有造成其他影响才能关闭缺陷。
3)良好的沟通能力:主要表现在和业务沟通了解需求的时候可以高效的了解清楚不明白的地方;发现BUG问题的时候,简单明了的向开发说清楚问题所在,提高工作效率。
4)团队协作能力:不管在哪个工作环境,工作都需要大家团队协作才能完成,假如我们是执行者,我们必须严格按照领导的计划按时完成分配的任务,假如我们单独负责一个项目就需要懂得和同事如何分工协作,如何合理安排每一个资源,这样我们才能最大限度的提高工作效率。

第三部分 (理论考验)
软件测试笔试——简答题(一)1.什么是软件测试?
答:软件测试就是为了发现程序中的错误而执行程序的过程。
2.你认为测试工作在整个产品或项目研发过程中的作用是什么?
答:1)为了发现程序员在开发中存在的代码以及逻辑错误2)为了审核产品的完成是否符合用户的需求3)为了提高客户的体验4)为了交付更高质量的产品
3.Alpha测试与beta测试的区别(这道题目一般很少问)
答:Alpha测试是公司内部在模拟实际操作环境下进行的一种验收测试,公司内部会组织内部员工、也仍然需要用户的参与。Alpha测试不能由程序员或测试员完成。Beta测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。Beta测试不能由程序员或测试员完成。
4.您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。(上面有类似的题目,以上面的答案为准)
答:熟悉的测试用例设计方法:等价类法、边界值法、错误推测法、场景法。
等价类法:涉及到输入框输入数据的长度、数据类型;会用到这种方法划分等价类;比如项目中某个标题输入框,长度是1-16个汉字,会根据长度、以及数据类型划分等价类设计测试用例;
边界值法:一般涉及到数据范围的,依然像项目中标题输入长度1-16,会用到边界值法;
错误推测法:例如评论框输入,会有不支持iPhone自带表情的输入,系统未做处理,会异常;
场景法:主要依据流程图去划分不同的一个业务场景。具体例子比如登录。
5.您认为做好测试用例设计工作的关键是什么?
答:充分了解需求、灵活运用案例设计方法。以较少的用例覆盖所有的功能模块,满足用户的需求。
6.您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。
答:有开展评审工作。
评审的过程及内容(以会议评审来讲):1)编写评审计划2)评审材料准备好(主要是测试用例)3)提前发布评审通知(OA通知、邮件、或者讨论组发布信息), 同时将评审材料发送给评审组成员,以节约沟通成本4)召开会议评审;针对评审用例检查清单,评审过程中收集相关人员的反馈信息(即问题记录清单),并在此基础上进行测试用例更新,直到评审通过5)评审结束后,测试负责人出测试用例评审报告给到相关人员;评审结果经项目经理同意确认。
7.测试结束的标准是什么?
答:
用例全部通过测试。
覆盖率达到标准。
缺陷率达到标准。
其他指标达到质量标准
8.描述软件测试活动的生命周期?
答:测试周期分为计划、设计、执行、评估、验收。其中:
计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等;
设计:完成测试方案,编写测试用例,从技术层面上对测试进行规划;
执行:搭建测试环境,执行测试用例,遇到问题提交bug并跟踪解决验证;
评估:记录测试结果,进行测试分析,完成测试报告。
验收:用户进行验收,我们会出用户手册、操作指引,公司有严格的评审流程,以保证每一步输出的有效性。

第四部分 (理论)
软件测试笔试——简答题(二)

1.测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
目的:对整个测试周期中所有活动进行规划,保证项目进度
内容:主要任务是编写测试计划,内容包括测试范围、进度的安排,人力物力的分配,整体测试策略的制定,和风险的评估与规避措施有一个制定等
最重要的:测试策略和测试方法

2.您认为做好测试计划工作的关键是什么?1)明确测试的目标,增强测试计划的实用性2)坚持“5W”规则,明确内容与过程3)采用评审和更新机制,保证测试计划满足实际需求4)分别创建测试计划与测试详细规格、测试用例

3.简述一个标准的缺陷(Bug)跟踪处理过程
生命周期:新建、指派、解决、待验、关闭。一个bug就会经历这些过程,可能有些bug一次修复还没有解决好,我们就需要重新激活,然后指派…..走这一系列的流程直至bug关闭。

4.软件的缺陷等级应如何划分?A类—严重错误,包括以下各种错误: 1. 由于程序所引起的死机,非法退出 2. 死循环 3. 数据库发生死锁 4. 因错误操作导致的程序中断 5. 功能错误 6. 与数据库连接错误 7. 数据通讯错误B类—较严重错误,包括以下各种错误: 1. 程序错误 2. 程序接口错误 3. 数据库的表、业务规则、缺省值未加完整性等约束条件C类—一般性错误,包括以下各种错误: 1. 操作界面错误(包括数据窗口内列名定义、含义是否一致) 2. 打印内容、格式错误 3. 简单的输入限制未放在前台进行控制 4. 删除操作未给出提示 5. 数据库表中有过多的空字段D类—较小错误,包括以下各种错误: 1. 界面不规范 2. 辅助说明描述不清楚 3. 输入输出不规范 4. 长操作未给用户提示 5. 提示窗口文字未采用行业术语 6. 可输入区域和只读区域没有明显的区分标志E类—测试建议

5.一条软件缺陷(Bug)记录应该包含哪些内容?如何提交高质量的软件缺陷(Bug)记录?
答:一条bug信息至少需要以下几条:bug标题,阐述bug大体的内容;bug产生的模块; bug对应的版本;bug严重级别,优先级; bug详细现象描述,包括bug出现的操作步骤,报错日志信息、bug截图等等。
提交高质量的软件缺陷记录需要做到以下几点:
唯一性。一个bug说明一个问题或者说明一类问题
可重现。提供这个bug的精确步骤,要让开发人员容易看懂
一致性。Bug描述及所有信息要前后一致,不可有歧义
完整性。能附带bug现象截图的就带截图,有报错日志的就贴上日志信息
客观性。Bug描述不要带有个人观点,不要对开发人员进行评价,对事不对人

  1. 您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
    我之前所用的软件缺陷管理平台是禅道。
    生命周期:新建、指派、解决、待验、关闭。一个bug就会经历这些过程,可能有些bug一次修复还没有解决好,我们就需要重新激活,然后指派…..走这一系列的流程直至bug关闭。

7.如果有一个bug,只出现一次,怎么处理?
尽量去重现当时的情况,也要提交bug到缺陷管理平台并备注是偶发。

8.您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
个人认为,开发人员可能大多不善表达,但提高沟通效率和改善沟通的效果,作为测试人员可以从以下几个方面来做:1)尽量保持面对面的沟通,尽量表达清楚,逻辑思维清晰,明确问题的利害2)保持耐心,将问题阐述完整并得到对方确认3) 如果跟开发人员对问题存在争议,直接向上级或者产品经理确认问题
维持测试人员同开发团队中其他成员良好的人际关系的关键:
一是真诚,而是团队精神,三是在专业上有共同语言








1、缺陷生命周期
答:录入缺陷后,测试人员应该跟踪一个缺陷的整个生命周期,从new到closed的所有状态包括new、open、fixed、rejected、delay、closed和reopen这些状态。
提交缺陷到缺陷管理工具,这时缺陷的状态是new。当确认是bug后,打开缺陷,此时缺陷状态为open,并且指派给相应的开发人员。开发人员进行修改把缺陷状态置为fixed修改状态,修改好后等待测试人员回归测试。如果开发人员认为不是bug有权拒绝修改把缺陷状态改为rejected。如果开发人员认为暂时不需要修改或暂时不能修改,则延后修改,缺陷状态为delay。修改状态的bug经过测试人员复测通过后,则关闭bug,状态为closed。如果复测不通过,则重新打开bug这时的缺陷状态是reopen,等待开发人员重新修改。

2、缺陷报告处理流程
答:测试人员提交缺陷报告后,由开发经理分配缺陷报告给相应开发人员,开发人员处理缺陷报告,处理完成测试人员进行回归测试,复测通过则提交复测通过报告,最终由测试经理关闭缺陷报告

3、软件生命周期
答:软件计划、需求分析、设计、编码、测试和运行维护

4、瀑布模型和螺旋模型的区别
答:瀑布模型属于线性软件开发模式,瀑布模型是其他模型的基础框架,瀑布模型分为项目立项分析—》需求分析—》设计—》编码—》测试—》运行维护这六个阶段,每个阶段只执行一次测试,因此测试介入太晚,出现重大缺陷时可能导致大面积返工,项目风险比较大。
而螺旋模型属于渐进式软件开发模式,是在瀑布模型基础上每个阶段之前都引入严格的需求分析和风险管理,因此螺旋模型适合规模庞大、复杂度高、风险大的项目。

5、软件测试应从什么时候开始?为什么?
答:软件测试应在需求分析阶段进入。因为1、在软件生命周期每个阶段都会引入缺陷,通常在前期需求分析和产品设计阶段,容易引入80%的缺陷,而剩下的16%缺陷才是编码过程中引入的,最后剩下的4%左右bug只有在用户长时间的使用过程中才能暴露出来。
2、缺陷的修改成本随着软件开发阶段的进行越来越高,因此尽早介入测试,能降低成本
3、软件产品由程序和文档组成,测试内容不仅包括软件产品还包括生产过程使用的各类文档,对文档的测试也很有必要

6、简述项目流程
答:(1)接到项目后,由项目经理、需求人员、开发经理、测试经理和客户进行沟通,分析需求,由需求人员编写需求文档,编写之后进行需求评审,看看有没有不能完成或者有必要增加或修改的地方
(2)评审过后,由需求人员把需求文档细化成需求规格说明书,由项目经理编写项目计划并分配任务,开发人员根据需求说明书、设计说明书进行软件开发,然后开发人员进行单元测试。这时我们测试人员了解客户需求,根据需求规格说明书编写测试用例之后对测试用例进行评审,在评审中注意有无遗漏或有误的地方,修改案例
(3)测试用例评审ok后,这时开发人员也开发好了,搭建好测试环境,我们首先进行冒烟测试,看看软件关键功能可不可以正常用,环境通不通。然后我们根据测试用例进行测试,在测试过程中遇到bug后,用缺陷管理工具记录bug,并根据缺陷生命周期跟踪bug,复测通过后关闭缺陷
(4)所有测试执行后,缺陷也关闭了,然后测试人员编写测试总结报告,完成后到运行维护阶段。

7、测试流程
项目人员、开发人员、测试人员、业务人员确定需求,业务人员编写需求规格书并经过评审。评审后的需求规格书给开发人员和测试人员。开发人员拿到需求规格说明书进行开发工作。测试人员拿到后从中提取测试功能点,编写需求分析文档(需评审),编写测试计划、测试用例(需评审)。开发人员完成开发后,搭建测试环境(开发或者测试负责)。首先进行冒烟测试后再执行案例,在测试过程中做好记录工作,发现、跟踪、记录bug。一轮测试完成后,进行二轮测试(这是个验证过程,看bug是否重现),再进行回归测试。最后编写测试报告及总结。


8、什么是系统测试
答:系统测试是指针对软件产品系统进行的测试,是做完单元测试和集成测试后进行的测试,总体包含功能测试与非功能测试。功能测试是验证软件系统功能是否实现系统需求规格的测试过程,而非功能测试是验证系统是否在实现功能测试的基础上,系统的容错性、稳定性、异常处理能力,以及高强度输入的处理能力、可用性、性能等是否符合用户要求的测试过程。

9、系统测试目的
答:通过与系统的需求定义做比较发现软件与系统的定义不符合或与之矛盾的地方

10、黑盒测试与白盒测试区别
答:(1)黑盒测试也称功能测试,通过测试来检测每个功能是否都正常使用,测试中把程序看成一个黑盒子,在完全不考虑内部程序结构和特性的情况下 ,执行测试。黑盒测试是以用户角度,从输入数据与输出数据的对应关系出发进行的测试。 缺点是:发现不了本身设计或规格说明的问题。黑盒测试设计测试用例的方法包括:等价类划分法、边界值分析法、判定表法、因果图法、正交法、错误猜测法等
(2)白盒测试是基于代码的测试,白盒是指盒子是可视的,清楚内部是如何运作的,白盒测试人员要全面了解程序内部逻辑结构、对所有的逻辑路径进行测试。 常用的白盒测试用例设计方法有:语句覆盖法、判定覆盖法、条件覆盖法、判定条件覆盖法、路径覆盖法

11、案例评审是干嘛的?评审的标准是什么?参与人员分别有哪些?有哪几类评审?评审的好处与目的?
答:案例评审是指根据需求编写的测试用例,开发人员业务人员测试人员一起参加讨论,看用例有没有设计有异议、有遗漏或者需要修改、增加的地方。
评审的标准:主要看测试用例对需求的覆盖,测试用例的正确性、全面性,用例是否具有代表性(最少的用例测最多的缺陷),测试用例是否描述清楚,预期结果是否正确。
评审的分类:评审包括部门(内部)评审,公司评审,客户评审。
评审参与人员:对应业务人员、开发人员、测试人员
评审的好处与目的:完善我们的用例,防止测试人员有漏测的情况,通过评审把一些功能点和开发沟通清楚,就不会有到测试的时候说不清的情况。

12、概述下软件设计和编码阶段工作流程
答:概要设计阶段产出概要设计文档然后到概要设计评审,评审完了进行详细设计,产出详细设计文档,然后对详细设计文档进行评审。评审完了进行正式编码,编码完了进行单元测试,单元测试通过后生成单元测试报告总结。

13、怎么划分bug的严重等级
答:紧急、严重、一般、建议

14、测试结束的标准
答:执行完了所有测试用例并且所有缺陷已复测通过并且关闭或者在商定的范围内

15、软件测试活动有哪几个阶段
答:单元测试-集成测试-系统测试-验收测试

16、一条缺陷记录包括哪些内容?如何提交高质量的缺陷报告?
缺陷所属模块
缺陷级别
相关缺陷用例
缺陷重现步骤
缺陷附加描述
缺陷提交人
缺陷处理人
缺陷状态
尽量使用和开发人员能够交流语言来描述,尽量用最少步骤使缺陷重现,一个缺陷一个报告,注意自己的语气及时报告缺陷。

17、请你详细描述一下测试用例设计的完整过程
答:了解测试用例的测试需求,根据需求及测试策略使用科学方法编写测试用例,根据经验和其他测试方法优化补充测试用例,对测试用例进行评审,改进和优化测试用例。

18、三角形三边为a,b,c根据a、b、c三边,设计三角形的测试用例的具体分析步骤
在三角形计算中,要求三角形的三个边长:A B C 。
1、 当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。
2、若是等腰三角形打印“等腰三角形”, 若两个等腰的平方和等于第三边平方和,则打印“等腰直角三角形”。
3、若是等边三角形,则打印:“等边三角形”。
4、画出程序流程图并设计一个测试用例。
分析一下:
1、构成三角形的条件:任意两边之和大于第三边;
2、构成等腰三角形的条件:任意两边相等;
3、构成等腰直角三角形的条件:任意两边相等,而且两条边的平方和等于第三边的平方和;
4、构成等边三角形的条件:三条边都相等。
那么用什么样的设计方法进行测试用例的设计呢?
一、等价类划分:三角形三条边A、B、C的数据类型不同
二、边界值分析:由于三角形的边长可以是正整数或正小数,所以就不对长度进行测试,那么边界值分析就不用了
三、因果图法:三角形的三条边数据输入组合
我们再分析一下三角形的等价类:
有效等价类:
输入3个正整数或正小数:
1、两数之和大于第三数,如A 2、两数之和不大于第三数
3、两数相等,如A=B或B=C或C=A
4、三数相等,如A=B=C
5、三数不相等,如A!=B,B!=C,C!=A
无效等价类:
1、空
2、负整数
3、非数字
4、少于三个数

三角形测试用例类别
输入条件 有效等价类 无效等价类
是否是三角形 (A>0) (1)
(B>0) (2)
(C>0) (3)
(A+B>C) (4)
(B+C>A) (5)
(C+A>B) (6)
(A<=0) (7)
(B<=0) (8)
(C<=0) (9)
(A+B<=C) (10)
(B+C<=A) (11)
(C+A<=B) (12)
是否是等腰三角形 (A=B) (13)
(B=C) (14)
(C=A) (15)
(A!=B)and(B!=C)and(C!=A) (16)
是否是等腰直角三角形 (A=B)and(A+B=C) (17)
(B=C)and(B+C=A) (18)
(C=A)and(C+A=B) (19)
(A!=B)and(B!=C)and(C!=A) (20)
是否是等边三角形 (A=B)and(B=C)and(C=A) (21) (A!=B) (22)
(B!=C) (23)
(C!=A) (24)


三角形测试用例:用最少的测试用例覆盖所有的有效等价类,而无效等价类每个类型都要覆盖到

序号 输入[A,B,C] 覆盖等价类 输出
1 [3,4,5] (1)(2)(3)(4)(5)(6) 是三角形
2 [0,1,2] (7) 非三角形
3 [1,0,2] (8) 非三角形
4 [1,2,0] (9) 非三角形
5 [1,2,3] (10) 非三角形
6 [1,3,2] (11) 非三角形
7 [3,1,2] (12) 非三角形
8 [3,3,4] (1)(2)(3)(4)(5)(6)(13) 等腰三角形
9 [3,4,4] (1)(2)(3)(4)(5)(6)(14) 等腰三角形
10 [3,4,3] (1)(2)(3)(4)(5)(6)(15) 等腰三角形
11 [2√2,2√2,4] (1)(2)(3)(4)(5)(6)(17) 等腰直角三角形
12 [4,2√2,2√2] (1)(2)(3)(4)(5)(6)(18) 等腰直角三角形
13 [2√2,4,2√2] (1)(2)(3)(4)(5)(6)(19) 等腰直角三角形
14 [3,4,5] (1)(2)(3)(4)(5)(6)(16)(20)(22)(23)(24) 是三角形
15 [3,3,3] (1)(2)(3)(4)(5)(6)(16)(21) 等边三角形
16 [,,,] 无效等价类 错误提示
17 [-3,4,5] 无效等价类 错误提示
18 [a,3,@] 无效等价类 错误提示
19 [3,4] 无效等价类 错误提示



19、你了解CMM吗
答:CMM是衡量企业过程的成熟水平,分为5个等级
初始级:过程的执行是随意而无序的,项目对外而已完全是个黑盒子,客户或高层管理者在项目结束前根本无从着手进行干预控制
可重复级:实施了基本的项目管理和过程控制,比较依赖以往项目的成功经验来确保新的类似项目的成功
已定义级:软件组织具备了规范化的能力,具备可量化、文档化的过程管理,进一步减少了项目成功对于人的依赖性
已管理级:过程的执行时有序的,对外而言,具备一定得透明度,客户或高层管理者在项目执行过程中能够加以干预和控制(加入了评估和度量机制)
优化级:关注改进的持续性,融入了技术改革、缺陷预防等理念。
19、一个完整的测试过程一般包括哪些阶段?
测试需求的分析和测试计划的设计、
测试用例的设计(包含案例评审)、
测试环境的搭建、
测试执行、
缺陷分析和报告、
测试报告和总结
20、如何制定测试计划?
答:软件测试计划是对测试过程的一个整体上的设计。通过收集项目和产品的信息,分析整理出测试范围、测试风险,并且对测试用例、工作量、资源和时间等进行估算,对测试采用的策略、方法、环境、资源、进度做出合理的安排。因此,测试计划的要点包括以下内容:
a、确定测试范围
b、制定测试策略
c、测试资源安排
d、进度安排
e、风险及对策
20、测试分工有什么好处?
答:测试分工能避免人员思维局限性,同样一个案例,由不同人来执行,可能发现不同的问题,因为不同测试人员思维方式、能力、经验不一样,因此合理分工、交叉测试能避免遗漏Bug
21、测试环境的搭建需要注意哪些?
答:根据具体系统和需要进行环境搭建,大致可能包含:
测试数据的准备、
测试工具的准备、
测试机器和操作系统的准备、
安装包的准备、
网络环境的搭建,
服务器的配置和搭建等
脚本的开发
22、进入正式测试前要做什么?
答:应该先进行冒烟测试,冒烟测试通过后才能进入正式测试,提前准备好数据和搭建好测试环境
23、你认为如何衡量一个Bug的质量?
答:从Bug自身考虑—-衡量一个Bug的质量应该看这个bug的级别比较高或者Bug是迄今为止尚未被发现的级别高的缺陷
再考虑录入Bug的质量——一个合格的录入缺陷应包含:
发现问题的版本、
问题出现的环境、
是否可重现、
问题重现的操作步骤、
预期行为的描述、
错误结果的描述及缺陷截图

最后考虑Bug报告本身描述是否正确清晰,不要有错别字,不能把几个Bug录入到同一个缺陷编号。

24、回归测试要注意哪些问题?
答:回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,因此首先要意识到回归测试的必要性,不要麻痹大意。而且回归测试假如时间非常紧,我们需要注意选择最合适的测试用例执行回归

25、一般缺陷报告有哪些内容:
答:1、发现问题的版本
2、出现问题的环境
3、问题重现步骤
4、错误行为的描述
5、预期行为的描述
26、测试结束后还要做哪些工作?
答:测试结束后应该及时编写测试报告和测试经验总结。客观地报告测试过程、执行情况、缺陷情况、软件质量情况等。还要及时总结测试经验,提炼出一些典型bug类型,总结成bug模式,对于有效发现bug的案例总结出来,供他人学习和借鉴。

27、软件测试原则:
1.所有的软件测试都应追溯到用户需求
2.尽早地和不断地进行软件测试
3.完全测试是不可能的
4.测试无法显示软件潜在的缺陷
5.充分注意测试中的群集现象
6.程序员应避免检查自己的程序
7.尽量避免测试的随意性

第一章 软件测试行业
1、软件测试行业简介
2、严重bug的危害
3、软件测试的发展的几个阶段
软件调试-》专门的软件测试部门-》第一次定义-》成为专门的学科-》与开发的融合
软件测试的定义: 软件测试是以发现错误为目的而进行的程序,或系统的执行过程
4、软件测试行业的现状与前景
国内软件测试行业与国外软件测试行业对比:
5、测试人员的现状:浮躁
6、软件测试人员自身要求

面试问答题
1、目前的软件测试行业的现状
2、现在的测试人员的能力水平:能力水平偏低,尤其是在案例设计能力、测试的规范化执行、自动化测试和性能测试等方面。
3、软件测试发展的过程
4、你对软件测试发展的认识,方向(会出现更多更专业的测试工具、自动化测试会越来越普遍、开发人员的测试意识增强)


第二章 软件测试组织
1、软件的测试的团队
2、软件测试的组织形式的分类:专职和兼职 项目型和维护型
3、如何融入一个项目团队
(学习需求文档、
查阅用户手册、
学习设计文档、
查阅bug库、
编写设计案例、
虚心的学习态度)
4、测试的规范
a、测试用例的规范:测试用例的模板
b、缺陷报告的规范:
c、测试报告:
d、测试工具使用是否规范

5、测试提交流程: 开发好了代码—-开发人员自己测一下(单元测试)——下发给测试人员——冒烟测试(验证主要功能是否正常、环境是否通)—冒烟测试不通过,返回开发人员
——冒烟测试通过——-进入正式的测试

面试问答题
1、你在上家的测试组织是怎么工作
2、怎么融入新的团队?怎么开展新工作?
3、如果给你带一个团队,你会做哪些工作?


第三章 软件测试人员的素质要求
1、良好的心理素质
2、正确的测试态度
3、缜密的思维能力
4、好奇心
5、责任感
6、沟通能力

面试问答题:
1、你觉得自己是否适合做软件测试的工作
2、测试人员是否需要掌握开发语言
3、测试人员除了测试技术外,还要掌握哪方面技能?


第四章 软件工程与软件测试
1、什么是软件工程?
包括软件需求的形成、需求分析、设计、实现、测试、安装部署、运行维护直到软件被更新或者被替换成新的版本。
过程管理、产品管理、资源管理和质量管理
2、软件生命周期
生命周期可以分成6个阶段:计划—>需求分析设计编码测试运行维护
3、软件工程是贯穿在整个软件生命周期的各个阶段
4、软件工程的发展历史:初始阶段-工程化阶段-工厂化阶段-过程管理阶段-关注个体阶段
5、软件工程的目的:提高软件的质量和生产率,最终实现软件的工业化生产
6、项目三要素:成本、进度、质量
7、软件开发模型
A、线性模型
B、渐进模型
C、变换模型
7.1线性模型—瀑布模型(需求明朗)
项目立项——需求分析——设计——-编码——测试—-运行维护
瀑布模型的缺点:产品很迟才能被看到,这会给项目带来很大的风险,尤其是集成的风险。
7.2渐进式模型—-螺旋模型(需求不明朗,软件开发初期阶段)
需求分析—-风险分析—-设计、编码——测试与评审——-需求分析
7.3变换模型
基于模型设计语言的开发模式
8、CMM与软件测试
CMM:软件工程能力的评估方法
CMM把软件企业的过程管理能力划分为5个等级:
A、 初始级:混乱无序的过程,项目的成功与否在于几个关键人员的努力
B、 可重复级别:实施了基本的项目管理和过程管理,依赖过往成功的项目经验来确保新的类似项目的成功。
C、 已定义级:遵循一定的标准来进行管理。具备可量化的、文档化的管理。
D、 已管理级:加入了评估和度量机制
E、 优化级:缺陷预防,技术的改革

9、测试用例要素
项目名称 前置条件 编号 正反例 案例描述 缺陷重现步骤 预期结果 实际结果 优先级 执行人 执行日期等
10、sql 语言特点
集合性 统一性 可移植性
11、SQL语言分类
DQL数据查询语言 DML数据操纵语言 TCL事务控制语言 DDL数据定义语言 DCL数据控制语言
12、对于一个杯子的思考维度
功能性 安全性 易用性 界面 兼容性 性能测试 压力测试 可靠性 本地国际化
13、测试报告的内容
测试背景、参考资料、测试范围、目的、标准、测试过程、时间、环境、方法、测试情况的分析、覆盖率、总结(人、天)、经验、风险点、附件(案例、截图、缺陷报告)
14、需求文档如何测试
正确性、必要性、优先级、明确性、歧义性、完整性、一致性、可维护性

测试用例设计方法
1、等价类划分
针对输入数据子集合,找出有代表性的数据
步骤(1)划分等价类并编号
(2)建立等价类表
(3)设计测试用例以便覆盖所有的有效等价类
(4)设计新的用例(用有意义的值)
2、边界值分析法
应用场合:输入条件明确取值范围,或规定取值个数,或者明确有序集合
步骤:(1)划分等价类
(2)分析样点(上点、离点、内点)
(3)创建等价类表
(4)确定测试用例
3、判定法
多种输入条件下执行不同的操作
条件桩 条件项 动作桩 动作桩
(1)标识输入和输出条件
(2)构造判定表
(3)逐列分析条件组合 填入动作项
(4)简化判定表
(5)生成测试用例
4、因果图
描述系统的输入输出的因果关系以及输入与输入之间的约束关系
输入与输出的关系:恒等 非 或 与
输入与输入之间的关系:异 或 唯一 要求 强制
步骤:(1)标识输入与输出条件
(2)画出因果图
(3)将因果图转化成判定表
(4)简化判定表
(5)生成测试用例