《软件测试常见面试题十二》
1.您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
尽量面对面的沟通,其次是能直接通过电话沟通,如果只能通过Emial等非及时沟通工具的话,必须对要沟通的主题理解深刻以及能表达清楚。
运用一些测试管理工具进行管理也是较有效的方法,同时要注意在工具中对bug有准确的描述
在团队中建立测试人员与开发人员良好的沟通中注意以下几点:
一真诚、二是团队精神、三是在专业上有共同语言、四是对事不对人、切勿情绪化、工作至上
当然也可以通过直接指出一些小问题,而不是进入bug跟踪总统来增加对方的好感
2.你对测试最大的兴趣在哪里,为什么?
没有标准回答,仅供参考
最大的兴趣,感觉这是一个有挑战性的工作
测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣
通过自己的工作,能使软件产品越来越完善,从中体会到乐趣
回答此类问题注意以下几个方面:
尽可能的切合招牌企业的结束路线来表达你的兴趣,例如该企业是数据库应用的企业,阿么表示你的兴趣在数据库的测试,并且希望通过测试提升自己的数据库掌握能力
表明你做测试的目的是为了提升能力,也是为了更好的做好测试,提升能力不是为了以后转开发或其他的,除非用人企业有这样的安排
不要过多的表达你的兴趣在招聘企业的范畴之外
比如招聘企业是做财务软件的,可是你表现出来的是对游戏软件的兴趣,或者照片是做Java开发的,而你的兴趣是在C类语言程序的开发
3.什么是测试覆盖率
是指完成的测试工作目标量占总目标量的百分比,有很多分类
软件测试覆盖率常用的计算公式
功能覆盖率=至少被执行一次的功能测试点数/测试功能点总数
需求覆盖率=被验证到的需求数量/总的需求量
用例覆盖率=至少被执行一次的测试用例数/应执行的测试用例总数
语句覆盖率=至少被执行一次的语句数量/有效的程序代码行数
判定覆盖率=判定结果被评价的次数/判定结果总数
条件覆盖率=条件操作数值至少被评价一次的数量/条件操作数值的总数
4.一个号的测试用例,有哪些特点
a.用例要完整、简洁、一致,至少含有编号、标题、操作步骤和预期结果
b.用例要表明测试目的
c.用例覆盖程度要高
d.用例能够使使工作量最小化
e.用例描述正确、规范,含有正确的规范的测试标题和编号
f.用例的分类以及描述要足够清晰
g.用例要具有可测性,用例易于维护,如果被测队形有所升级,测试用例的说明或者脚本是不是容易维护呢、可复用、可重复性,不管谁执行用例,结果都一样,可追踪性,用例能追踪到一个具体的需求
5.测试结束的标准是什么?
全部测试用例都执行完成
未修改bug都被确认或置为应有状态、暂缓修改的问题都有详尽的解释
测试报告编写完成
测试收尾工作结束
测试总结完成
项目处于试运行或上线阶段
在测试计划中定义结束标准
如在计划中规定:系统在一定的性能下平稳运行72小时,本版本没有严重的bug,普通的bug的数量在3以下,bug修复率90%以上。
实际测试达到上述要求,然后由开发经理,测试经理,项目经理共同签字,认同测试结束,版本即可发布。
6.如何全面测试一款产品,请以手机短信功能为力来辅助说明,前提是手机自带的短信功能,并非微信,QQ这种软件
能正常打开或者进入短信界面
短信可以正常编辑、修改、删除
短信可以正常发送和接收
短信页面字体、颜色显示正常
短信的字体可调整
给对人同时发短信
给特殊号码发短信,如运营商、不存在的号码、服务号
接收验证码
短信耗电量测试、短信不耗流(联网、不联网)
短信干扰测试,如编辑短信期间(已经编辑好,正在打字),电话进来,便捷短信期间,收到短信,掩藏到后台,进行其他操作,再返回
7.你手中的这支笔有多少用途,请发挥你的想象力
写、画、染色、称重、当书签、当筷子、用来扎人、用来掏掉进笔记本键盘的小东西、用来去除缝隙里的灰尘、当做燃料、拿在手里转折玩、消遣一下,用来按电梯、塑料闭馆用来当吸管等等
8.判断字符串回文
回文序列是指正序和反序都相同的字符串,如“A",“BAB”,“BFFB”。实现一个函数,
判断输入的字符串是否为回文,并写出测试用例。如有可能请使用你最熟悉的编程语言实现
这个函数。
需求分析:回文是一个字符串,正反都一样
举例子找规律:
奇数个字符:A BAB BADAB
012 01 234
[0] =[2] [0]=[4]、[1]=[3]
总共 n 个字符,第 i 个=第 n-1-i 个,需要判断[n/2 下取整]次
下一个是 1,结束 下一个是 2,结束
偶数个字符:AA ABBA ABCCBA
01 0123 012 345
[0]=[1] [0]=[3]、[1]=[2] [0]=[5]、[1]=[4]、[2]=[3]
总共 n 个字符,第 i 个=第 n-1-i 个,需要判断 n/2 次
总体的规律:
总共 n 个字符,第 i 个=第 n-1-i 个,需要判断 n/2 下取整次
思路:
需要一个字符串参数,表示回文
循环判断,循环次数=n/2
如果第 i 个=第 n-1-i 个,下一个是 n/2 结束
否则,直接退出
测试:
空串、一个字符、两个字符(对称、不对称)、五个字符(对称、不对称)
AA AB ABCBA、ABCBW、ABCWA、ABCDE
java 代码:
public static boolean message(String s){
int n=s.length();
boolean jg=false;
if(n!=0)
for(int i=0;i<=n/2;i++)
if(s.charAt(i)==s.charAt(n-1-i)){
//System.out.println(i+" "+s.charAt(i)+" "+s.charAt(n-1-i));
if(i==n/2)
jg=true;
}
else{
jg=false;
break;
}
return jg;
}
白盒角度:
这里的条件覆盖等价于判定覆盖,n!=0 成立与不成立均测到
for:循环 0 次不现实,所以不需要测,1 次以上
s.charAt(i)==s.charAt(n-1-i)的条件覆盖等价于判定覆盖
i==n/2 的条件覆盖等价于判定覆盖
python 代码:
s="ABCVE"
n=len(s)
if(n==0):
print("空字符串不是回文")
else:
#print(int(n/2))
for i in range(0,int(n/2)+1):
if(s[i]==s[n-1-i]):
if(i==int(n/2)):
print(s+"是回文")
else:
print((s+"不是回文"))
break
9.Function (A ,B ,C )是一个判断三角形形状的函数,其中 A ,
B ,C 是三个变量,分别代表三角形的三个边,请设计一组测试
用例,来测试这个函数是否正确。如有可能,请使用你最熟悉的
编程语言实现这个函数。
思路:
三个参数(double)
使用异常解决输入的不是数的问题
三个边都是正的
三边符合关系
三角形类型(等边、等腰、直角、普通)
java 代码:
public static String function(double a,double b,double c){
String jg;
if(a>0 && b>0 && c>0)
if(a+b>c && a+c>b && b+c>a)
if(a==b && a==c)
jg="等边三角形";
else if(a==b || a==c || b==c)
jg="等腰三角形";
else if(a*a+b*b==c*c || a*a+c*c==b*b || c*c+b*b==a*a)
jg="直角三角形";
else
jg="普通三角形";
else
jg="不能构成三角形";
else
jg="三边必须都是正数";
return jg;
}
用例设计:
场景:
三边非全正(1、2、3 为 0 或负数)
三边关系不满足(相等,小于)
三边等
两边等(3 条)
直角(3 条)
普通
基本流用例:
3 3 3
3 3 4
3 4 3
4 3 3
3 4 5
3 5 4
5 3 4
3 4 6
1 2 3
1 2 4
1 3 2
1 4 2
3 1 2
4 1 2
备选流用例:
1 1 0
1 1 -1
1 0 1
1 -1 1
0 1 1
-1 1 1
1 0 0
1 0 -1
1 -1 0
1 -1 -1
0 0 1
-1 0 1
0 -1 1
-1 -1 1
0 1 0
0 1 -1
-1 1 0
-1 1 -1
10.常见的性能测试策略有哪些?
负载测试、压力测试、并发测试、内存泄露测试、基准测试、配置测试、数据容量测试、疲劳强度测试
微信搜一搜【程序员一凡】关注这个文绉绉的程序员,关注后回复【面试】有我准备的一线大厂面试资料和简历模板,希望大家都能找到心仪的工作,学习是一条时而郁郁寡欢,时而开怀大笑的路,加油。如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。如果有幸我们江湖再见!