什么是需求
什么是需求?简单来说就是我想吃饭,这件事就是我的需求,我不想上课,这也是我的需求。对于软件测试来说,需求可以分为用户需求和软件需求。
用户需求
用户需求简单可以理解为甲方提出的要求,如果没有甲方,那么用户需求就是使用的用户需要满足的需求。
软件需求
软件需求是从用户需求转化而来的,一般由公司相关部门进行软件需求的整理,开发人员和测试人员进行工作的主要依据就是来自于软件需求。
需求的重要性
对于开发和测试人员来说,软件需求应该是进行开发和测试的重要资料,对于测试人员来说,软件需求决定了测试用例的覆盖率,并且软件需求的信息可以让我们对于一些测试用例的编写可以使用合适的方法来进行相关测试用例的设计。
如何了解需求
参加评审会议,查阅文档(需求文档,技术文档),沟通交流(找产品了解详情,找开发了解软件的实现)
什么是测试用例
测试用例是为了达到某个目的设计出的一组测试输入,执行条件和预期结果的一个集合,其主要目的还是为了测试软件是否满足需求。
测试用例主要解决了测什么和怎么测的两大问题。
什么是软件错误(BUG)
软件错误也就是我们说的BUG,软件错误可以是程序执行出不符合预期结果的结果,也可以是没有满足设计需求
软件的生命周期
软件的生命周期指的是软件从开发到最终停止使用的这个过程,其中包含以下几个阶段:
1、需求分析和规划
在这一阶段了解客户需求和软件功能等等,制定相应的计划和时间表
2、设计和编码
在这一阶段,开发人员根据需求进行软件的设计和编码
3、测试和验证
在这一阶段开发团队需要对软件进行相关的测试和验证,确保软件的功能满足客户的需求,以及最终的结果能够符合预期。
4、部署和维护
在这一阶段开发团队将软件部署到生产环境中,并进行定期的更新和维护
5、退役和回收
在这一阶段开发团队将软件从生产环境中移除,并进行相应的回收操作。
开发模型和测试模型
瀑布模型
瀑布模型是一种线性的开发模型,按照开发的先后顺序进行开发,只有前一个阶段完成后,才会进行下一个阶段。这种模型的优点是可控性高,每个阶段都有明确的目标和输出,缺点就是开发周期长,成本高,适应能力差。
V模型
V模型是瀑布模型的变种,它更注重测试的方面,在编码之后进行测试,缺点是没有在需求阶段进入测试。
螺旋模型
螺旋模式是一种渐进式的模型,比较适合那种开发初期需求不是很明确的情况和适合规模大,风险高,复杂度高的项目,这是一种开发和测试迭代进行的模型。
迭代和增量
增量模型又称演化模型,其实就是将系统模块化,每个模块都作为一个增量组件往原型上面加,最后做成一个成品。
增量是逐块建造的概念,例如画一幅人物画,我 们可以先画人的头部,再画身体,再画手脚……而迭代是反复求精的概念,同样是画人物画,我们可以 采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。
W模型
W模型中有两个V模型,一个是开发的,一个是测试的,开发和测试并行
优点:测试开发并行,有利于尽早发现问题
缺点:并行中存在串行,如需求,设计,编码都是串行的,是线性关系,前一阶段没有完成,就不能进行后续操作,无法支持敏捷开发模型。
敏捷开发模型
敏捷开发模型也是迭代的,比较流行的方式有scrum
在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征