测试开发工程师面试题目,#软件测试
1、什么是兼容性测试?兼容性测试侧重哪些方面?
主要检验的是软件的可移植性,检查软件在不同的硬件平台软件平台上是否可以正常的运行。细分会有:平台的兼容,网络兼容,数据库兼容,数据格式的兼容等。
2,常用的测试方法有哪些?
黑盒测试,白盒测试,静态测试和动态测试,手工测试和动态测试,回归测试,公测。
3,白盒测试和黑盒测试的区别?
黑盒测试是功能性测试,一般采用穷举输入测试,不会考虑内部的逻辑和实现。兼容性,安全性测试,压力测试,性能测试。
白盒测试是结构测试,一般是穷举路径测试,检测内部逻辑驱动结构。 – 语句覆盖 – 判定覆盖 – 条件覆盖 – 判定-条件覆盖 – 条件组合覆盖 – 路径覆盖。
4,静态测试和动态测试有什么区别?
静态测试是指不运行程序本身,仅通过分析程序文档结构,软件执行过程,检测程序的正确性,主要有变量,借口,递归等。
动态方法是指运行程序,检查运行结果与预期结果对比差异,并分析抗压性,健壮性等,这种测试包括三部分:构造测试实例,执行程序,分析程序输出结果。
区别一:静态测试是用于预防的,动态测试是用于矫正的
区别二:多次的静态测试比动态测试要效率和效益高
区别三:静态测试综合测试程序代码
区别四:在相当短的时间里,静态测试的覆盖度能达到100%,而动态测试经常是只能达到50%左右,原因动态测试发现的bug大部分只是在测试实际执行的那部分代码
区别五:动态测试比静态测试更花时间
区别六:静态测试比动态测试更能发现 bug
区别七:静态测试的执行可以在程序编码编译前,动态测试只能在编译后才能执行
区别八:静态测试能发现动态测试所不能发现的一些:"Syntax error,code that hard to maintain,code that hard to test,code that does not confirm to coding standard, and ANSI violations"
5. CPU 和 GPU的区别
CPU 力气大啥P事都能干,还要协调。
GPU 上面那家伙的小弟,老大让他处理图形,这方面处理简单,但是量大,老大虽然能处理,可是老大只有那么几个兄弟,所以不如交给小弟处理了,小弟兄弟多,有数百至数千个,而且是专门只干这行和只能干这行。
6. 推荐的算法有哪些?
1 基于人口统计学的推荐
2 基于内容的推荐
3 协同过滤
4 混合推荐算法
7. 协同过滤
协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称 CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。
换句话说,就是借鉴和你相关人群的观点来进行推荐。
8. Linux命令
查看整个磁盘还剩多少空间 df -h
查看当前的文件夹下的磁盘使用情况 du –max-depth=1 -h
查看某一个文件(文件夹)的大小 du -sh或du -h –max-depth=0
du命令后面可以跟文件路径,来查看指定路径的大小 du -sh /root
找到一个文件中含有aaa 和 bbb和行 grep ‘aaa’ *.txt|xargs grep ‘bbb’更多命令
9. 白盒和黑盒测试的方法有哪些?
黑盒测试的测试方法有:等价类划分、边界值分析法、猜错法、随机数法、因果图。
白盒测试的测试方法有:代码检查法、程序变异、静态结构分析法、静态质量度量法、符号测试法、逻辑覆盖法、域测试、Z路径覆盖和基本路径测试法。
10. Python实现字符串替换
a = ‘hello word’
a.replace(‘word’,’python’)或
import re
strinfo = re.compile(‘word’)
b = strinfo.sub(‘python’,a)
print b