软件生命周期概念
软件生命周期别称:软件生存周期或软件开发生命周期(指软件从生产到报废的整个过程,是一种时间的概念)
软件生命周期包括哪些阶段:
1.客户问题引入或定义分析(客户要求,上线时间,目的)--产品经理对接
2.可行性分析--(产品经理、项目经理、开发经理、测试经理、架构师(相当打地基那个人)、技术大佬)
2.1成本(人力、天数)
2.2商业/法律
2.3政治风险:诋毁国家,恶意遭遇
2.4涉黄涉暴
2.5技术难关,根据公司现有技术能力是否能实现项目功能
3.项目招投标--看谁要的钱少,谁相关的工作经历,时间周期
4.项目立项
4.1.成立项目组
4.2人力安排,时间安排
4.3采购服务器
5.需求分析--产品经理收集客户需求,输出需求文档,进行需求分析
5.1参与人员:所有参与项目开发、测试的人员
5.2需求分析谁主导:产品经理
6.开发阶段
6.1UI设计师:输出效果图
6.2开发工程师:进行编写代码
6.3测试:对项目软件进行测试
6.4交付给客户进行验收
7.维护
软件周期模型
*V模型:
1.需求分析:产品经理根据用户需求提炼为项目需求,召开需求澄清会议(需求评审),经过多次讨论分析最终形成一个基线化文档,就叫需求规格说明书,简称SRS【基线文档:代表各方对该文档达成一致,可以进入下一个状态】
2.概要设计:简称HLD,项目分为哪些模块,模块A、模块B、模块C—开发人员输出概设
3.详细设计:简称LLD,针对每个模块怎么实现—开发人员输出详设
4.编码和实现:开发人员编写代码(代码打包成压缩文件 .war/.jar)
5.单元测试:简称UT,又称白盒测试,通过盒子的外部可以看到内部结构和内部逻辑及内部数据(对代码进行测试,由开发人员完成)
6.集成测试:简称IT,又称灰盒测试(接口测试、api测试),模块A/模块B/模块C 单独测试没有问题,放在一起进行测试
7.系统测试:简称ST,又称黑盒测试(功能测试),除了保证当前软件的功能正常使用,还要保证与第三方系统对接不会出现问题
8.验收测试:简称UAT
α(阿尔法测试):由公司内部的开发和测试i人员模拟用户行为操作软件,对此时发现的BUG进行修复
β(贝塔测试):产品已经交付到客户手中,此时出现BUG客户进行收集发送邮件抄送项目组
9.上线
项目经历了哪些阶段,每个阶段的输入与输出是什么?
输入 输出
需求分析 用户需求 需求规格说明书(SRS)
概要设计 需求规格说明书 概要设计文档
详细设计 概要设计文档 详细设计文档
编码阶段 详细设计文档 代码包
单元测试 开发打包部署环境 单元测试报告
系统集成测试 单元测试报告 系统集成测试报告
验收测试 系统集成测试报告 验收测试报告
W模型:V模型的补充,将测试贯穿整个软件生命周期
*H模型
SRS澄清:需求评审,得到需求规格说明书
review(评审):测试人员要参与
TPM(测试经理):编写测试计划(规定的测试范围、人力安排、软件与硬件的资源、测试进度、风险评估)
风险评估:1.新人参与测试
2.项目需求延期提测
项目组中常用的评审有哪些?(用例评审,谁写的谁讲)
交叉评审:测试组内同事之间进行评审
组内评审:项目组开发、测试、UI设计、产品经理进行评审
会议评审:有客户参与
testlink:是一款用例管理工具
TPM或测试骨干或运维人员搭建环境
公司有哪些环境?
·开发环境:开发人员编码使用的环境
·测试环境:测试人员使用当前项目软件的环境
·预发布环境:模拟用户使用场景、产品经理验收使用
·生产环境:线上环境、真实环境
环境搭建好之后,开发人员将开发的功能代码打包(.war/.jar)交由TPM或者运维人员进行部署到测试环境,部署完成之后重启服务器,就可以通过浏览器访问,项目部署一般都是在linux服务器上
冒烟测试:对主体功能进行测试,在sit1系统集成测试之前进行,在测试用例中选取20-30条用例进行测试
例:QQ登录功能主题是什么?-QQ登录功能
QQ注册功能主题是什么?-成功注册新的QQ
冒烟测试不通过-版本打回,由开发人员去重新编码修复,修改完成之后再次进行打包部署,再次执行冒烟测试,一直到冒烟测试通过为止
系统集成测试
SIT1:又称全量测试,第一轮,需要测试所有编写的测试用例 (例如编写了1000条用例需要全部执行测试完成)
SIT2:又称回归测试,第二轮(例如450条用例)
回归测试测试哪些内容?
1.测上一轮发现BUG的用例
2.测试与上一轮发现BUG的相关模块的用例
3.每一轮都在执行猫眼用例
4.测试新增加的用例
SIT3回归测试...(例如100条)
SIT4回归测试...(例如60条)越来越少
达到准出标准,输出测试报告
上线硬性标准0BUG,允许带1个易用性BUG上线(易用性BUG不会影响功能使用),当前版本发现的易用性BUG如果要留到下一个版本中解决,必须做好记录并且要以邮件告知项目组相关成员
项目与产本:现有项目然后才有产品
项目与版本:一个项目会有多个版本
项目上线:产品经理会提前告知相关人员具体上线时间,测试人员配合上线前,上线中及上线后的工作
上线前:测试人员做随机测试或者交叉测试
上线中:整理当前版本的相关文件记录进行归档
上线后:正式环境中进行测试(所有的测试都按照用户的操作进行验证)
灰度发布:小范围发布,降低风险
敏捷开发模型:周期短—1-2周一个版本
轻量级—每个版本的任务量不会太多
晨会—15分钟左右(1对前一天工作的总结,2对当天开发工作进度安排,3是否存在延期风险)
迭代开发模型:将复杂且周期长的项目,划分多个独立的功能模块,分多个版本开发
例微信:聊天列表、通讯、收藏、零钱、扫码支付
第一个版本:聊天列表、通讯录
第二个版本:收藏
第三个版本:零钱、扫码支付
|
|