测试面试题目 -答案

1、 一套完整的测试生命周期?

测试计划、测试设计与开发、测试实施、测试评审与测试结论

2、 你所熟悉的测试用例设计方法有哪些?分别以具体的例子说

明在实际测试中的应用。

1.等价类划分

划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类. 2.边界值分析法

边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.

使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据. 3.错误推测法

基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.

错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例. 4.因果图方法

前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

3、 你认为做好测试用例设计工作的关键是什么?

白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果 黑盒法用例设

计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题

4、

在Linux系统中,一个文件的访问权限是755,其含义是什么?

参考答案: 755表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组

用户及其他用户对该文件具有读和执行权限。

5、 Linux中,如何从root用户切换到普通用户?

参考答案:su

su user1 切换到user1,但切换后的当前目录还是root访问的目录

su – user1 切换到user1,并且当前目录切换到user1的根目录下(/home/user1/)

6、 Linux中,如果你正在运行一个进程,而且你觉得在退出帐户

时该进程不能结束,使用什么命令且简单描述其语法

用途:不挂断地运行命令。

语法:nohup Command [ Arg … ] [ & ]

7、

数据库知识

为管理业务培训信息,建立3个表:

S(S#,SN,SD,SA) ,S#,SN,SD,SA分别代表学号,学员姓名,所属单位,学员年龄 C(C#,CN), C#,CN分别代表课程编号,课程名称

SC(S#,C#,G) S#,C#,G分别代表学号,所选的课程编号,学习成绩

(1) 使用标准SQL嵌套语句查询选修课程名称为‘数据结构’的学员学号和姓名? 答:select s# ,sn from s where S# in(select S# from c,sc where c.c#=sc.c# and cn=’ 数据结构’)

(2) 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位?

答:select sn,sd from s,sc where s.s#=sc.s# and sc.c#=’c2’

(3) 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位?

答:select sn,sd from s where s# not in(select s# from sc where c#=’c5’)

(4) 查询选修了课程的学员人数

答:select 学员人数=count(distinct s#) from sc

(5) 查询选修课程超过5门的学员学号和所属单位? 答:select sn,sd from s where s# in(select s# from sc group by s# having count(distinct c#)

8、 简述软件自动化测试工具的原理。

测试工具的优势在于可部分地替代人工的测试过程,通过测试工具来模拟人的手工操作,这个过程中会记录操作的对象和操作的顺序,然后在回放时按照录制的顺序操作这些对象。 能重复不断地执行,能精确判断数值和字符对象。自动化测试工具把测试用例用自动的方式执行,例如,自动地产生数据,自动地打开应用程序,自动地查找控件, 自动地输入数据,自动地操作控件,自动地收集测试结果,自动地与预期结果进行比较等。

9、 简述负载测试(Load Testing)、压力测试(Stress Testing)和性能测

试(Performance Testing)之间的异同。

要点: 三者在手段和方法上有一定程度相似,但测试的目的不同。 负载测试(Load Testing)是通过模拟实际软件系统所承受的负载条件、改变系统负载大小和负载方式来发现系统中存在的问题;

压力测试(Stress Testing)是在强负载下(如最大数据量、大量并发用户等)稳定性进行测试,查看应用系统在峰值(瞬间使用高峰)使用情况下的行为表现,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等,确认系统是否具有良好的容错能力和可恢复能力;

性能测试是为获取和验证系统性能指标而进行的测试。

10、 附加题

谈谈软件测试技术,以及一个优秀的软件测试人员应该具备的素质

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4