软件测试概要1-1

软件bug引发的惨案(千年虫bug)->软件质量非常重要,所以要有软件测试

课程目标

软件测试含义+软件测试遵循的准则+软件测试的分类和概念+研发周期中什么时候开始测试,如何设计测试方案+测试流程是什么样的,怎么提bug,怎么写报告+为什么要自动化测试

1.软件测试的历史


2.什么是软件测试

早期定义:软件测试是对程序能够按照预期运行建立起一种信心。-Bill Hetzel,1973

经典定义:测试是为发现错误而执行程序的过程。-Myers,1979(目的是发现错误,手段是执行程序)

IEEE定义:使用人工或者自动的手段来运行或测量软件系统的过程,以检测软件系统是否满足规定的要求,并找出与预期结果之间的差异。

3.软件测试的测试对象

软件测试不等于程序测试

在软件的整个研发周期内,软件测试一直都是存在的。


4.软件测试的要素和目标


软件质量是最重要的。其他四个要素都是为软件质量服务的。其次是人,人决定因素,决定技术流程以及资源的配置使用。

技术包含软件测试技术、软件测试方法,包括使用的工具。

技术是手段。流程,是一个规范性要求。资源是测试环境中所需要的各种设备,测试周期,测试时间等。

人是不是资源呢?人的能力千差万别,在测试中担任不同的角色,怒能相互替代。经典的软件著作人见当中,倾向于不把人当做资源对待。

目标:

大的方向,当然是保证软件质量。

具体来说:

是提高测试覆盖率->有效的提高软件质量

测试效率->更好地完成软件测试

5.软件测试遵循的规则

(1)测试显示缺陷的存在,但不能证明系统不存在缺陷。

(2)穷尽测试是不可能的,应设定及时终止的条件。因为我们不可能发现软件测试的所有问题,不可能对软件进行无穷无尽的测试。

(3)软件测试应该尽早进行。


可以看出:缺陷更多的在软件研发的前期引入的;修复的成本随着软件研发周期的推移不断攀升,越到研发后期,缺陷的修复成本就会越高。所以最经济的做法是在研发前期发现缺陷并且修复。

(4)缺陷具备群集特性

也就是说,测试当中发现的大部分缺陷和软件运行失败往往是由少数的软件模块引起的。一个模块中如果我们发现了越多的缺陷,往往说明这个模块中有越多的缺陷没有被发现。发现问题多的模块,可能说明这个模块的质量越不好,和软件开发人员的编程水平、经验、习惯有很大关系。要重点关注问题多的模块。

(5)杀虫剂悖论

在测试当中,如果采用相同的测试用例、测试方法多次中服测试某一个模块,就不能够发现新的缺陷,所以我们的测试用例和测试方法应该不定期的评审和修改,并且增加不同的测试方法。

(6)二八原则

我们的测试时间和资源往往是有限的,要找出软件中所有的错误和缺陷是不可能的,所以测试总是存在风险。我们应该把80%的时间或资源用在20%的重点模块上,达到我们的测试效率和资源配置最佳比例。

(7)测试活动依赖于测试背景

针对不同的测试背景,测试活动应该是不同的。电信级的软件,对性能、大并发量访问有更高的要求;金融软件、银行系统对安全性的要求可能会更高。

猜你喜欢

转载自blog.csdn.net/yysave/article/details/80171231
1-1
今日推荐