软件测试腾讯笔试题,包含25道不定项选择题和25道应用题,用时2个小时。
话说在笔试前去看了很多关于软件测试类的资料,结果很多都没用上,sad sad的~好吧,题外话就不说了,直接进入主题:(下面仅包含自己记得的题目)
知识点1.后序遍历
网上找的例题:
后序遍历:(1)左子树 (2)右子树 (3)根节点
故遍历顺序是:DEBFCA
中序遍历:(1)左子树 (2)根节点 (3)右子树
故遍历顺序是:DBEAFC
先序遍历:(1)根节点 (2)左子树 (3)右子树
故遍历顺序是:ABDECF
2.无法ping通Server的原因
解答:防火墙里面的设置问题。参考资料如下:
windows server 2008解决无法PING通问题
3.有3对父子进行排序,对应的父子不能站在一起,那么有几种排序方式(这个答案待定,求路过大神解决)
4.关于Simulator技术、Mock/Fake技术和Hook技术的应用
软件模拟器(Simulator)
是CCS自带的一种脱离硬件情况下的软件仿真工具;
Fake
有实际可工作的实现,但是通常有一些缺点导致不适合用于产品(基于内存的数据库就是一个好例子)。
Mock
预先计划好的对象,带有各种期待,他们组成了一个关于他们期待接受的调用的详细说明。
Hook技术
钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。
5.多进程、多线程
多进程,相当于一个程序,每个进程有自己的地址空间
多线程,相当于一个里的一条命令,共享地址空间
多进程优点:
(1)每个进程互相独立,不影响主程序的稳定性,子进程崩溃没关系;
(2)通过增加CPU,就可以容易扩充性能;
(3)可以尽量减少线程加锁/解锁的影响,极大提高性能,就算是线程运行的模块算法效率低也没关系;
(4)每个子进程都有2GB地址空间和相关资源,总体能够达到的性能上限非常大
多进程缺点:
(1)逻辑控制复杂,需要和主程序交互;
(2)需要跨进程边界,如果有大数据量传送,就不太好,适合小数据量传送、密集运算
(3)多进程调度开销比较大;
最好是多进程和多线程结合,即根据实际的需要,每个CPU开启一个子进程,这个子进程开启多线程可以为若干同类型的数据进行处理。当然也可以利用多线程+多CPU+轮询方式来解决问题;
多线程的优点:
(1)无需跨进程边界;
(2)程序逻辑和控制方式简单;
(3)所有线程可以直接共享内存和变量等;
(4)线程方式消耗的总资源比进程方式好;
多线程缺点:
(1)每个线程与主程序共用地址空间,受限于2GB地址空间;
(2)线程之间的同步和加锁控制比较麻烦;
(3)一个线程的崩溃可能影响到整个程序的稳定性;
到达一定的线程数程度后,即使再增加CPU也无法提高性能,例如Windows Server 2003,大约是1500个左右的线程数就快到极限了(线程堆栈设定为1M),如果设定线程堆栈为2M,还达不到1500个线程总数;
线程能够提高的总性能有限,而且线程多需要消耗较多的CPU
6.一个数组a[i]等价于() A、*(a+i) B、a+1 C、*a+i D、&a+i
7.有一个a[7][8]数组,a[2][3]的地址是1099、 a[5][6]的地址是1153,那么a[6][7]的地址是?
8.DDoS(分布式拒绝服务攻击)
指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。
9.符合数据库第几范式
1NF:字段不可分;
2NF:有主键,非主键字段依赖主键;
3NF:非主键字段不能相互依赖;
10.十进制数转为十六进制数
解法:
随便举个栗子->十进制数1610转为十六进制为64A
1610/16=100......10(A)
100/16=6......4
6/16=0......6
拓展:
(1)十六进制64A转为十进制
(A)10*16^0 + 4*16^1 + 6*16^2 = 1610
(2)十六进制64A转为二进制(参考列表)
0110 0100 1010
(3)十进制转二进制
1610/2=805......0
805/2=104......1
402/2=201......0
201/2=100......1
100/2=50......0
50/2=25......0
25/2=12......1
12/2=6......0
6/2=3......0
3/2=1.......1
1/2=0......1
最终结果为:110 0100 1010
(4)二进制转十进制
0*2^0 + 1*2^1 + 0*2^2+ 1*2^3 + 0*2^4 + 0*2^5 + 1*2^6 + 0*2^7 + 0*2^8 + 1*2^9 +1*2^10 =1610
基本上就是C语言和数据结构比较多,另外还有些有Linux、网络拓扑结构、通信网络、计算机基础知识、行测、编程题等等。
所以咧~我要加把劲啦~
参考资料:
十六进制转二进制表:
0--0000
1--0001
2--0010
3--0011
4--0100
5--0101
6--0110
7--0111
8--1000
9--1001
A--1010
B--1011
C--1100
D--1101
E--1110
F--1111