1.说一下自己的软件测试的理解
即软件测试的目的和原则
2.软件测试有哪些不同的类型
即软件测试阶段的分类
3.什么是软件开发生命周期
软件生命周期 同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期(软件生存周期)[1] 。软件生命周期模型是指人们为开发更好的软件而归纳总结的软件生命周期的典型实践参考。
4.简述一下测试的流程
5.如何编写测试报告
1、什么时候写?
测试报告一般是在项目测试结束或一个迭代完成之后由测试负责人编写。若不是项目,只有一二个测试人员,那就是由该项目主导人来写,若只有你一个来测试,那就是由你来写。
2、测试报告内容
测试报告主要内容大致可以分为测试范围、测试进度、缺陷管理、测试结论四大部分,在实际编写过程中,我们根据企业的要求输出这四个部分或包含这四个部分以上的内容即可。
(1)测试范围
测试范围主要是写本次项目或本次迭代需要测试的功能,一般来说是以新增功能和修改功能为主,以回归测试内容为辅,测试报告中的测试范围可以摘取测试计划中的测试范围,再根据本轮测试活动中实际测试的功能进行补充。
测试报告中测试范围与测试计划中的测试范围区别:
1、内容:测试计划中的测试范围是根据需求文档梳理出来的,而测试报告中的测试范围以实际测试内容整理出来的
2、结果:测试计划中的测试范围没有测试结果,测试报告中的测试范围需要标明测试结果
(2)测试进度
测试报告中的测试进度由二部分组成:一个是时间进度安排(展示),另一个是人员测试时间花费。
1、时间进度安排
测试报告中的测试时间比测试计划中的测试时间多了每个阶段中实际开始时间和实际结束时间。
2、测试时间花费
测试时间花费的输出是测试计划中所没有的,测试报告中输出测试时间花费主要是反映本轮测试所花费总的单位人力时间,也从侧方面反映本轮软件质量。
我是一个例子:
执行测试人:X人(XXX、XXX、XXX等)—》本轮测试中参与了多少人测试人员
总花费时间:XXX人/天 —》总的单位人力时间
(3)缺陷管理
缺陷管理是测试报告中的核心内容,而测试报告中需要对本轮测试缺陷从不同维度进行输出,目的就是为了从缺陷分析中得出软件质量、修改bug的效率、开发质量等。
一般测试报告中需要输出:
缺陷汇总
统计本轮所有缺陷,可以根据提测版本来汇总
按bug等级分
根据bug等级统计本轮缺陷的分布情况
按模块分
根据测试系统/模块来统计本轮缺陷的分布情况
缺陷收敛情况
缺陷收敛情况就统计测试过程中每天新增bug数、解决bug数、关闭bug数,来检查bug的收敛是否健康,一般来说第一个测试版本bug数量会增加,后面慢慢bug会降低,关闭bug数量会慢慢增加,这里主要检查一个bug开启的数量、测试后期bug数量有没有增多等情况。
缺陷收敛情况除了用表格展示之外,还可以以图表的形式展示,更出看出缺陷的健康度。
缺陷管理中不仅限于包含以上内容,还会根据实际的项目情况包含其他bug分析内容,比如缺陷状态、缺陷遗留等。
(4)测试结论
测试报告中的测试结论绝对是占C位的,也有企业写测试报告只需要测试结论就行。
测试结论中包含对本轮测试过程的总结,主要是得出本轮测试之后项目是否达到了上线标准,所以测试结论有测试通过,可以上线,或者是测试不通过,建议不上线。
1、测试通过,可以上线
总结性语言写出本轮测试从哪些维度进行了哪些功能/业务方面的测试,满足需求文档和上线标准。
我是一个简单的例子:
XX项目在测试环境进行了功能、可靠性、安全性、可用性、性能五个方面进行了全面、严格、规范的测试,测试结果表明,XX项目实现了XXX业务,项目测试质量符合需求及上线标准。
测试结论:通过
2、测试不通过,建议不上线
一般来说软件测试结论中很少会包含测试不通过的情况,但软件测试人员还是要根据实际的测试情况给出实际的结论,若是软件质量不理想,不要迫于压力而建议上线。
测试报告包含了软件测试人员对于这次软件质量的评估,所以在写测报报告的时候需要客观地分析这次测试活动,虽说很多企业在项目都没有要求输出测试报告,但王豆豆还是建议每个测试项目都尽量输出测试报告,可以不用word文档来来,直接在邮件中写,不需要太详细,包括主要内容即可,然后通过发送邮件的方式来知会到项目组成员。
6.场景:针对微信朋友圈的使用,设计一下测试用例
7.代码题(用熟悉的代码写出来)
三角形的三条边分别为a,b,c
要求: 1.要构成三角形,必须要任意两边和大于第三边
2.输出结果,能否构成三角形,三角形的类型是什么。
public class Triangle {
public boolean isTriangle(int a,int b, int c){
boolean flag=false;
//Java Math.abs() 方法返回参数的绝对值
//参数可以是 int, float, long, double, short, byte 类型
if ((a+b>c&&a+c>b&&c+b>a)&&(Math.abs(a-b)<c&&Math.abs(a-c)<b&&Math.abs(c-b)<a)){
flag=true;
shape(a,b,c);
}else {
System.out.println("这不能构成三角形。");
}
return flag;
}
public String shape(int a,int b, int c){
String shape=null;
if (a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){
shape="直角三角形";
System.out.println("这是"+shape);
}else if (a*a>b*b+c*c||b*b>a*a+c*c||c*c>a*a+b*b){
shape="钝角三角形";
System.out.println("这是"+shape);
}else if (a*a<b*b+c*c||b*b<a*a+c*c||c*c<a*a+b*b){
shape="锐角三角形";
System.out.println("这是"+shape);
}
return shape;
}
}