软件开发全过程检测及软件测试自动化(一)

对于软件测试来说,其自身属于具有较强高深性的领域,因此在实际工作过程中必须对产品进行测试,怎样才算是对产品具有足够的了解。针对不同的企业和不同产品,相同企业的不同产品和不同企业的相同产品,在实际操作过程中都会存在极大的差别。

软件开发全过程检测及软件测试自动化(一)

SEI的SW-CMM在它的成熟度第三级的“软件产品工程”关键过程域中,把软件开发周期中不同阶段的测试作为实施活动中的关键实践。(在SW-CMM版本2.0 的讨论过程中,曾经有过提议,在成熟度第二级设立一个关键过程域“软件测试管理”。但在版本2.0 的讨论稿C 中,并没有这样做。从这里我们也可以看出,SW-CMM本身也是一个人为地制定的“软件”。)

通常来说,在开发的不同周期中的不同阶段,对于不同对象所进行的的测试可以划分为以下几种:

单元测试主要是由编程开发人员自行计划和完成,针对单个或者相关的程序单元完成测试。

组装测试主要是对设计阶段进行有效规划,其主要由开发和测试人员合作完成,对于自身所结合的不同单元以及接口进行准确测试。

软件开发全过程检测及软件测试自动化(一)

系统测试其实是对于整个系统进行测试,通过该种方式能够满足自身所规定的的基本功能和质量以及相关性能等多种特性。

回归测试主要是验证以及改变的系统或者其他组件依然具有的设计特性。

验收测试其实是对整个系统进行有效测试,从而保证其自身能够达到交付使用的基本需求。

关于上述各阶段的测试的具体内容及实现的方法,读者可参考SW-CMM及有关软件工程和软件测试的书籍。千万不要停留在只参考SW-CMM,因为该文件只讲述要做些什么,而没有介绍怎样做。同时,所有的资料中谈及的内容及方法,都是一般化的。对于一个特定软件的测试,必须经过使用者对通用的测试方法的改变及改进,才能有效和达到高效率。

下面,谈谈软件测试的其他方面的一些问题。

一个被人忽略的软件测试目的

在谈到测试时,许多作者都引用了Grenford J. Myers 就软件测试目的提出的以下观点:

1.测试是程序的执行过程,目的在于发现错误;

2.一个好的测试用例在于能发现至今未发现的错误;

3.一个成功的测试是发现了至今未发现的错误的测试。

软件开发全过程检测及软件测试自动化(一)

这是一种比较狭窄的观点。作为一个清醒的、纵观全局的软件开发人员或管理者,我们应当从软件过程的角度来看测试。

一个被人忽略的软件测试目的是:测试可以帮助发现当前开发工作所采用的软件过程(也是一个“软件”)的缺陷,以便进行改进。(在以下的讨论中,“错误”与“缺陷”基本上认为代表相同意义。)

怎样理解这种说法呢?

一是明确测试的最终目的并不是找寻出软件中存在的错误,深入分析错误产生的根本原因和错误在实际开发过程中产生的根源,其对于软件测试具有极为重要的现实意义。

根据错误原因的分析,能够在开发过程中对于存在的错误进行更正,另外,该种分析能够帮助测试人员准确的推理出和自身所分析的错误之间产生的密切关联,继而更加有针对性的完成检测方式的测试和设计。

软件开发全过程检测及软件测试自动化(一)

在深入分析过程中发现错误在开发过程中产生的阶段,其自身又会在哪个阶段被发现,在此过程中可以准确判断的便是,从错误产生到发现将会跨越多少阶段。软件开发的基本原则便是及时有效的发现错误,并对其进行修正。当然,更为重要的原则便是尽可能避免错误的出现。倘若错误在软件开发阶段而不被发现,便说明了该开发阶段的检测方式存在极大的缺陷,在此过程中将会形成具有较强针对性的应对措施和方式。该种需求更是软件改进过程中的重要内容。倘若在相同的开发阶段能够及时发现和修正存在的错误,那么开发机构便可以获得高质量的产品和低成本和高效率的软件开发过程。

来源:顶测科技

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年3月7日
下一篇 2017年3月8日

相关推荐