目录
Chap1 测试基础 ............................................................................................................. 2
Chap2 测试设计 ............................................................................................................. 4
Chap3 算法 .................................................................................................................. 12
Chap4 设计题............................................................................................................... 19
Chap5 逻辑题............................................................................................................... 21
Chap6 编程及代码题 ..................................................................................................... 26
Chap7 计算机基础........................................................................................................ 38
1. C/C++ ............................................................................................................... 38
2.
JAVA ................................................................................................................ 40
3. 多线程:.......................................................................................................... 41
4. 网络编程.......................................................................................................... 43
Linux:............................................................................................................. 44
5.
Chap 8 项目和背景....................................................................................................... 48
Chap9 外部工具 ........................................................................................................... 49
1.
Selenium........................................................................................................... 49
2. Ruby-Watir ....................................................................................................... 50
3. QTP: ................................................................................................................. 51
LoadRunner....................................................................................................... 52
4.
Chap1 测试基础
附件 1 的 19-21 页是一个模拟的面试场景,其中有不少经典题型和问题。不过已经在网上广为流传,建议
了解其中面试思路为主,题目不要照搬太多。
1. 黑盒测试和白盒测试常用的测试方法有哪些?举例说明。
答:白盒测试:逻辑覆盖法,主要包括语句覆盖,判断覆盖,条件覆盖,判断条件覆盖,条件组合覆
盖、路径覆盖。
黑盒测试:等价划分类,边界值分析,错误推测法等
2. 静态测试和动态测试的概念。
答:静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检
查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找
错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和
分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步
的查错,并为测试用例选取提供指导。
动态方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,
这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。所谓软件的动态测试,就是通
过运行软件来检验软件的动态行为和运行结果的正确性。目前,动态测试也是公司的测试工作的主要方式。
根据动态测试在软件开发过程中所处的阶段和作用,动态测试可分为如下几个步骤:1、单元测试 2、集
成测试 3、系统测试 4、验收测试 5、回归测试。
3. 等价类有几种,含义分别是什么?
答:等价类分为以下几类:
有效等价类和无效等价类
有效等价类就是对程序的规格说明有意义的,合理的输入数据所构成的集合,利用有效等价类可
验证程序是否实现了规格说明中的功能和性能。
无效等价类是那些对程序的规格说明不合理或者无意义的数据所构成的,为了验证程序做其不应
作的事情。
4. 等价类划分的优缺点。(答出一些使用过程中的体会即可)
答:优点:考虑了单个数据域的各类情况,避免盲目或随机的选取输入数据的不完整性和不稳定性,
同时可有效控制测试设计的数量。
缺点:对组合情况考虑不足,同时等价类划分基于等价类中的输入都能产生相同的效果,在很多情况
下用例选择不当会产生问题(如边界)。
5. 边界值测试方法的优缺点。
答:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输
入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
不过边界值分析法与等价类划分法一样,没有考虑输入之间的组合情况,因此需要进一步结合其他测
试用例设计方法。
6. 等价类划分的原则(了解大概即可,关键看是否会使用)。
答:等价类划分的原则如下:
在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.
在输入条件规定了输入值的集合或者规定了 “必须如何”的条件的情况下,可确立一个有效等价
类和一个无效等价类.
在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.
在规定了输入数据的一组值(假定 n 个),并且程序要对每一个输入值分别处理的情况下,可确立
n 个有效等价类和一个无效等价类.
在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等
价类(从不同角度违反规则).
在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的
划分为更小的等价类.
7. 性能测试:如何评价系统的极限性能?
答: 基本点:并发度、响应时间、单位时间吞吐量、系统稳定性、多场景。
加分点:新旧版本对比,性能瓶颈分析方法(雪崩、线性拐点等)。
8. 判断测试活动中止的条件
答:从以下几个角度分析,包括:无新发生 bug 且严重性高的老 bug 已修复;bug 收敛;某一级别
bug 低于一定比例;时间耗尽;满足特定覆盖率。另外,可以说说在以前的项目测试是如何结束的。
9. 常见测试模型?
答:常见的软件测试模型包括 V 模型、W 模型、H 模型、X 模型和前置模型。([注]:具体解释太长了,
见附件 1 的前几页。)
Chap2 测试设计
1. 配置文件测试设计
题目:一个程序需要根据配置文件,将本地的多个文件(model.0, model.1, model.2…)分发到不同机房
的不同机器上去。其中,配置文件格式如下:
#机房数量
SITE_NUM : 5
#第 0 个机房机器数量
SITE_0_HOST_NUM : 10
#该机房第 n 个机器的 ip
SITE_0_HOST_0 : 192.168.0.1
SITE_0_HOST_1 : 192.168.0.2
。。。
SITE_0_HOST_9 : 192.168.0.10
SITE_1_HOST_NUM : 10
SITE_1_HOST_0 : 192.168.1.1
SITE_1_HOST_1 : 192.168.1.2
。。。
#文件数量
MODEL_NUM : 5
#第 n 个文件在第 m 个机房需要的备份数
MODEL_0_REP_NUM : 0 : 3, 1 : 3,2:3, 3:3:4:3
MODEL_1_REP_NUM : 0 : 3, 1 : 3,2:3, 3:3:4:3
MODEL_2_REP_NUM : 0 : 3, 1 : 3,2:3, 3:3:4:3
MODEL_3_REP_NUM : 0 : 3, 1 : 3,2:3, 3:3:4:3
MODEL_4_REP_NUM : 0 : 3, 1 : 3,2:3, 3:3:4:3
分发要求:一台机器上不能布置多份相同的文件
每台机器上要求分发的文件数量尽量均匀
问题:请设计测试用例。
答:各种边界值;不同机器的 IP 重复;在某机房的需要的备份数超过了机器数;
2. 杯子的测试(校招)
答:冒烟测试:速度装一杯水,是否漏水
功能测试:漏水测试,透明度测试,卫生情况测试,杯口平滑测试,重量测试,均匀度测试
压力测试:抗摔测试,抗高温测试
欢迎添加
3. 描述bs 这类模块的功能,设计测试用例【标记】
strstr 测试(可以扩展到其他函数测试,主要考察边界,基本情况,鲁棒性,性能等方
4.
面是否考虑全面,实习生2 面)
答:基本情况;边界值;鲁棒性;性能以及其算法优化;
5. 请使用等价类划分的测试方法完成用例设计。
题目: 设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在 1990 年 1 月~2049
年 12 月,并规定日期由 6 位数字字符组成,前 4 位表示年,后 2 位表示月。
问题:现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。
答:
划分等价类并编号,下表等价类划分的结果
输入等价类
有效等价类
日期的类型及长度
6 位数字字符
年份范围
月份范围
在 1990~2049 之间
在 01~12 之间
无效等价类
有非数字字符
少于 6 位数字字符
多于 6 位数字字符
小于 1990
大于 2049
等于 00
大于 12
设计测试用例,以便覆盖所有的有效等价类在表中列出了 3 个有效等价类,编号分别为①、⑤、
⑧,设计的测试用例如下:
测试数据 期望结果 覆盖的有效等价类
200211 输入有效 ①、⑤、⑧
为每一个无效等价类设计一个测试用例,设计结果如下:
测试数据 期望结果 覆盖的无效等价类
95June 无效输入 ②
20036 无效输入 ③
2001006 无效输入 ④
198912 无效输入 ⑥
200401 无效输入 ⑦
200100 无效输入 ⑨
200113 无效输入 ⑩
6. CP 命令设计测试用例(5 分钟)
答:主要从异常、功能和性能三方面考虑:
异常
参数异常:源和目标参数异常:包含特殊字符;参数超长;指定的位置实际不存在
拷贝对象异常:非法的执行权限;存储介质有损坏;非法的文件格式和内容
执行过程异常:拷贝到一半断电;拷贝过程中硬盘满;拷贝过程中源或目的被删除
功能
文件
不同文件大小:0,1k,10k。。。
不同的文件类型:文本,二进制,设备文件。。。
目录
包含各种文件类型
包含子目录,目录深度
目录文件数量很多
针对文件和目录分别验证拷贝的准确性,完整性。
性能
场景:
拷贝大文件
拷贝目录中存在大量小文件
跨文件系统间拷贝
跨存储介质间拷贝(硬盘到 U 盘。。。)
构造源的各种磁盘分布(磁盘扇区分布。。。)
并发执行拷贝
关注的性能点:拷贝时间, CPU,内存,磁盘 IO
7. 如何测试模板(10 分钟)
题目:百度首页是由模板展现,请问如何对它进行测试;
要求:不需要考虑性能相关因素。建议多从用户行为和使用环境角度进行测试
(考察点:测试能力+思维系统性+思维发散性)
答:
展现检查:文字图片内容,链接,一致性
数据传递:字符串长短与截断;特殊字符;中英文;空格;下拉条提示
兼容性检查:不同浏览器,不同操作系统,不同分辨率
用户行为:窗口拉大,放小;字号大小;编码格式;刷新;前进后退
8. 白盒测试对子程序进行测试(15 分钟)
题目:本流程图描述了某子程序的处理流程,现要求用白盒测试法对子程序进行测试。
要求:根据白盒测试常用的以下几种方式:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件
覆盖(条件组合覆盖)、路径覆盖六种覆盖标准,从供选择的答案中分别找出满足相应覆盖标准的最小的测
试数据组并简述各种测试方法。
程序入口
y>1
and
z=0
否
y=2
or
x>1
返回
否
是
x=x/y
是
x=x+1
供选择的答案
x=3 y=3 z=0;x=1 y=2 z=1
x=1 y=2 z=0;x=2 y=1 z=1
x=4 y=2 z=0; x=3 y=3 z=0; x=2 y=1 z=0; x=1 y=1 z=1
x=4 y=2 z=0; x=1 y=2 z=1; x=2 y=1 z=0; x=1 y=1 z=1
x=4 y=2 z=0
x=4 y=2 z=0;x=1 y=1 z=1
参考答案:
语句覆盖 E:语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个语
句至少被执行一次,语句覆盖是一种比较弱的覆盖标准
判定覆盖 A:也称分支覆盖,是指选择足够的测试用例,使得运行这些测试用例时,被测程序的
每个判定的所有可能结果至少出现一次
条件覆盖 B:是指选择足够的测试用例,使得运行这些测试用例时,判定中的每个条件的所有可
能结果至少出现一次
判定/条件覆盖 F:是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有
可能结果至出现一次,并且每个判定本身的所有可能结果也至少出现一次
多重条件覆盖 D:是指选择足够的测试用例,使得运行这些测试用例时,每个判定中条件结果的
所有可能组合至少出现一次
路径覆盖 C:是指选择足够的测试用例,使得运行这些测试用例时,程序的每条可能执行到的路
径都至少经过一次
9. Baidu hi 聊天消息收发的测试思路(10 分钟)
问题:请给出 BAIDU hi 聊天消息收发的测试思路?(10 分钟)
(考察点:基本测试思路)
参考答案:主要从以下几个方面来考察:正常测试、异常测试、不同的消息类型、组合测试、长度极
值、是否延迟、是否丢失、是否被篡改、安全性
10. 登录界面测试(10 分钟)
参考答案:希望可以对测试点做分类划分,如功能、UI、性能、安全
11. 测试自动贩卖机 (20 分钟)
题目: 测试自动贩卖机,场景:贩卖机将用在露天的繁华的大街上
(考察点: 主要考察逻辑思维、思维的发散性)
参考答案:
大概可以从以下几个方面来考虑:
考虑到管理员的功能:如添加货物功能、定价等功能
考虑到界面外观、用户说明的
容错考虑比较多的
12. 三角形测试(20 分钟)
题目:一个程序,从输入框中读取三个整数值,这三个数值代表了三角形三边的长度。程序显示提示
信息,指出该三角形究竟是不规则三角形、等腰三角形还是等边三角形。(注:不规则三角形指三角形中
任意两边不相等,等腰三角形指有两条边相等,等边三角形指三条边相等)
要求:假设你将作为一名测试工程师对该程序进行测试,你会采用什么方法进行测试用例设计?请写
出你采用的方法、测试用例设计的过程以及最后的测试用例。(30 分钟)
(考查点:考察测试思维的严谨性,答全难)
参考答案:可以采用等价类划分的方法进行测试用例的设计。
等价类表:
输入条件
有效等价类
无效等价类
是否三角形的三条边
是否等腰三角形
⑴A>0
⑵B>0
⑶C>0
⑷A+B>C
⑸B+C>A
⑹A+C>B
⒀A=B
⒁B=C
⒂C=A
⑺A<=0
⑻B<=0
⑼C<=0
⑽A+B<=C
⑾B+C<=A
⑿A+C<=B
⒃
A!=B&&B!=C&&C!=A