一、软件生命周期
1.什么是软件的生命周期?
软件生命周期就是软件从开始研发到最终被废弃不用的一整个过程。
二、软件生命周期模型
1.瀑布型生命周期模型(基本不用这个模型)
最早期的模型,流程是从上而下的,如同瀑布流水,有顺序性的。
缺点:
测试介入比较晚(有问题的话回溯成本比较高)
测试周期比较长
2.V模型开发和测试同时进行的方式,缩短开发周期,提高开发效率
软件生命周期的各阶段:(重点)
1.问题的定义和规划
主要确定软件的开发目的及其可行性,制定项目总体开发计划2.需求分析
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析,明确客户的需求,输出需求规格说明书(原型图)提交评审。3.设计
把需求分析得到的结果转换为软件结构和数据结构,形成系统架构
概要设计:主要是架构的实现,指搭建架构,表述各模块功能,模块结构链接和数据传递的实现等项事务。
详细设计:对概要设计中表述的各模块进行深入分析,包括数据库设计说明。4.编码
按照详细设计好的模块功能表,编程人员编写出计算机可运行的程序代码。
5.软件测试
先单元测试,再集成测试,系统测试,最后进行验收测试。
6.运行维护
要延续软件的使用寿命
3.敏捷开发模型
以人为核心,迭代,循序渐进的开发方法,就是把一个大项目分为多个相互联系,但也可单独运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
例如:
XM系统:功能:文字聊天,语音聊天,视频聊天,朋友圈,支付,小程序
时间:一年完成
第一版本:实现功能文字聊天,语音聊天 (两个月)
迭代第二版本:实现功能视频聊天,朋友圈 (三个月)迭代第三版本:实现支付,小程序 (三个月)
特点:完成快,结合用户的需求,不断维护更新,弱化文档,通过人与人之间的沟通实现需求分析。
三、软件测试流程
1.步骤解析
1)测试需求分析阶段:参与需求评审会议,分析需求点
2)测试计划阶段:编写测试计划书,测试工作统筹安排(测试内容,测试人员,任务分配,测试环境,工具,时间安排)--- 测试负责人/主管/组长
2)测试设计阶段:编写测试用例,参考需求文档,用例编写完成后回进行评审
3)测试执行阶段:搭建环境,执行冒烟测试,没问题后正式进入系统测试,遇到问题就提交bug到缺陷管理平台,并对bug进行跟踪,知道软件在符合条件可以发布(剩余bug数量很少+用例执行覆盖率),没有重大bug,测试结束。(完善测试用例)
4)测试评估阶段:出测试报告,对整个测试的过程和版本质量做一个详细的评估,确认是否可以上线。2.环境分类:
1)开发环境:开发人员写代码的环境2)测试环境:测试人员进行测试的环境(1个或者一个以上)
3)预发布环境(UAT环境):验收测试(UAT测试)进行的环境
4)生产环境:真实的用户使用环境
四、常见笔试面试题
笔试题:
1.软件生命周期模型包含哪些阶段?你们开发的模型是什么?
软件生命周期模型包含项目规划,需求分析,设计,编码,测试,维护
我们开发的模型是敏捷开发模型
2.测试流程包含哪些阶段?
需求分析,需求评审,编写测试计划,设计测试用例,评审测试用例,冒烟测试,执行测试用例,缺陷管理,输出测试报告,确定是否可以上线。
面试题:
1.你们公司的开发流程是怎样的?立项,需求分析,需求评审,编写开发计划,开发人员进行概要设计(设计项目整理的规划和功能模块之间的关系)和详细设计(设计具体的编码实现功能),编码,开发人员自测,提交测试。
2.你们公司的测试流程是怎样的?各个阶段的输出是什么?测试流程是:需求分析,需求评审,制定测试计划,编写测试用例,评审测试用例,冒烟测试,执行测试用例,缺陷管理,输出测试报告。
各阶段的输出:
需求分析阶段 - 根据需求规格说明书输出项目测试点列表制定测试计划 - 输出测试计划文档
用例设计 - 输出用例文档
执行测试 - 输出bug,缺陷管理
评估测试 - 输出测试报告
3.开发环境,测试环境,生产环境是什么?你在测试环境后台添加的数据和信息,能够在生产环境看到吗?
开发环境:开发人员编写程序的环境
测试环境:测试人员测试时的环境
生产环境:真是用户使用的环境
测试后台添加的数据,生产环境看不到。