软件测试基础

                                软件测试基础
  1. 软件测试定义

首先要明确测试的定义,所谓测试,就是以检验产品是否满足需求为目标。
而软件测试,自然是为了发现软件(产品)的缺陷而运行软件(产品)
比较标准的软件测试的定义是:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估。

软件测试的目的:
测试目的会随着不同测试阶段而有所侧重点,主要体现在:
1 发现缺陷
尽早和尽量多的发现被测对象中的缺陷,应该是测试人员测试过程中最常提起的一个测试目标,也是所谓测试价值的一个的重要体现。发现缺陷的目的是推动开发人员定位和修复问题,测试人员通过再测试和回归测试,确保开发人员已修复缺陷,并没有影响原来正常的区域,从而提高产品质量。开发生命周期的每个阶段,都应该有测试的参与,并尽量多的发现本阶段的缺陷,从而大大提高本阶段的缺陷阶段遏制能力,从而提高测试效率、降低成本和提高质量。
软件产品的质量是多维度的,因此软件测试的关注点不仅仅在被测对象的功能上面,各种非功能质量属性都应该是测试的关注点。
2 增加信心
当测试过程中发现很少或没有发现缺陷时,测试就可以帮助树立对于软件产品质量的信心。除了没有发现缺陷时可以降低风险增加信心之外。通过测试增加信心还体现在:
例如:假如我们参加用户现场的验收测试,此时测试的主要目的是为了确保软件产品可以正常工作,从而增加用户对使用产品质量的信心。
(1)评估质量:通过测试过程提供的各种数据,可以帮助利益干系人评估被测软件产品的质量。例如:根据测试过程中发现缺陷的累积趋势、测试执行的进度数据、执行通过率和覆盖率等,可以判断软件产品是否满足计划中定义的质量要求;
(2)评估进度:通过提供的各种数据,可以帮助管理人员作出是否能及时发布软件产品的决策,包括评估:测试执行进度是否在计划范畴内、开发修复缺陷进度是否满足质量和发布要求等;
评估产品质量和进度情况,测试过程中提供的数据是非常重要的输入。
4)预防缺陷
测试过程中发现的缺陷,以及遗漏到用户现场的缺陷,都应该对它们进行缺陷根本原因分析,找到引入缺陷的主要原因。从测试角度也要分析为什么能发现缺陷,以及为什么缺陷会遗漏到用户现场。
缺陷根本原因分析的目的是从以前软件开发和测试过程中吸取经验和教训,避免同样的问题重复发生,从而改进开发和测试过程。过程改进反过来可以预防相同的缺陷再次引入或遗漏,从而提高软件产品质量,这也是软件质量保证的重要一环。
发现缺陷、增加信心、提供信息和预防缺陷这4个测试目的同样贯穿于整个生命周期,并且4个测试目标是相互支持和补充的。同时,不同阶段、不同利益干系人对不同测试目标的要求和详细程度都会不一样
3. 软件测试原则

测试证明软件存在缺陷
测试的本质是证明软件存在缺陷,而不是软件没有缺陷。

人无完人,只要是人写的代码,肯定不能保证百分之百正确,除非特别简单的功能。即便如此,也会存在各种环境问题,网络问题等,更何况现在软件原来越复杂,缺陷更是难以避免。

不可能执行穷尽测试
举个很简单的例子来说明,比如测试一个计算器功能里的加法,你可以尝试1+1,1+2 ,1+3 …你能把所有数组相加的情况都测试吗,所以穷尽测试时不可能的,更别提是实际情况中,项目进度还有明确时间节点。截止日期。
测试应尽早启动,尽早介入
这条很重要,但是对测试的要求也会更高。
先来讲为什么要尽早启动,举例说明,软件工程和盖房子一样,先也得设计,打好地基,试想假如设计阶段,或者地基没打好,你后面楼房盖得越高,推到重来,或者回头再去修改所耗费的成本也就越大,所以,测试要尽早介入。

系统测试阶段什么时候介入呢,对着需求文档设计测试用例的时候,就开始测试了。软件此时还在设计阶段,测试站在质量和安全性角度,应该多多思考功能本身的可测试性,可靠性,完善用例的同时也可注意下 整个业务流程是否能形成完整的闭环。是否存在明显的需求错误。
软件危机
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列 严重问题。 软件危机包含两方面问题: 一、如何开发软件,以满足不断增长,日趋复杂的需求 二、如何维护数量不断膨胀的软件产品
软件危机的典型表现 对软件开发成本和进度的估计常常很不准确 用户“已完成的”软件系统不满意的现象经常发生 软件产品的质量往往靠不住 软件常常是不可维护的 软件通常没有适当的文档资料 软件成本在计算机系统总成本中所占的比例逐年上升 软件开发生产率提高的速度,即跟不上硬件的发展速度,也远远 跟不上计算机应用迅速普及及深入的趋势
软件危机产生的原因 忽视软件开发前期的调研和需求分析工作 缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划 很难制定 开发过程缺乏统一的、规范化的方法论指导 忽视与用户、开发组成员间的及时有效的沟通 文档资料不规范或不准确,导致开发者失去工作的基础,管理者 失去管理的依据 没有完善的质量保证体系
软件测试的目的 • 测试是程序的执行过程,目的在于发现错误 • 一个成功的测试用例在于发现至今未发现的错误 • 一个成功的测试是发现了至今未发现的错误的测试 • 确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有 明确的书面说明。 • 确保产品满足性能和效率的要求 • 确保产品是健壮的和适应用户环境的
软件测试的原则 • 软件测试应贯穿于整个软件生命周期 • 哪个阶段引入的缺陷最多? • 每个阶段我们都需要测试些什么? • 参与评审、审核相关文档等 软件开发不同阶段引入缺陷的比例 • 软件测试应追溯需求 • 什么是需求?需求说明书 需求是用来约束产品的最终标准 • 依据需求来解决问题 如果软件测试过程中发生争议,将需求说明书作为标准来评判

软件测试的原则 • 测试应由第三方来构造 • 程序设计机构不应测试自己的程序,程序员也应避免测试自己的程序。 • 第三方可以是测试部门,现在流行的测试外包项目也是典型的由第三方来构造测试的情况。 • 穷举测试是不可能的,要遵循Good-enough原则 • 电话号码系统 NNN-XXXXXXXX • Good-enough原则:即不要做过多的测试,也不要做不充分的测试。 • 制定最低测试通过标准和测试内容,然后具体问题具体分析。 • 必须确定预期输出(或结果) • 设计测试用例(包括其他测试内容),必须先给出预期测试结果, 作为检验测试结果的基准。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值