学习完这部分内容后,可以掌握测试相关基础概念,掌握常见的开发模型、测试模型。
主要进行四个部分内容的学习:需求、bug、测试用例、开发模型和测试模型。
目录
1. 什么是需求
1.1 需求的定义
用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务,该需求一般比较简略。
软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。
大多数公司在进行软件开发的时候会把用户需求转化为软件需求,开发人员和测试人员工作的直接依据就是软件需求。开发人员和测试人员的直接依据就是软件需求。PM(产品经理)
软件需求是谁写的?开发一个产品,或者测试一个产品,需要拿着软件需求进行测试/开发,拿着用户需求进行开发/测试。
用户需求就是一句话,软件需求是一个文档(详细描述用户需求如何实现),日常工作中我们通常是用软件需求进行开发测试。
1.2 为什么有需求
软件需求是测试人员进行测试工作的基本依据。
1.3 测试人员眼里的需求
以“用户登录”为例,阐述整个过程
1.4 如何深入了解需求
测试工程师在需求分析和设计阶段就开始介入,因为这个阶段是理解和掌握软件的原始业务需求的最好时机。
只有真正理解了原始业务需求后,才有可能从业务的角度去设计针对性明确,从终端用户的使用场景到端到端的覆盖率较高的测试用例集。
2. 测试用例
2.1 什么是测试用例
测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
以QQ登录为例
测试环境:windows系统+Chrome浏览器+本地
测试数据:账号+密码
操作步骤:输入账号、输入密码、点击登录
预期结果:登录成功
2.2 为什么要有测试用例
(1)测试用例提高测试人员工作效率,降低测试人员工作的重复性问题
(2)测试用例是建立自动化的基础(自动化就是把测试人员双手解放,让代码代替人员执行测试)
3. BUG
当且仅当规格说明是存在的并且是正确的,程序与规格说明之间的不匹配才是错误的。
当需求规格说明没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。
4. 软件生命周期
人的生命周期:从出生到死亡
软件的生命周期是指从软件产品的设想开始到软件不再使用而结束的时间,如果把软件看成是有生命的事物,那么软件的生命周期可以分为六个阶段:
需求分析--计划--设计--编码--测试--运行维护
5. 开发模型
5.1 瀑布模型
特点:线性的
优点:每个阶段做什么,产出什么非常明确。
缺点:风险往往是最后才会显露,因而失去早纠正的机会。
适用项目:小型项目。
5.2 螺旋模型
优点:每个阶段都会进行风险分析,避免一些线上问题的发生。
缺点:风险分析可能分析错,需要人力财力的投入。
适用项目:较大的、风险较多的项目。
5.3 增量,迭代
增量:开发一个系统,登录开发完成--创建课程--上课模块
迭代:开发一个系统,登录开发一部分--创建课程开发一部分--上课模块开发一部分
5.4 敏捷
个体与交互重于过程和工具
可用的软件重于完备的文档
客户协作重于合作谈判
响应变化重于遵循计划
敏捷开发有多种方式,其中scrum是比较流行的一种
5.4.1 scrum里面的角色
product owner(产品经理)、scrum master(项目经理)和team(研发团队)组成
5.4.2 scrum的基本流程
6. 测试模型
6.1 软件测试V模型
特点:左边开发,右边测试,类似于瀑布模型
优点:测试被划分为多种类型
缺点:测试人员介入太晚,发现问题时机太晚
6.2 软件测试W模型
特点:开发一个V,测试一个V。
优点:测试人员尽早介入了需求
缺点:测试人员和开发人员一定程度上还是串行的,不能拥抱变化且不适用于敏捷。