一、答疑篇
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的解决方案
|