论文部分内容阅读
随着软件行业在过去几十年中的长足发展,软件已经在国民经济和和社会生产中占据越来越重要的地位,现在各行各业的公司都在加速自己的信息化改造,这些都需要靠软件来实现。软件已经慢慢改变了人们的生活和工作方式。但是随着更多的软件企业参与到软件开发中来,由于竞争的白热化,同质化越来越严重,各软件公司往往将更多的精力放在软件的功能、营销等方面,忽视了软件的质量问题,导致软件在易用性、稳定性、安全性、可扩展性等等方面普遍存在着一定的问题,进而导致在用户和企业中推广困难。如何有效地控制、发现这些软件的质量问题,提高软件产品的质量,是软件产业在发展过程中应该更加关注的问题,也是软件行业在发展过程中面临的巨大挑战。
VM公司是全球领先的虚拟化解决方案提供商,创建于1998年,她把大型机虚拟机技术带到工业标准计算机的所有领域。VM虚拟化解决方案代表了针对计算的开创性的方式,将操作系统和应用软件与底层硬件分离,显著提高了工作效率、可用性、灵活性和可管理性。VM解决方案使机构可以将多台服务器、存储架构和网络聚合到共享的容量池,动态、安全、可靠地按需分配给应用程序,从而提高了硬件利用率并降低了开支。
VM公司由于是虚拟化解决方案的最早提供商之一,其目标是将虚拟化技术的益处推向业界标准的所有计算机,因此公司最早的精力基本上都放在了更多功能的提供和更多平台的支持。其产品也从个人桌面版向企业级产品全面扩张,目前VM公司的企业级产品和个人桌面版产品在市场上还是占据着绝大多数的份额。
但是随着虚拟化概念被越来越多的人接受以及虚拟化技术被成功推广,越来越多的竞争者参与到这个领域中来,这些竞争者提供了很多差异化的功能以及更多平台的支持,但是价格相对低廉。因此越来越多的企业和个人逐渐转向这些产品。
VM公司目前面临的挑战是由于公司将精力集中于过多的产品线扩张,从而导致产品质量开始下降,导致用户和企业的抱怨开始增多。同时由于更多其它厂商虚拟化产品的出现,用户选择的余地也逐渐变大,开始慢慢转向其竞争对手的产品。
GOS项目是VM公司ESX server产品源代码质量控制的环节。由于公司的精力前期主要放在产品扩张上面,没有过多地关注产品的质量问题。随着ESXserver的功能等方面的逐渐增强,开发测试规模的逐渐扩大,开发和测试中的问题开始凸现出来,导致源代码质量逐渐下降。同时GOS项目有其特殊性,GOS项目组成员分布在不同的国家,维护开发人员在美国,代码测试人员分布在中国和印度。由于地域、语言和文化上的差异,导致项目组内部沟通、协作、资源分配等等方面出现问题,这些问题最终也将会显现在源代码质量上面。
由于ESX server软件源代码质量问题导致的产品质量问题日益严重,正受到越来越多的用户的抱怨,有的用户甚至已经开始选择其它厂商的产品。因此解决ESX server源代码质量控制问题成了摆在GOS项目未来发展中一个很重要的任务。
目前GOS项目控制源代码质量的主要方式为:首先完成源代码的开发,然后进行测试,测试过程如果发现缺陷,需要经过修复。这样通过测试及修复后的源代码质量将比原来有质的提高。这种控制方式主要依靠代码测试,对测试的要求较高,测试质量的好坏直接关系到源代码质量的好坏。而代码测试质量的好坏主要是由三个因素决定的,第一为代码测试用例的好坏,好的代码测试用例直接引导测试人员发现缺陷。第二为测试方法的好坏,好的测试方法能够起到事半功倍的效果。第三为缺陷跟踪与管理,好的缺陷跟踪与管理过程能够保证原来已经发现的缺陷在代码进行修改之后不再重复出现。
通过对ESX server的缺陷进行统计,并通过鱼骨图法和头脑风暴对产生这些缺陷的因素进行分析,定位了影响源代码质量控制环节问题的主要因素和次要因素。其中主要因素包括:代码开发过程源代码质量控制有问题、代码测试过程缺陷跟踪与管理过程无效、代码测试用例未能反映真实测试需求、代码测试方法落后测试水平低。间接因素包括:团队沟通低效引发严重代码质量问题、资源配置不合理间接导致代码质量问题。
代码开发过程源代码质量控制有问题主要是由于开发人员开发过程中不遵守统一的开发标准,态度不认真导致语法错误、算法和逻辑错误、在原来源代码中引入很多新的缺陷等等。代码测试过程缺陷跟踪与管理过程无效主要是GOS项目目前的测回归测试无法保证以前发现的缺陷在新的版本中不再出现。代码测试用例未能反映真实测试需求主要是GOS项目目前的V1.1版本代码测试用例无法引导测试人员去主动发现缺陷,通俗地讲就是需要测试的没有测,不需要测试的却进行了测试。代码测试方法落后测试水平低主要是目前GOS项目的代码测试方法主要是手动测试,这种测试方法由于受人为错误影响较大,导致代码测试的质量偏低。
因此应该加强源代码代码开发过程控制和代码测试过程的控制来有效控制源代码质量。
在实施开发过程的控制中,通过加强评审来控制源代码的质量,同行评审能够有效地解决源代码开发过程控制问题。
在实施测试过程控制的过程中,主要通过提高代码的测试质量,从而提高了源代码质量。
通过实施代码测试过程缺陷跟踪管理策略能够对已经出现过的缺陷进行控制,防止这类缺陷重新出现,能够有效提高源代码的质量。
通过实施代码测试过程测试用例管理策略能够有效地提高测试用例的质量,从而带动测试质量的提升,将能够有效提高源代码质量。
通过实施代码测试过程测试方法策略,能够提高现有测试水平,促进代码质量的提高。