1.软件生命周期
软件生命周期是指软件开发研制到最终废弃不用所经历的各个阶段。在不同阶段里,由不同的组织、个人和资源进行明确的任务。为了使规模大、结构复杂和管理复杂的软件开发变的容易控制和管理,人们把整个软件生命周期划分为若干阶段,使得每个阶段有明确的任务,整理出软件生命周期模型。
2.生命周期模型
常见的有瀑布模型、V模型、敏捷开发模型。
2.1 瀑布模型
1970年,人类整理出的第一个软件生命周期,规定了他们自上而下,相互衔接的固定顺序,逐级下落,具有顺序性和依赖性。
2.2 V模型(RAD(Rapid Application Development,快速应用开发))
是一个重要的模型,开发和测试同时进行,缩短了周期,提高了效率。
但V模型有缺陷,V模型仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证,需求的满足情况一直到后期的验收测试才被验证。
2.3 敏捷开发模型
是一种以人为核心,迭代、循序渐进的开发方法。强调以人为本,专注于交付对客户有价值的软件。人和交互重于过程和工具。
迭代开发是什么?
每次只设计和实现一个产品的一部分叫做迭代。
每次设计和实现一个阶段叫做一个迭代。
优点:①降低风险
②提早的获得用户反馈
③持续的测试和集成
④使用变更
⑤提高复用性
快速的迭代迎合了现代生活中用户的需求与日俱增。
3.软件测试的工作流程图
4.软件测试的基本流程
测试需求分析阶段:
阅读需求,理解需求,
第一、把用户需求转化为功能需求:1)对测试范围进度量 2)对处理分支进行度量 3)对需求业务的场景进行度量 4)明确其功能对应的输入、处理和输出 5)把隐式需求转变为明确。
第二、明确测试活动的五个要素:测试需求是什么、决定怎么测试、明确测试时间、确定测试人员、确定测试环境:测试中需要的技能,工具以及相应的背景知识,测试过程中可能遇到的风险等等。测试需求需要做到尽可能的详细明确,以避免测试遗漏和误解。
测试计划阶段:
主要任务是编写测试计划,参与软件需求规格说明书、项目总体计划。内容包括测试范围(来自需求文档)、进度的安排,人力物力的分配,整体测试策略的指定和风险的评估与规避措施,一般由测试负责人编写。
测试设计阶段:
主要任务是编写测试用例,会参考需求文档(原型图),概要设计,详细设计等文档,又不明确的及时和负责人,开发人员沟通。
测试执行阶段:
首先搭建测试环境,执行预测(冒烟测试),以判断当前版本可测与否,如果预测通过,正式进入系统测试,遇到问题把BUG提交到缺陷管理平台并对BUG进行跟踪,知道被测软件达到测试需求,没有重大BUG,测试结束。
测试评估阶段:
出测试报告,对整个测试的过程和版本质量做一个详细的评估,确认是否可以上线。
5.软件开发流程&测试流程
开发人员的工作流程:
需求评审——获得功能组成及软件设计结果、数据结果(概要设计、详细设计)——编写代码——单元测试——代码审查——打包提交测试——等待测试提交BUG——修复BUG——等待测试回归BUG———进行N轮测试——版本上线——面向用户使用
测试人员的工作流程:
需求评审——测试计划——编写测试用例——评审用例——搭建测试环境——等待开发完成,提交测试包进行测试——部署测试包——预测试——执行测试用例——BUG跟踪处理(提交回归BUG)——进行N轮测试——版本上线——面向客户使用。