2014 年华为校园招聘软件测试笔试试题
华为软件测试笔试题主要分三部分:软件基础题、数据结构编程题、数据库题
其中软件基础题题型有:选择(约 50 题,多为软件工程知识:黑盒测试、软件测
试流程等、数据库 SQL 语言、二叉树中序遍历、数据类型在内存中存储情况、面向对象的含
义、队列、栈、堆等)、程序填空(1 题,二叉树先序遍历)、写运行结果,还有一个忘记
了。
数据结构编程题:给出一组数据,要求按照降序排列。写出设计思想和程序。(冒
泡排序)
数据库题:多为问答题,有 SQL 语言查询,关系数据库......(面试官没让我做,
但是瞟了一眼题目,有一大版,感觉有点深)
面试中涉及:1.介绍过去两年的项目情况(内容、自己担任的工作)
2.数据库底层运行(数据在数据库中如何存储,orical 和 SQL server 之间如何联系,如何
确定数据库大小以及需要的服务器个数,现场出题『多表间查询,分组』......)----不断
纠缠于数据库,头都大了!
3.数据结构运用(对排序的认识:说明快速派序的思路,还知道哪些排序方法,现场出题『打
印三行*,第一行 1 个,第二行 3 个,第三行 5 个......』)
4.面向对象(举例说明面向对象如何进行封装,类的继承,重载,面向对象有哪些好处)
面试总结:
1.笔试通过(为自己增添信心,要继续看书巩固知识,理顺知识框架)
2.面试中语言组织要更加简洁、准确
3.将过去两年的项目认真回顾一下,理出一套说法
4.面试前准备复习时,听收音机减轻压力
5.专业复习要作时间计划有针对性进行
对测试人员要求比较简单啦,题目比较少,也不难。
总共只有 4 道题,第一道测试对整型及指针的字节数掌握
第二道题改错题,是对循环次数多一少一的掌握
第三道题指出错误题,是对指针及多重指针的掌握
第四道是给出一个数组进行从小到大的排序,最简单的冒泡算法即可
附加题又是很有意思的数学题,给 1000 个小球要求放到 10 个盒子里,问如何放使当别人报
出 1000 以内的数字时都能通过取不同的盒子使盒子里小球的总数为所说的数字。这个题的
答案是前 9 个盒子分别放 2^(n-1){n<=9}个小球,最后一个盒子放 489 个.
不过附加题当时没有答出来,回去的路上想到的,呵呵。面试的是两个年轻人,问的问题没
有什么重点,面试总结倒是很有章法,说我对数据库的掌握太少,此次面试 over 了
本来也不是很重视,不过我想是要好好调整一下自己的心态了,确定发展的方向,等待下一
次好的机会。
前面几道大题是基础形的判断、选择、阅读理解题,涉及到网络、通信、软件工程等等,都
是大英文。不过不难,CET4 的水平就差不多了,但是重要的还是计算机方面的一些基础知
识。后面的几道大题如下:
1、有 A、B 两个水杯,都没有刻度,也不允许做刻度。A 杯装满水是 5 升,B 杯装满水是 3
升。不借助别的任何工具,只用这两个杯子如何精确的得到 4 升水?
A 满 5
B 空
A 将 B 满 A2
清空 B
A2 移于 B
A 满 5
A5 满 B
A4
2、软件工程中,根据软件开发的 V 模型,有哪些基本的阶段划分?
3、软件测试方法有哪些分类?各有什么特点?设计测试用例的主要方法有哪些?
4、网络安全方面,简述 Syn_FLOOD 攻击的原理。你还知道哪些类型的网络攻击?
一、根据一张“策略—收获”图,张三可以选择横向的方案 A 和方案 B,李四可以选择纵向
的方案 1、方案 2、方案 3。两人选择方案的交叉点就是两人各自的收获。比如张三选择方
案 B,李四选择方案 1,交叉点是(50,80),则张三收获 50 元,李四收获 80 元。两人都
想让自己的收获尽可能的高,选择方案时两人均不知对方的选择。问两人最终的收获各是多
少?
二、桌上排列着一行乒乓球,一共 100 个。两个人轮流拿球装入口袋,拿到第 100 个球的人
是胜利者。每次拿球最少拿 1 个,最多拿 5 个。如果你先开始拿球,你要拿几个?以后你要
怎样拿球,才能保证你能拿到第 100 个?
三、冒泡排序。用 C 或 Java 语言。(从小到大排序)
V 模型是最广为人知的测试模型。
最典型的 V 模型版本一般会在其开始部分对软件开发过程进行描述,如下图所示:
图 1 V 模型的各级开发阶段
这是古老的瀑布模型。作为开发模型,
在 V 模型中,测试过程被加在开发过程的后半部分,如下图所示:
图 2 V 模型示意图
单元测试所检测代码的开发是否符合详细设计的要求。集成测试所检测此前测试过的各
组成部分是否能完好地结合到一起。系统测试所检测已集成在一起的产品是否符合系统规格
说明书的要求。而验收测试则检测产品是否符合最终用户的需求。
预验收测试
可行性分析 -------> 验收测试
↘ 预系统测试 ↗
需求分析 -----> 系统测试
↘ 预集成测试 ↗
概要设计 ----> 集成测试
↘ 预单元测试 ↗
详细设计 -> 单元测试
↘ ↗
编码
这就是软件测试的 V 模型
V 模型的缺陷
仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段
忽视了测试对需求分析,系统设计的验证,一直到后期的验收测试才被发现。