软件测试1
Posted blacka
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试1相关的知识,希望对你有一定的参考价值。
首先要搞懂为什么会有软件?
.生活节奏加快,时间不够用
以前买衣服:到服装店,一家一家的挑选,试穿,觉得合适了就去付款,店员计算多少钱,客户付款
现在买衣服:打开购物软件,淘宝,京东等等输入条件,商品以数据的形式展现在用户面前,客户选择商品,系统自动计算金额,客户在线支付,直接从银行卡扣款
现在的软件有哪些?
APP :抖音,微信,QQ ,淘宝.........
WB端:同城,百度........
公共号
为什么要进行软件测试?
当一款运用程序开发出来时会有各种各样的缺陷,这些软的缺陷会造成重大的经济损失。软件测试的工作就是找出软件中的缺陷,减少因软件缺陷造成的损失。
那什么是软件测试?
行业是怎么对软件测试定义的。1973年Hetzel对软件测试的一个早期定义,他说“软件测试是对程序能够按预期运行建立起一种信心”,就是软件测试更多的是保证软件发布以后有一个质量的信心。现在大家比较通用的经典定义,是1979年Myers提出的,“测试是为发现错误而执行程序的过程”,测试的目的是为了发现错误,而手段是通过执行程序。
现在最新的定义IEEE定义(ISO/IEC/IEEE 29119),“使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异”,测试的手段可以是人工或者是自动的,他的目的是寻找给定的规定的要求和我们实际软件的预期结果他们之间有一个差异,软件测试的目的就是寻找这种差距。
那软件测试到底测什么?测试对象是什么?是不是说我们软件测试它的测试对象就是我们软件本身呢?就是我这个运行的程序本身呢?答案是否定的。软件测试其实在软件的整个研发周期当中,其实都是存在的。他的程序对象从前期的需求到软件的概要设计、软件的详细设计、软件的源码、可运行的软件程序、甚至最后软件运行的这个环境,都是我们软件测试的测试对象,也就是说我们软件测试应该覆盖到软件研发生命周期的方方面面。
软件的五大要素
软件测试有五大要素,就是质量、人员、资源、流程、技术
第一个原则是,测试显示缺陷的存在,但不能证明系统不存在缺陷。也就是经过我们的软件测试,我们可以发现软件当中存在的一些故障,但是经过软件测试,我并不能保证这个软件就没有故障。
第二个原则是,穷尽测试是不可能的,应设定及时终止的条件。我们不可能发现软件当中的所有问题,所以我们也不可能对软件进行无穷无尽的测试,测试当中应该及时的设定测试终止的条件。
第三个原则是,软件测试应该尽早进行。我们来看一个软件度量的一个著名的图表:
图中横坐标是软件研发生命周期不同的一个测试阶段,纵坐标是缺陷在不同阶段的一个占比,几条曲线分别代表各个阶段引入的缺陷,然后这个阶段发现的缺陷和在这个阶段修复这个缺陷所要花的成本。那么从这张图上可以看出,缺陷更多的是在我们软件研发的前期引入的,但是修复这个缺陷的成本是随着我们研发周期的推移不断的攀升,越到软件研发的后期,缺陷修复的成本就会越高,所以我们最经济的做法,是尽可能的在我们研发的前期发现缺陷,并且把这些缺陷修复。
第四个原则是,缺陷具备群集特性。也就是说,我们测试当中发现的大部分缺陷和软件运行失败,往往是由少数的软件模块引起的,在一个模块中,如果我们发现了越多的缺陷,往往也意味着这个模块中有越多的缺陷没有被发现。那发现问题多的模块,可能是这个模块的质量越不好。这个和我们软件开发人员的编程水平,经验和习惯等等有很大的关系。所以说软件缺陷具备群集特性,我们要重点关注这些,越是发现问题多的模块,越是我们应该重点关注的对象。
第五个原则是,测试的杀虫剂悖论。就是我们在测试当中,如果采用同样的测试用例,同样的测试方法,多次重复来测试某一个模块,最后就不能够再发现新的缺陷,所以说我们的测试用例和测试方法应该不定期的评审和修改。并且增加不同的测试方法或测试用例,来测试软件和系统的不同部分,从而发现更多的软件缺陷。
第六个原则是,测试的二八原则。我们的测试时间和资源往往是有限的,要找出软件中所有的错误和缺陷是不可能的,所以测试它总是存在风险,那么这时候要遵循一个原则,就是二八原则。就是我们应该把80%的时间和资源用在20%的重点模块上,重点测试这个软件当中20%的重要模块,来达到我们测试的效率和资源配置最佳的一个比例。
第七个原则是,测试活动依赖于测试背景。针对不同的测试背景进行的测试活动应该是不同的,比如说我们电信级的软件可能对性能、大并发量这种的访问会有更高的要求,而我们的金融软件、银行系统相关的一些软件对安全性的要求可能会更高,我们的测试活动往往要依赖于不同的测试场景进行定义和设计。这是我们软件测试所应该遵循的一些基本的原则。
以上是关于软件测试1的主要内容,如果未能解决你的问题,请参考以下文章
软件测试常见概念(软件生命周期软件开发模型软件质量模型软件缺陷管理软件测试概述软件测试分类软件测试与软件开发软件测试原则黑盒测试方法白盒测试方法性能测试)
软件测试常见概念(软件生命周期软件开发模型软件质量模型软件缺陷管理软件测试概述软件测试分类软件测试与软件开发软件测试原则黑盒测试方法白盒测试方法性能测试)