一、答疑篇
1、什么是软件测试?
软件测试就是软件测试人员验证软件是否满足用户的需求
2、软件测试和软件开发的区别?
(1)本身
开发:广度小,专业度高
测试:所需技能比较广泛,但是专业度低
难易程度,薪资,工作环境,压力,责任
(2)软件测试和软件调试的区别
a.目的:
软件开发人员要确保程序做了他想让程序实现的功能
软件测试是测试人员确保程序实现了它应该实现的功能(用户需求)
b.角色
测试,开发人员和测试人员共同完成
开发,开发人员
c.阶段
软件测试贯穿到了整个软件开发的生命周期
软件开发: 在开发阶段
3.面试官: 你为什么选择软件测试?
综合能力:沟通学习,开发文字
自动化测试技术
编写测试用例的能力
探索性思维
兴趣
责任感,压力
4.什么是需求?
用户的期望和满足合同(文档,规则,标准)的规定所需要的条件和权限。
用户需求和软件需求
软件需求是用户需求转化而来的。它是用户需求的细化,是用户需求的具体实现细节和规范。
用户需求比较粗略,直接实现会有困难,因为没有细节,所以需要软件需求把用户需求细节实现和规范,把用户需求变成一个具体的可实现的过程文档。
二、概念篇
1.什么是测试用例?
测试用例就是向被测试系统发起的一组集合包含测试环境,测试数据,测试步骤,预期结果。
2.什么是BUG?
当且仅当,软件需求存在且合理时软件功能和软件需求不相符合,就说明是软件错误
如果软件需求规格说明书不存在,用户需求存在并且合理,如果软件功能和用户需求不相符合,就说明是软件错误。
3.软件开发的五大模型
软件开发的生命周期(即软件开发的流程):
需求分析--计划--设计--编码--测试--运行维护(上线)
(1)瀑布模型
重视需求分析,后期的测试,是一个串行的过程
缺点:测试编码后才介入,导致前期问题无法及时发现,失去错误及时纠正的机会
(2)增量/迭代模型
抗风险能力较强
(3)螺旋模型
适合于项目庞大,前期需求不明确,风险较大的项目,抗风险能力强
缺点:由于抗风险能力,所以在风险控制方面的投入较多(资金、能力等)
(4)敏捷开发模型
Scrum流程
PO 产品经理,整理需求的
SM 项目经理,保证敏捷流程
ST 各种技能的工程师组成,开发产品
流程:
产品发布会议
迭代计划会议
每日站会
产品演示会议
项目回顾会议 进行改进 改进的目的:优化敏捷流程
敏捷开发的特点:
轻文档 轻流程 重目标 重产出 拥抱用户需求的一个变化
三、基础篇
1.软件测试的流程?(软件测试的生命周期是什么?)
需求分析--测试计划--测试设计/开发--测试执行--测试报告
需求阶段: 验证需求的合理性和正确性
测试报告: 总结这次测试情况,用力执行情况、BUG验证情况
2.如何清楚地描述一个BUG?
版本号(代码版本号)
测试环境(浏览器,Windows/mac : 手机型号,手机系统IOS/Android)
测试步骤/测试数据
测试实际结果
预期结果
附件(错误日志、截图)
3.如果因为一个bug和开发人员(或其他人)产生冲突,怎么处理?
(1)先从自身检查看自己描述的bug是否清晰
(2)从用户的角度去说服开发人员
(3)bug定级一定要按照公司的标准来
(4)不断提高自己的业务水平和技术水平
(5)如果实在不行,就和产品经理沟通,讨论bug的解决方案