当前位置:文档之家› 对软件测试的认识

对软件测试的认识

对软件测试的认识
对软件测试的认识

---------------------------------------------------------------最新资料推荐------------------------------------------------------

对软件测试的认识

对软件测试的认识赵兴丽(重庆市北碚区西南大学计算机与信息科学学院,重庆北碚 400715)摘要:

本文首先就其软件测试的内容、测试原则、测试方法的分类等做了简要的概述。

然后针对软件中的白盒测试、黑盒测试做了详细论述,分析了灰盒测试的必要性,并对处于黑盒与白盒测试之间的灰盒测试做了较细的分析。

最后对这三种软件测试方法做了对比并总结了自己的一点小小的心得体会。

关键字:

黑盒测试白盒测试灰盒测试测试原则测试方法分类Abstract :

Firstly, the contents of its software testing, test principles, testing methods for classification, a brief overview. Then the white-box testing for software, black box testing are elaborated to analyze the necessity of gray box testing, and in the black box and white box testing gray box testing between the smaller of the analysis done. Finally, do these three software testing methods are compared and summarized their little feelings and experiences. Keywords:

1 / 14

black box testing white box testing gray box testing method for testing the principles of classification 1.软件测试的概述随着人类社会的进步, 经济的发展,各种领域计算机的普及, 计算机软件也遍布了各种场合, 为人们的生活, 工作,学习, 休闲等提供了前所未有的方便。

因此, 当一个软件从雏形到真正的在一台计算机上运行的时候, 谁也不能保证计算机软件能一步到位的满足人们的需求。

所以产生了软件测试, 软件测试在计算机领域占据着不可替代的角色[1] , 是软件开发过程的重要组成部分,它是用来确认一个程序是否能够满足开发之前用户提出的一些要求。

软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。

软件测试是为了发现软件中的错误而执行程序的过程。

在软件生存期中软件测试横跨两个阶段:

一般编写完一个模块后就要对它进行测试,这一阶段称单元测试。

编码和单元测试属于软件生存期中的同一个阶段。

在结束这个阶段后对软件系统还要进行各种综合测试,这是软件生存期的另一个独立阶段,又称测试阶段。

软件测试贯穿于整个软件生命周期中,软件测试并不仅局限于程序测试。

需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明及

---------------------------------------------------------------最新资料推荐------------------------------------------------------ 源程序,都是软件测试的对象。

Grenford J.Myers 就软件测试目的提出了以下观点:测试是一个程序的执行过程,其目的在于寻找错误;一个好的测试用例在于能发现到目前为止还没有发现的错误;一个成功的测试是发现了至今未发现的错误的测试。

测试目的不仅为了发现软件漏洞与错误,而且还对软件质量进行度量和评估,以提高软件的质量。

测试以评价系统性能或者程序属性为目标的活动,能够为软件质量的度量与评估的提供依据。

经过分析错误,找到了错误产生的原因,发现当前开发工作所采用的软件的缺陷,以便对软件过程改进。

通过对测试结果的分析整理,还可以修正软件开发规则,并为软件可靠性分析提供参考依据。

2.软件测试的内容及原则 2.1 软件测试的内容软件测试的内容就是说如果拿到一个完整的软件后,接下来要对软件作怎样的处理,包括对软件的验证和确认。

验证和确认都是软件产品在发布前必须要进行的测试活动,二者的区别是测试环境和测试目的不同。

2.1.1 验证(verification) 验证(verification)就是保证该软件正确地实现了一些特定功能, 即保证软件做了人们所期望软件能够实现的功能。

3 / 14

主要包括以下几个方面:

1.确定软件生存周期中的一个给定阶段的产品是否达到前一阶段确立的需求过程;

2.程序正确性的形式证明, 即采用形式理论证明程序符号设计规定的过程;

3.审查、测试、检查、审计等各类活动, 或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。

[5][8] 验证是指已经实现的软件产品是按照它的需求做的,是符合需求说明书的。

验证测试是指测试人员在模拟用户环境的测试环境下,对软件进行测试,验证已经实现的软件产品或产品组件是否实现了需求中所描述的所有需求项。

2.1.2 确认(validation) 确认(validation)是要做一系列的活动和过程, 目的是为了证实软件在一个给定的外部环境中的逻辑正确性。

从而能够保证软件以正确的方式来做了某一个事件。

包括以下一两个方面::

[5][8] 1.静态确认, 程序不在计算机上实际执行, 通过人工分析来证实软件是正确的; 2.动态确认, 通过执行程序做分析, 测试程序的动态行为, 从而证实软件是否存在问题。

确认是指已经实现的软件产品或产品组件在用户环境下,实现了用户的需要,是符合用户需要的。

确认测试是指测试人员在真实的用户环境下,软件产品或产品组

---------------------------------------------------------------最新资料推荐------------------------------------------------------ 件不仅实现了需求中所描述的所有需求项,而且它也是满足用户的最终需要的。

2.2 软件测试的原则软件测试的原则还没有标准的说法,多数是经验之谈。

从开发者的角度出发,开发者希望测试能表明软件产品不存在错误,且已经实现了用户的需求。

从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷;以下几点可以作为测试的基本原则,当然仅供参考:(1)所有的测试应以用户的需求为根本软件测试的目标在于揭示软件中的错误,软件的最终目标是拿来给用户使用。

从用户角度来看,最严重的错误就是那些导致程序无法满足用户需求的错误。

(2) 应当把尽早地和不断地进行软件测试作为软件测试者的座右铭。

这一原则就是要求测试工作尽可能早的进行,一免造成以小失大的的不良后果。

应该在测试工作真正开始前的较长时间内就进行测试计划。

测试计划可以在需求模型一完成就开始,详细的测试用例定义可以在设计模型被确定后立即开始。

因此,所有测试应该在任何代码被产生前就进行计划和设计。

(3) Pareto 原则应用于软件测试1879 年,意大利人

5 / 14

Villefredo Pareto 提出:

社会财富的 80%是掌握在 20%的人手中,而余下的 80%的人只占有 20%的财富。

渐渐地,这种关键的少数(vital few)和次要的多数(trivial many)的理论,被广为应用在社会学和经济学中,并被成之为 Pareto 原则(Pareto Principle)。

[12] 简单地讲,Pareto 原则暗示着测试发现的错误中 80%很可能起源于 20%的模块中。

当某个功能出问题,其对用户的影响有多大?然后根据风险大小确定测试的优先级。

优先级高的测试,优先得到执行,一般来讲,针对用户最常用的20%功能(优先级高)的测试会得到完全执行,而低优先级的测试(另外用户不经常用的 80%功能)就不是必要的,如果时间或经费不够,就暂时不做或少做。

(4) 应由独立的第三方来构造测试专业性、独立性、客观性和公正性是第三方测试最大的优点。

对软件开发商来说,经过第三方测试机构的测试,不仅可以通过专业化的测试手段发现软件错误,而且还帮助开发商提高软件产品的质量,能够对软件有一个比较科学客观的评价,有助于开发商对自己的产品有一个较好的认识与定位。

(5) 充分注意测试中的群集现象测试后程序残存的错误数目与该程序中已发现的错误数目或检错率成正比。

---------------------------------------------------------------最新资料推荐------------------------------------------------------ 不要以为在某个程序段中找到了几个错误就认为该程序中不会有错误了进而就不在进行测试了,其实不然,对于这种错误群集的程序段应该进行重点测试。

(6) 对测试错误结果一定要有一个确认的过程, 一般有 A 测试出来的错误, 一定要有一个 B来确认, 严重的错误可以召开评审会进行讨论和分析。

应该从工程的角度理解软件测试,它是有组织、有计划、有步骤的活动。

3 软件测试的分类根据不同的测试标准,软件测试的种类也不同。

下面就其不同的标准进行了分类,并且着重介绍了黑盒测试、白盒测试以及灰盒测试。

3.1 常用分类按照开发阶段划分软件测试可分为:

单元测试、集成测试、系统测试、确认测试和验收测试。

按照测试实施组织划分:

开发方测试、用户测试(又称测试)、第三方测试。

按照测试技术分为白盒测试、黑盒测试、灰盒测试;也可分为静态测试、动态测试。

3.2 黑盒测试和白盒测试 3.2.1 黑盒测试黑盒测试是通过软件的外部表现来发现其缺陷和错误。

黑盒测试也称功能测试或数据驱动测试,该测试的条件是已经知

7 / 14

相关主题
文本预览
相关文档 最新文档