软件测试的基本概念

一、什么是软件产品?
大多数人认为,软件产品仅仅是从互联网上下载或者从光盘上安装到计算机上的程序。
软件就是从存储设备安装到计算机或终端设备的应用程序
实际上许多“藏在背后”的东西最容易被遗忘和忽视。作为软件测试员,要记得所有这些都是可能含有缺陷的,这就是我们要测试的对象
二、软件产品的构成
需求、功能、设计、界面、文本、说明、按钮、代码
三、软件研发中的过程文件
用户需求 产品需求 需求规格 项目计划 版本计划 技术选型报告 竞争对手报告 同行评审 概要设计 详细设计 测试方案 测试用例 测试计划 缺陷跟踪单 测试报告 操作文档
四、软件开发过程
软件产品从最初构思到公开发行的过程,称为软件开发过程。
开发过程有不同的方法,没有最好的模型
最常见的有四种开发模型:
1 瀑布模型
2 V模型
3 双V模型(W)
4 敏捷模型
开发过程中最常见的——瀑布模型
是一种线性的,顺序的软件开发模型
上一阶段的变换结果就是下一阶段的变换输入,相邻两个阶段具有因果关系,紧密相连
瀑布模型可变形为V模型、双V(W)模型
瀑布模型允许步骤回溯、步骤交叉
测试贯穿全过程,以减少缺陷修复成本,减低项目的进度风险
瀑布模型的特点:
1 线性化的结构
2 各阶段的里程碑特征
3 基于文档的驱动
4 严格的阶段评审机制
优点:
提供了软件开发的基础框架,比靠个人技艺开发好
有利于大型软件开发过程的人员的组织和管理
有利于开发方法和工具的使用
提高了软件质量和效率
缺点:
初始阶段就提出所有的需求,导致软件开发的生命周期很长,用户和项目负责人需要很长一段时间才能拿到需求版本,若进行修改,将会蒙受损失

V模型是瀑布模型的一种进阶
也是软件开发模型中的一个重要的模型,由于结构像V,所以称为V模型
通过开发和测试同时进行的方式爱缩短软件研发周期,提高软件开发效率
单元测试所对应的是详细设计环节,也就是说,单元测试的测试用例是和详细设计一起出现的,在研发人员做详细设计的时候测试人员就开始写测试用例了
集成测试对应概要设计,在做模块功能分析及模块接口,数据传输方法时,就把集成测试用例根据概要设计中的模块功能及接口等实现方法编写出来,以备以后做集成测试的时候可以直接引用
系统测试时根据需求分析来的 在系统分析员作系统分析,编写需求说明书的时候把最后能实现系统功能的各种测试用例写出来,为做最后系统测试做准备
验收测试与用户需求对应,是非设计流程
V模型仅仅是把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证,需求满足情况一直到后期才被验证
解决的思路:
当一个软件开发的时候,研发人员和测试人员需要同时工作,测试子啊软件做需求分析的同时就会有测试用例的跟踪,遮掩可以尽快找出程序的错误和需求p偏离,从而更高效的提高程序质量,最大可能减少成本,同时满足用户的实际软件需求。

双V模型——V模型的进阶
相对于V模型,W模型增加了软件开发各个阶段中同步进行的验证和确认活动
W模型强调:吃伴随整个软件开发周期,而且测试的对象不仅仅是程序、需求、设计等,开发输出的文档同样也要测试(这里针对设计文档,一般可划分为需求设计文档、概要设计文档、详细设计文档和代码文档),也即是说,测试和开发是同步进行的。
优点:
1 测试活动与软件开发同步进行
2 测试的对象不仅仅是程序,还有需求和设计
3 尽早发现软件缺陷可减低修复软件开发的成本

五、软件的生命周期
软件的生命周期又被叫做软件生存周期或系统开发生命周期,是软件的产生直到报废的过程。
周期内有问题 定义、可行性分析、总体描述、系统设计、编码、调试和测试验收与运行、维护和升级到废弃等阶段,这种按时间分过程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,没哥哥阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件质量。
生命周期的每一个周期都有确定的任务,并产生一定规格的文档(资料),提交给下一个周期作为继续工作的依据

六、软件测试的流程
1 需求分析
2 测试计划
3 测试方案
4 测试用例
5 测试执行
6 测试报告

七、软件项目成员
项目经理——Progran Manager
驱动整个项目的运转,负责制定计划,安排人员,管理进度,协调团队,进行重大决策
架构师/系统工程师(全栈工程师)
技术专家,经验丰富,负责整个系统的体系架构的设计以及关键模块的设计
产品经理
负责产品的设计,包括功能,性能,界面–UI,业务流等
程序员/开发人员
设计、编写软件,并修复软件中的缺陷
测试工程师
负责找出软件产品存在的问题并报告
运维工程师
主要是在正式环境对软件系统进行后期的跟踪和维护
资料工程师
负责编写软件产品附带的文件和联机帮助文档
配置管理员
负责管理程序员写的代码和资料工程师写的文档资料,并组合成一个软件包
QA
质量监管人员

软件测试概念
1 软件测试起源
2 软件测试的经典定义是在规定的条件内对程序进行操作,发现其中存在的错误,并对软件质量进行评估
3 软件测试范围是对软件形成的文档、数据以及程序进行的测试,而不仅仅是对程序进行的测试
4 软件测试的重要性:60%以上的软件错误并不是程序错误,而是对需求分析和设计的错误,因此做好软件需求和设计阶段的测试工作就是非常重要的

软件测试的目的
测试不仅仅是为了发现软件的缺陷和错误(bug),也是对软件质量进行度量和评估,以提高软件的质量
1 测试是程序的执行过程,目的在于发现错误
2 一个好的测试用例在于能发现至今未发现的错误
3 一个成功的测试是在于发现了至今未发现的错误的测试

软件测试质量(ISO)
软件测试质量就是 ”软甲明确的和隐含的定义与需求相符的程度“
明确的需求是:
软件符合明确叙述的功能和性能的需求、文档中明确描述的开发标准
隐含的需求是:
所有专业开发的软件都要具有的隐含特征的程度

软件测试的原则
1 所有的软件测试都应该符合用户的需求
2 应当把 “尽早的和不断的测试”作为测试人员的座右铭
3 完全测试是不可能的,测试需要终止
4 充分注意测试中的群集现象
5 测试无法显示软件潜在的缺陷
6 程序员应避免检查自己的程序
7 尽量避免测试的随意性

软件测试对象
1 根据软件的定义,软件包括程序、数据、文档,所以软件测试并不仅仅是程序测试。软件测试贯穿在整个软件生命周期中
2 由于在整个软件生命周期中,各个阶段有不同的测试对象,形成了不同的开发阶段的不同类型的测试。需求分析、概要设计、详细设计以及程序编码等各阶段产生的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都是作为 “软件测试”的对象。

软件测试分类
1 按照开发阶段划分软件测试:
单元测试、集成测试、系统测试、验收测试
2 按照测试实施组织划分软件测试:
开发方测试、用户测试(Beta测试)、第三方测试
3 按照测试技术划分:
白盒测试、黑盒测试、灰盒测试
软件测试方法和技术的分类与软件开发过程相关联,它贯穿了整个软件的生命周期。

软件测试风险
1 软件测试中的软件风险分析是根据预测软件将出现的风

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值