测试的基础概念
测试开发的工作重点是业务测试和开发测试效率工具(自动化,性能测试)
测试开发的开发主要是指开发测试效率工具,可以提高测试效率和质量
测试工程是则是单纯的业务测试

调试和测试是不同的
调试的任务是定位并解决程序中的问题
测试的任务是发现程序中的缺陷

走测试岗位为什么要学习开发知识?
1.测试人员也需要编写代码,如自动化测试,性能测试,开发测试效率工具等。测试人员需要能够看懂代码,了解开发框架。
2.学好开发知识能够提高软件测试质量。通过查看代码中数据的走向能够更好的从代码层面去发现问题
优秀的测试人员需要具备的素质:
沟通能力:测试人员和开发人员的沟通会比较频繁
快速学习能力:需要快速了解业务和组内测试的具体形式和步骤
开发能力
文字能力
软件需求和用户需求
在多数软件公司存在两种需求,软件需求和用户需求
用户需求通常没有经过合理的评估,只是一句话
软件需求则是开发人员和测试人员执行工作的依据
用户的需求不能直接作为开发和测试的依据。针对用户的需求,产品经理需要进行需求分析(技术可行性,市场可行性,成本投入和收益占比等)后才可转变为软件需求
软件的开发模型
瀑布模型
软件的生命周期实际就是软件的开发模型
软件的生命周期:需求分析-计划-设计-编码-测试-运维
需求分析会从市场需求和技术等方面进行分析,输出需求相关文档
计划对成立的需求执行需求执行计划,多长时间内需要完成该需求,每段时间具体完成了哪些功能,会输出计划等文档,展示不同的角色完成某个动作所需要的时间
设计会将需求细化成一个个任务,团队成员各自领取任务并进行技术设计,输出技术等文档
编码则是开发人员参考需求文档,设计文档,交互图等文件进行代码编写,会产出代码文件等文档
测试人员需要接入到软件的测试中来,参考测试用例对软件进行测试,会产出测试用例,测试设计与计划,测试报告等文档
运维则是项目测试结束后,对产品进行线上的维护。线上维护分为三方面:修复性维护,完善性维护和预防性维护

瀑布模型是最基础的模型
每个流程只执行一次,是线性的开发流程
瀑布模型最大的缺陷是测试后置,可以运行的产品很迟才能被看到
很多问题遗留到测试阶段才能被发现,可能会导致全面返工的情况
且需要给测试保留足够的时间,否则直接将问题暴露给线上用户会导致用户流失
因此只适合比较小的项目


螺旋模型

螺旋模型中各个阶段都引入了风险分析+原型
引入的目的是减少各阶段遗留的风险问题,避免把问题留到后面的阶段

螺旋模型适合需求复杂,规模大,风险大的项目


增量模型和迭代模型
增量模型会将大需求拆分成小需求
每个小需求独立开发上线
随着互联网的发展,已经很少有企业会独立使用这两个模型了,都是搭配使用的



敏捷模型
现在项目开发的主要困难在于项目开发期间处理来自客户的变更请求以及合并这些变更所需的高成本和时间
为了克服瀑布模型的这些确定,设计了敏捷模型
敏捷模型旨在帮助项目快速适应变更请求,因此敏捷模型的主要目的是促进项目的快速完成
敏捷模型又称为增量迭代模型
敏捷模型:轻文档,轻流程,重目标,重产出
强调高效的沟通
强调轻文档,文档不应该作为工作验收的标准
主动及时了解当下的需求
能够主动迎接变化

Scrum是敏捷模型中的一种,又称为迭代式增量软件开发模型
Scrum模型中,主要有三个角色和五个重要会议




测试模型
测试模型中有两个非常重要的测试模型:v模型和w模型

w模型(双v模型)
两个v分别指开发和测试两个v模型

测试的对线不仅是程序,需求,设计等同样要测试,测试和开发是同步进行的
因此可以尽早的发现问题
但是无法支持敏捷开发模型

测试流程
