软件测试的生命周期&测试流程
一、软件的生命周期
二、软件生命周期的阶段
三、软件模型
四、软件测试的基本流程
五、软件开发流程、测试流程梳理
六、C/S与B/S架构
七、对软件测试行业的理解
八、常见笔试面试题
一、软件的生命周期
定义:软件生命周期是指软件的产生直到报废的生命周期。
人类整理的第一个软件生命周期:1970年,瀑布型生命周期
二、软件生命周期的阶段
1. 问题的定义及规划
开发方和需求方共同讨论,主要是确定软件的开发目的及可行性。制定开发计划
1
2. 需求分析
对软件需要实现的各个功能进行详细分析,弄清楚用户对软件系统的全部需求,
要产出《需求规格说明书》。
1
2
比如:登陆这个功能要支持手机快速登录和第三方账号登录
3. 软件设计
把需求分析结果转换成软件结构和数据结构,形成系统架构。(明确“怎么做”)
1
· · · 概要设计:
主要是架构的实现,指搭建架构、表述各模块功能、模块接口连接和数据传递的实现等事务。
比如:要建一栋楼,架构师首先要做好整体规划,要建多少层,外观是怎样之类的,然后拆分功能模块。
· · · 详细设计:
对各模块进行深入分析,对各模块组合进行分析等,这一阶段要求达到伪代码级别,把程序具体要实现的功能、现象等描述出来,其中包含数据库设计说明。
比如:架构师规划好后,开发拿着打散的模块,再落实到每一个楼层,每一个房间,房间里的每件物品等
4. 软件编码
按照详细设计好的模块功能表,编程人员开始编写代码
1
5. 软件测试
在软件编写完成后要经过严密的测试,以发现问题并加以纠正。主要有黑盒测试和白盒测试。
1
· · · 单元测试:
主要是测试程序代码,为的是确保各单元模块被正常编译。有具体到模块的测试,也有具体到类、函数的测试等。——一般是由开发来完成
· · · 集成测试:
单元测试后,将各单元组成完整的体系,测试软件单位之间的接口是否正确,数据能否正常传递。——比如注册和充值这两个功能能否连通
· · · 系统测试:
把软件系统搭建起来,按照《软件规格说明书》中的要求对各项功能进行测试,看是否符合需求、在系统运行是否存在漏洞等——根据测试用例,进行完整的系统测试
· · · 验收测试:
客户拿到软件后,根据前面所提的需求以及《规格说明书》来做相应的测试,已确定软件是否符合需求效果——用户对软件进行验收
(单元测试、集成测试、系统测试之间的区别:句子—段落—文章;砖—墙—楼)
6. 运行维护
是生命周期中持续时间最长的阶段,为了延长软件的使用寿命,适应用户需求,就必须
对软件进行维护。包括纠错性维护和改进性维护。
1
2
三、软件模型
V模型结构图(各个阶段相对应)
四、软件测试的基本流程
需求分析阶段:
阅读需求,理解需求,主要就是对业务的学习,分析需求点
1
计划阶段:
主要任务是编写测试计划,参考软件需求规格说明书,项目总体计划,测试范围,进度安排,
人力物力的分配,整体测试策略的指定,和风险的评估与规避措施有一个指定,一般有测试
主管编写,当然我们也会参与相关的评审工作。
1
2
3
设计阶段:
主要任务是编写测试用例,会参考需求分析、概要设计、详细设计等文档,有不明确的也
会及时和开发、产品经理沟通。用例编写完成后会进行评审。
1
2
执行阶段:
首先搭建测试环境,执行预测,以判定当前版本可测与否,如果预测通过,正式进入系统
测试,遇到问题提交bug到缺陷管理平台,并对bug进行跟踪,知道被测软件达到测试需求
要求,没有重大bug,测试结束。
1
2
3
评估阶段:
出测试报告,对整个测试的过程和版本质量做一个详细的评估。
1
五、软件开发流程、测试流程梳理
开发流程:
需求分析
概要设计、详细设计
编写代码
单元测试
代码审查
集成测试
打包提交测试部
等待测试提交BUG
修复BUG
等待测试回归BUG
N轮之后符合需求
版本上线
面向用户使用
1
2
3
4
5
6
7
8
9
10
11
12
13
测试流程:
需求分析
编写测试用例
评审测试用例
搭建测试环境
等待开发提交测试包
部署测试包
冒烟测试(主体功能预测)
执行测试用例
BUG跟踪处理(提交及回归BUG)
N轮之后符合需求
版本上线
面向用户使用
1
2
3
4
5
6
7
8
9
10
11
12
六、C/S与B/S架构
C/S架构:
client-server,需要安装客户端才能够使用的软件。每次更新都需要更新服务端和客户端,比如超市收银系统,每次更新每台电脑都必须重装客户端,有分店则更麻烦,人力物力财力都耗费很大。
B/S架构:
browser-server,只需要一个浏览器就可以访问服务。只需要更新服务端,不需要更新浏览器,用户主动性较高。比如天猫、淘宝、QQ、爱奇艺等。
七、软件测试行业的理解
根据大家自己的见解,说说大家认为软件测试这个职业的理解以及发展
1.容易入门,不局限是计算机专业的。
2.企业对软件测试人员有大量需求,特别是功能测试工程师的需求。
3.鼠标点点点是初级功能测试工程师局限的工作内容,不仅于此。我们软件测试是分很多
种的:自动化测试,性能测试,白盒测试,安全测试。
4.产品团队一般组成:项目经理、产品、开发(前端、后端、移动端)、测试、UI设计。
大一点的企业还包括:DBA(数据库工程师)、架构师、运维、运营。
测试的主要沟通对象:开发、产品经理、测试经理、研发经理。
5.测试人员的发展:功能测试工程-->自身测试工程师
功能测试工程师-->管理岗
1
2
3
4
5
6
7
8
9
10
11
12
13
八、常见笔试面试题
1.生命周期模型包含哪些阶段?你们的开发模型是什么?
答:软件生命周期包含问题的定义及规划、 需求分析、 软件设计、软件编码、软件测试、
运行维护等阶段。我们公司目前使用的是V模型。
1
2
2.测试流程包含哪些阶段?
答:测试流程包含需求分析阶段、计划阶段、设计阶段、执行阶段、评估阶段等阶段。
1
3.总结下开发流程?
答:需求分析——概要设计、详细设计——编写代码——单元测试——代码审查——集成测试——打包提交
测试部——等待测试提交BUG——修复BUG——等待测试回归BUG——N轮之后符合需求——版本上线
——面向用户使用
1
2
3
4.总结下测试流程?
答:需求分析——编写测试用例——评审测试用例——搭建测试环境——等待开发提交测试包——部署测试包
——冒烟测试(主体功能预测)——执行测试用例——BUG跟踪处理(提交及回归BUG)——N轮之后符合需
求——版本上线——面向用户使用
---------------------
作者:ChaosMax
来源:CSDN
原文:https://blog.csdn.net/ChaosMax/article/details/71628867
版权声明:本文为博主原创文章,转载请附上博文链接!
软件测试的生命周期&测试流程的更多相关文章
- 一步步实现:springbean的生命周期测试代码
转载. https://blog.csdn.net/baidu_37107022/article/details/76552052 1. 创建实体SpringBean public class Spr ...
- activity 和 生命周期 :流程
activity是android的一个基本的组件.讨论生命周期,taskstack等等的话题的时候.就不得不去看一下android framework层的源码了. 生命周期,实际就是系统调用andro ...
- 屏幕旋转时 Activity 的生命周期 —— 测试与结论
关于 Android 手机横竖屏切换时 Activity 的生命周期问题,网上有很多相似的文章,大多数都是说明在竖屏切换横屏时 Activity 会重启一次,而在横屏切换竖屏时 Activity 会重 ...
- Spring Bean 生命周期测试
本文代码GitHub地址 Bean的生命周期是开始创建到销毁的过程.需要实现相关的类BeanNameAware ,DisposableBean, InitializingBean ,并注册Inst ...
- UIViewController生命周期测试
push进入 -[NaviRootVC viewWillDisappear:] -[NextVC viewWillAppear:] -[NextVC viewWillLayoutSubviews ...
- Spring Bean的生命周期 ---附详细流程图及测试代码
一.生命周期流程图: Spring Bean的完整生命周期从创建Spring容器开始,直到最终Spring容器销毁Bean,这其中包含了一系列关键点 假设一个Bean实现了所有的接口,大的概况一下Be ...
- Activity生命周期的运行流程
Activity的生命周期运行流程: ·当Activity第1次被启动: ·onCreate()->onStart()->onResume() ·当Activity被遮挡后再次 ...
- spring中Bean对象的生命周期
经过测试对于具体的一个Bean,执行的流程应该是: 1.实例化: 常见的有构造(有参.无参)实例化.静态工厂(方法是静态,通过类名.方法返回获取).实例工厂(专门有个类负责生产对象,需要在bean中配 ...
- 浅谈Android之Activity生命周期
Activity作为四大组件之一,出现的频率相当高,基本上我们在android的各个地方都能看见它的踪影,因此深入了解Activity,对于开发高质量应用程序是很有帮助的.今天我们就来详细地聊聊Ac ...
随机推荐
- jenkins pipline 用法收集
1.下载多个项目 node { stage('clone'){ dir('test1'){ checkout([$class: 'GitSCM', branches: [[name: '*/maste ...
- 机器学习:Jupyter Notebook中Matplotlib的使用
一.matplotlib绘制折线图 matplotlib绘图的实质是折线图,将所有的点用直线连接起来,由于距离比较密,看起来像是个平滑的曲线: import matplotlib as mpl:加载m ...
- TS学习之解构与展开
一.解构 1.解构数组 let input = [1, 2]; let [first, second] = input; console.log(first); // outputs 1 consol ...
- JavaScript之JMap
在JavaScript中我们利用function类定义类在类的内部我们用var 定义私有变量 私有函数在类的内部我们用this 定义公有变量(1)定义一个类 function JMap() { var ...
- vs2015类中方法前的引用链接不显示的解决方案
在工具→选项,打开如下界面,寻找“文本编辑器→所有语言”中设置显示:<img data-rawheight="761" data-rawwidth="130 ...
- C语言学习笔记--单引号和双引号
(1)C 语言中单引号用来表示字符字面量(是个数值)被编译为对应的 ASCII 码 (2)C 语言中双引号用来表示字符串字面量(是个指针)被编译为对应的内存地址 例如:'a'表示字符字面量(97),在 ...
- C++中的构造函数小结
对象的初始化 对象时类的实例,类是不占用空间的,对象是占用空间的. 因为类是抽象的,不占用空间的,所以我们不能再定义类的时候对对象进行初始化操作的. 但是,我们可以定义一个函数,在类实例化一个对象的时 ...
- 如何将maven项目打包成可执行的jar
如何将maven项目打包成可执行的jar 分类: maven2010-12-17 10:18 10411人阅读 评论(2) 收藏 举报 jarmavenassemblyjava 方法一:将项目及所依赖 ...
- 关于android上dpi/screen-size的厘清解释
android定义了四种screen-size: small normal large xlarge 同时定义了六种dpi级别: ldpi (low) ~120dpimdpi (medium) ~16 ...
- Python通过调用windows命令行处理sam文件
Python通过调用windows命令行处理sam文件 以samtools软件为例 一.下载或者索取得到windows版本的samtools软件,解压后如下: 进入文件内部,有如下几个文件: 二.将s ...