1.软件测试流程是什么样的,简述自己对功能测试,性能测试,自动化测试的理解
第一步:需求分析与评审,此过程主要是保障测试人员早介入、早发现、早修复需求中存在的BUG;
第二步:编写测试计划与测试方案,做任何事情之前都需要先做计划、考虑风险及解决方案、确定可行性的测试方法、工具与环境等;
第三步:设计测试用例与评审,很多小伙伴以为测试就是简单的点点点,其实不然,软件测试是一门艺术,它需要很多科学的方法去指导相关的测试活动,尤其是测试用例设计;
第四步:执行测试用例与缺陷跟踪,当启动测试执行活动后,作为软件质量的守护者肯定能在自家的产品中或多或少的发现一些BUG,请小伙伴记住软件测试的目标是尽可能早地找出软件缺陷,并确保其得以修复。
第五步:编写测试报告,一个阶段的活动结束后软件测试负责人需要对本阶段的测试活动进行一些阶段性的总结,主要包含BUG的统计与分析、版本测试结论等。
功能测试:
根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。
功能测试又称为黑盒测试,是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
性能测试:
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。
通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
性能测试目的:验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。
自动化测试
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
2.数据库
select stu.name,sub.subject,s.score from student as stu inner join subjects as sub inner join scores as s on stu.id = s.stu_id and sub.id = s.sub_id order by sub.subject
3.逻辑分析题:
如果你有无穷的水,一个3公斤的提桶,一个5公斤的提桶,两只提桶的形状上下都不均匀,如何可以称出4公斤的水?
先把5公斤的桶填满,倒入3公斤的桶内,这时还剩2公斤。再把3公斤的桶倒掉,把剩下的2公斤水倒入3公斤的桶内。这时3公斤的桶内装了2公斤的水,5公斤的桶是空的。再把5公斤的桶填满,向3公斤的桶内倒入1公斤的水,这时5公斤的桶内有4公斤的水
4.程序设计
1.统计整数1-100之间所有被3和7整除的数字的个数
int count = 0;
for (int i = 0; i <= 100; i++) {
if (i%3==0 && i%7==0){
count = count + 1;
}
}
System.out.println(count);
2.找出数组int[] a={2,3,6,4,7,9,4,2,3,1};中所有重复的数据,以及重复数字的索引
int[] a = {2,3,6,4,7,9,4,2,3,1};
for(int i = 0;i < a.length();i++){
for(int j = 0;j < a.length();j++){
if(a[i] == a[j]){
system.out.plintln("重复的数据为:"+a[i]);
system.out.plintln("重复的下标为:"+i+"和"+j)
}
}
}
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.输出结果,能否构成三角形,三角形的类型是什么。