1 . 什么是软件测试?
验证软件是否满足用户的需求 【 软件测试是按照一定的评判标准(需求)来进行的活动】
2.软件测试和软件开发的区别?
软件开发:用程序开发的方式把用户的需求实现成一个软件(APP web网站,小程序...)
软件测试:测试人员进行测试,查看是否满足要求
(1)软件测试和软件调试的区别?
目的不同:软件测试是查看软件是否满足用户需求;调试是开发人员检查程序是否实现了他想要的程序实现功能。
角色:
软件测试:软件测试工程师,白盒测试工程师,开发人员(白盒测试:单元测试)
软件调试:开发人员
阶段不同:
软件测试:贯穿到了整个软件开发的生命周期
软件调试:开发阶段
(2)技能方面:
开发要求技术范围小,专业度高
测试要求技术面广,专业度低
3.一个优秀的测试人员所具备的素质?
(1)思维方式
逆向思维 发散性思维
(2)兴趣
你会很多开发的知识 为什么选择测试?
为了更好的完成软件测试 兴趣...
(3)学习能力 文字能力 编程能力 等
(4)性格特征 不浮躁 敏感
(5)抗压力 责任感
概念篇
1.什么是需求?(满足用户的期望和正式规定的合同,标准,文档所需要的条件和权限)
软件需求是用户解决问题或达到目标所需条件或权能
用户需求----软件需求(详细的软件需求文档)---软件开发---软件功能测试---上线
软件需求是用户需求转化来的
2.什么是BUG?
当我们的规格说明存在,并且合理,如果软件功能和需求规格不符合,说明是软件错误
当规格说明不存在,如果用户的需求存在并且合理,如果功能和用户需求不匹配,说明是软件错误
3.什么是测试用例?
测试用例就是一个集合,包括测试平台,测试环境,测试数据,测试步骤,预期结果,测试功能模块,前置条件,重要性等。
为什么测试工程师要写测试用例 ?评估测试功能的覆盖率,不会进行大量的冗余操作,重复使用
4.软件开发的五个模型和软件测试的两个模型
软件开发的生命周期:需求--分析/计划--设计--开发--测试--运行维护
(1)软件开发的模型
瀑布模型:适用于需求稳定的项目;
项目前期的风险或者错误后期测试的时候才发现,会失去修正错误的最佳时机
螺旋模型:适用于项目比较庞大,需求不明确,风险比较大的项目
有利于项目风险的控制
迭代模型: 第一周完成ABCD四个模块的基础功能 搭好基础框架
第二周完成ABCD四个模块的后续的功能,做功能的完善
增量模型:第一周完成AB模块,第二周完成CD模块功能
迭代和增量模型 项目的风险防控能力比较强
敏捷开发模型:敏捷开发拥抱变化 (轻文档,轻流程,重目标,重产品)
scrum 流程 :发布计划会议--迭代计划会议--开发过程,每日站会--演示会议--回顾会议
(角色:PO 产品经理 客户的代表方,用户需求转化为一个个user story
SM 项目经理
ST 研发团队,交付一个高质量可用的软件)
问题:测试人员在敏捷开发过程怎么去完成测试任务?
测试人员核心任务不变,找BUG;不仅会找BUG,要知道BUG产生的原因,解决方案。
两大测试模型
(1)软件测试V模型
特点:左边的阶段和右边的测试阶段一一对应,并且是右边每一个测试阶段的依据
缺点:项目前期的风险和错误到后期测试阶段才发现,会失去问题及时纠正的机会
(2)软件测试W模型
特点:测试在项目一开始就介入(需求阶段介入),有利于前期风险的及时发现
缺点:不能用于敏捷开发,不适用于需求变化的项目