技术开发 频道

软件质量需求提高 小Bug蕴含测试大市场

   软件Bug的丑恶嘴脸

   软件Bug是软件世界的“恐怖分子”,是最不招人喜欢的家伙。常听用户抱怨软件不好用,Bug太多,可是软件Bug外貌如何,却总是众说纷纭。

   经过对各种软件Bug特征的综合研究,人们对于软件Bug的丑恶嘴脸有了一些比较系统的认识。判断一个软件运行结果是否属于软件Bug可以从以下几个方面分析,凡是属于下列现象之一者,就是软件Bug。这些现象分别是:

   1. 软件未达到产品说明书标明的功能;
   2. 软件出现了产品说明书指明不会出现的错误;
   3. 软件功能超出产品说明书指明的范围;
   4. 软件未达到产品说明书虽未指出但应达到的目标;
   5. 软件测试人员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。

   在以上5条中,需要特别讨论后面的3条。第3条是说如果软件的功能和特征超出了软件的设计说明书的要求,那么也属于软件的缺陷;第4条是说如果测试者发现软件不正常,尽管设计说明书没有注明,但是根据测试者的工作经验和测试的尝试,也能判断出是否属于软件缺陷;第5条说明了软件测试的根据应该是软件设计说明文档和最终用户的要求。

   掌握软件Bug的这些特征,可以帮助人们采取各种软件测试手段,以便尽早、尽快地发现和报告软件质量问题,降低由于软件Bug造成的各种直接和间接损失。

   可怜的“替罪羊”

   显然,软件Bug都是人为造成的,但是在软件项目开发过程中,面对软件Bug带来的错误,一些软件开发人员却经常为自己的过失开脱责任,美其名曰“都是Bug搞的鬼,都是Bug惹的祸”。软件Bug沦为可怜的“替罪羊”,真是比窦娥还冤!
    “追求完美,根除Bug”是绝大多数软件开发人员追求的目标,但是尽管如此,软件Bug却还是屡见不鲜,原因何在?有些学者给出了软件Bug产生的一些原因:

   1. 开发人员不太了解软件需求,不清楚应该“做什么”和“不做什么”,常常做不合需求的事情,因此产生了Bug。
   2. 软件系统越来越复杂,开发人员不太可能精通所有的技术,如果不能正确地使用技术,将产生Bug。
   3. 软件设计文档不清楚,文档本身存在Bug,导致使用者产生更多的Bug。
   4. 软件需求、设计说明书、程序经常发生变更,每次变更都可能产生新的Bug。
   5. “人无完人”,任何人在编程时都可能犯错误,导致程序中的Bug。
   6. 软件项目由于时间或资源紧张,开发人员经常处于进度的压力之下,急忙之下容易产生Bug,尤其是在软件发布最后期限来临之际。
   7. 开发人员过于自信,喜欢说“没问题”,不真实的“没问题”将产生真正的问题,导致很多软件Bug。

   当然产生软件Bug的原因可能还有很多,例如,沟通上的问题,开发人员的态度问题,以及项目管理问题等。但是从根本上说,软件存在Bug有其必然性,这主要是由软件产品的生产方式和生产过程决定的。软件产品属于无形产品,不能一目了然的看清其“庐山真面目”,虽然靠人为努力可以在一定程度上发现和减少软件Bug,但却不能彻底消除软件中的全部Bug。

   爱恨交加Debug

   软件开发人员寻找软件Bug的产生原因,修正Bug的过程,称为“Debug”,即调试。前文描述了软件Bug的5类表现特征,对于具体的各个软件Bug而言,表现却是千变万化,由此给软件调试和修正错误带来了很大困难。

   通常情况下,软件调试和修正错误的难点不在于如何修正,而在于寻找和定位软件产生的位置困难。对于软件的界面布局错误或界面上的文字表达错误引起的软件Bug,开发人员可以很快地找出原因,在软件代码中迅速定位,然后容易地消除。实际上,任何软件开发人员都可以修正这类软件Bug,犹如快刀切瓜,探囊取物。

   但是要修正软件功能错误,就不总是那么容易了。实际上调试和修正软件功能错误,才是考验软件开发人员水平的真正标杆。某些软件功能错误,由于非常具有蒙蔽性,表面上看上去可能是常见的一些原因造成的,而实际上却往往是其他原因带来的。而且,这些软件Bug经常潜伏于软件代码的许多比较“阴暗”的角落,很难定位产生软件错误的代码准确位置。因此,修正某些软件Bug常常成为软件开发人员的“噩梦”,他们往往为了修正一个较难的软件Bug,需要绞尽脑汁,反复阅读和分析软件代码,设置程序断点,单步跟踪程序的运行结果,截获和分析程序的中间运行数据,试图找到修正错误的“蛛丝马迹”,为此甚至夜不能寐,百思不得其解,这是程序员的“地狱”。当然正确修正高难Bug后的成就感非常强烈,这是程序员的“天堂”,对于程序员而言,天堂和地狱的只有一个Bug那么远。

   需要注意的是软件的全部Bug并不是都需要修正的。在缺陷的修复过程中,我们常常还会受时间、成本等方面的限制而无法有效、完整地修复所有的软件Bug。因此评估软件Bug的重要度、影响范围和市场因素,选择一个折中的方案,考虑软件Bug成为我们在面对软件Bug时一个必须直面的事实。另外,由于错误的关联性,某些软件Bug虽然能够得以修复,但在修复的过程中难免会引入新的软件Bug。很多软件Bug之间是相互矛盾的,一个矛盾的消失必然会引发另外一个矛盾的产生,有时导致顾此失彼,得不偿失。

   小Bug,大市场

   由于市场和用户对软件质量的不断提高,软件行业的竞争逐渐加剧,而且寻找软件错误非常耗费时间和人力资源,所以现在越来越多的软件公司开始将软件测试外包出去,由第三方专业的测试公司进行测试,客观地寻找和报告软件Bug。由此促生了软件外包测试的兴起和迅速发展,产生了具有较大发展潜力的测试市场。

   软件外包是新兴的软件开发模式,我国是继印度之后具有较大竞争优势的软件外包服务提供国之一。在软件外包中,软件测试的门槛相对较低,是最可以先期进入的领域。这两年来,软件外包从软件测试外包做起,已经成为越来越多的软件业人士的共识。实际上,我国软件外包测试已经开始起步,且具有较广阔的市场发展潜力。

   国内已经出现了一些专门提供软件测试服务的公司。仅以软件本地化行业的公司而言,例如北京的一些由软件本地化公司转变而成的软件外包公司,他们正在为大型国际软件公司提供十多种语言的软件外包测试服务,采用到这些大型国际软件公司在中国的研发中心进行现场测试和软件外包公司内部成立测试部门测试相结合的服务方式。据了解,有些软件外包测试公司的测试人员数量已经达到数百人,而且未来两三年内仍将继续快速发展。

   小Bug蕴含大市场,随着软件外包在全球范围的不断深入,我国软件服务行业迎来了发展机遇,扩大软件外包市场先从软件外包测试做起,将成为推动我国软件行业发展的积极策略。

0
相关文章