微信公众号:程序员阿沐

《软件测试常见面试题十二》

2020-09-19  本文已影响0人  程序员阿沐

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.常见的性能测试策略有哪些?

负载测试、压力测试、并发测试、内存泄露测试、基准测试、配置测试、数据容量测试、疲劳强度测试

微信搜一搜【程序员一凡】关注这个文绉绉的程序员,关注后回复【面试】有我准备的一线大厂面试资料和简历模板,希望大家都能找到心仪的工作,学习是一条时而郁郁寡欢,时而开怀大笑的路,加油。如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。如果有幸我们江湖再见!

上一篇下一篇

猜你喜欢

热点阅读