软件生命周期
研发组织和流程
软件测试包含的内容(四个阶段,4个活动)
常见的测试方法
软件生命周期
不同行业的软件生命周期长短不同,软件生命周期越短,一般质量要求越低。无论是什么类型的企业,软件生命周期中包含的需要完成的工作是类似的。
计划
项目经理根据 项目时间,资源投入,预期收益 制定项目计划,项目计划规定了后续各个工作的出发点。
需求分析
在一些业务比较复杂的行业,比如金融行业,需求分析由专人(业务分析员BA)完成,业务比较简单的行业,电商行业,需求分析由开发负责。
比如为登录功能尽心需求分析。
功能描述
用户输入账号(会员名,邮箱或手机号),密码,点击登录,实现密码登录功能
输入
输入参数1:会员名/邮箱/手机号
- 会员名要求是字母数字的组合,长度6-10位;
- 邮箱要求符合邮箱地址的格式要求
- 手机号为纯数字,长度为 11位
输入参数2: 密码
密码要求:字母、数字、特殊字符发的组合,长度 6-12 位。
业务规则
- 如果输入的账户名和密码正确,登录成功;
- 如果输入的密码错误,提示账户名或密码错误;
- 如果账户名不存在,提示账户名或密码错误;
- 如果账户名为空,提示账户名不能为空;
- 如果密码为空,提示密码不能为空。
设计
借助建筑工程的例子类比软件的设计是什么
建筑设计师设计图纸来指导建筑工人建造高楼,设计图纸上可以得到高楼有多少个房间,以及每个房间的作用,房子建好后通常需要装修工人来根据室内设计师的图纸进行室内施工
- 系统架构师或资深开发工程师,给出软件的概要设计(HLD)
软件----子系统/模块 ----函数
- 高级开发工程师给出每个函数的详细设计(LLD)
login()
{
........
if 账户名为空
提示账户名不能为空
.........
}
编码
苦逼的码农搬砖中...
测试
由专门的测试工程师完成。
尽早发现软件中存在的问题,并协助开发人员完成问题的定位和修复
运行维护
由运维工程师完成。
运维工程师负责环境的维护、软件上线/升级、线上问题收集反馈等
研发组织和流程
研发组织
研发流程
将软件生命周期中工作按照一定的顺序排起来就形成了不同的研发流程
研发流程可以分为
- 串行流程和并行流程
串行流程比较简单,对管理的要求低;并行流程比较复杂,对管理的要求高。
- 迭代开发和非迭代开发
迭代开发能让用户尽早使用到软件,尽早获取用户的反馈,但多次迭代后软件的质量会下降,软件整体会越来越散,需要隔段时间就进行代码重构
常见的研发流程
- 瀑布流程
特点:串行,非迭代。适合周期短,功能简单的项目。测试接入晚,很可能出现测试时间不够的情况
- 螺旋流程
特点: 迭代开发+瀑布模型,适合周期长,业务的相关性弱的项目
- IPD 集成产品开发
将研发、采购、 生产等都放到一起并行开展工作
测试工作的阶段和活动
四个阶段
软件测试的工作属于软件研发中的一部分,可以进一步细分为四个阶段:
- 系统测试
- 集成测试
- 单元测试
- 验收测试
软件测试工作实际就是要从各个角度对被测软件进行检查,尽早发现软件中存在的问题,并帮助开发人员定位和修复。