1、什么是需求?
- 定义:满足用户的期望或者规定的文档(合同、规范、标准)所需的条件和权限;
- 用户需求:简单的描述;
- 软件需求:具体的用户需求实现的细节
2、什么是BUG?
定义:有两个方面,
- 当且仅当软件规格说明书存在并合理,如果软件功能和规格说明不相符,就说明是软件错误(BUG);
- 如果软件规格说明不存在,用户需求存在不相符,说明是软件错误(BUG)。
3、什么是测试用例?
定义:测试人员向被测试系统发起的一组集合,这组操作集合包括,测试数据,测试平台,测试步骤,预期结果。
4、软件开发的五个模型
4.1软件开发的生命周期:
- 需求分析——计划——设计——编码——测试——运行维护
4.2软件开发的五个模型:
(1)瀑布模型:
- 定义:瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。
- 优点: –强调开发的阶段性; –强调早期计划及需求调查; –强调产品测试。
- 缺点: –依赖于早期进行的唯一一次需求调查,不能适应需求的变化; –由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程;风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会。
(2)螺旋模型:
- 定义:采用渐进式的开发模式。
- 优点: –强调严格的全过程风险管理。 –强调各开发阶段的质量。 –提供机会检讨项目是否有价值继续下去。
- 缺点: –引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求。这需要人员、资金和时间的投入。
(3)增量、迭代模型:
- 定义:增量开发模型,鼓励用户反馈,在每个达代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。
- 增量开发能显著降低项目风险,结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。
(4)敏捷模型:
- 三个角色:PO(产品经理)SM(scru manager)ST(scrum team)
- 发布计划会议:PO负责讲解user story,根据user story的紧急程度排出本期要迭代的user story,形成sprint backlog。
- 迭代计划:细化user story,分配任务,每个人需要完成什么任务以及完成的时间节点。
- 研发期:每日站会,三件事,昨天做了什么,遇到什么困难,今天计划;
- 项目演示会议:给用户演示完成的产品,用户会提出一定的意见,产品经理整理成新的user story 放到下一次的迭代当中;
- 回顾计划会议:对本期迭代进行总结。
5、软件测试V模型
- 定义:目的是改进软件开发的效率和效果。是瀑布模型的变种。明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。
- 优点:左边开发的每一个阶段和右边测试的每一个阶段一一对应,是右边测试每一个阶段的依据。
- 缺点:测试介入晚,前期的错误和风险到后期才发现,会失去及时就纠正的机会;局限性:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就进入测试。
6、软件测试W模型
- 定义:W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。
- 优点:有利于尽早地全面的发现问题。测试阶段和开发阶段在两个独立的V模型里面,测试介入包比较早,在项目初期就介入,前期的风险可以及时被发现;
- 缺点:W模型每一个阶段仍然是一个串行的过程,不能适应需求变化的项目,所以无法应用到敏捷开发。