当前位置:文档之家› 中国应用软件质量管理白皮书(2010.12)

中国应用软件质量管理白皮书(2010.12)

中国应用软件质量管理

白皮书

中国信息主管网

中国软件评测中心

中国测试平台网

二零一零年十二月

目录

一、应用软件质量现状 (1)

1.现状 (1)

1)外包之痛 (1)

2)故障之最 (3)

3)测试之痒 (4)

2.根源 (5)

1)人才的缺乏 (5)

2)需求的扭曲 (6)

3)测试的缺失 (7)

3.出路 (8)

二、应用软件质量管理 (9)

1.生命周期管理 (9)

2.自动化测试 (10)

3.整体解决 (11)

三、软件质量管理和测试市场 (13)

1.市场情况 (13)

2.产品特征 (15)

3.使用对象 (15)

四、软件质量管理和测试工具概述 (17)

1.定义 (17)

2.分类 (17)

1)负载压力测试工具 (17)

2)功能测试工具 (18)

3)白盒测试工具 (18)

4)测试管理工具 (18)

5)测试辅助工具 (19)

●开源测试工具 (20)

●非开源测试工具 (20)

五、软件质量管理和测试工具分析 (21)

1.测试管理工具 (21)

1)HP Quality Center (21)

2)Rational TestManager (22)

3)SilkCentral Test Manager (23)

4)Oracle Test Manager(OTM) (24)

2.功能测试工具 (26)

1)QuickTest Professional(QTP) (26)

2)Rational Function Tester(RFT) (27)

3)Oracle Functional Testing(OFT) (27)

第1页共2页

4)SilkTest (29)

3.性能测试工具 (33)

1)LoadRunner (33)

2)Rational Performance Tester(RPT) (34)

3)Oracle Load Testing(OLT) (34)

4)SilkPerformer (35)

4.Java代码测试工具 (37)

1)FindBugs (37)

2)PMD (38)

3)CheckStyle (38)

4)Hammurapi (38)

5)Sonar (39)

6)LDRA Testbed (39)

六、软件质量管理发展趋势 (41)

1.软件质量管理市场发展趋势 (41)

1)资金投入越来越高 (41)

2)培训市场不断壮大 (41)

3)第三方测试业务逐步开展 (42)

4)外包测试服务极具潜力 (42)

2.软件测试技术发展趋势 (43)

1)软件测试技术进入快速发展轨道 (43)

2)自动化软件测试技术应用越来越普遍 (44)

3)测试技术不断细分 (45)

3.软件质量管理人才发展趋势 (47)

4.软件测试工具未来发展趋势 (48)

附录1:软件测试书籍 (1)

附录2:其它测试工具 (11)

附录3:选择第三方测试机构的注意事项 (16)

随着中国软件产业的迅速发展,软件应用领域的持续扩展,软件项目的规模和复杂度都大幅度增长,使得软件质量管理在软件开发中的作用日益增强。如果在软件开发过程中没有对软件质量进行很好的控制,不仅会使软件的功能、性能等方面出现偏差并对应用造成影响,同时也对软件开发的时间和资金成本控制产生消极的影响。因此,当前中国各行业用户应用软件开发质量状况是非常值得关注的。我们为此进行了一次大规模调查,分为电话呼叫和网络调查两种方式,并将收到的2505份有效问卷作为样本进行分析,探讨用户在软件开发应用中面临的问题,寻找软件质量管理的典型用户与案例,对质量管理与软件测试工具做全方位的评测,对软件质量管理的未来发展做出预测。

一、应用软件质量现状

当前,在我国的各个行业中,企业信息化正在得到飞速的发展。企业出于管理和业务的需要,为提高效率、降低成本,企业纷纷进行应用软件和系统的开发使用。而他们的开发和使用状况究竟如何,是否存在软件质量问题呢?

1.现状

1)外包之痛

根据我们的调查统计,在企业获取应用软件的方式中,采用自行开发的企业所占的比例近半,占总量的42%,其次是购买标准产品占31%,两者合计占调查总量的七成以上,成为主流的应用软件获取方式,而普遍被看好的软件外包和委托第三方开发的比例很低,如图1-1-1所示。

图1-1-1 企业的应用软件获取方式

如果从企业的所在行业来考察,不难发现技术水平也是影响企业获取应用软

件方式的重要因素。在技术优势比较明显的IT 及互联网行业企业中,自行开发

方式的比例进一步提升,达到66%。而在从事工业、制造业的企业中,采用自行

开发应用软件的比重降至17%,而采用购买标准产品的方式却成为主要方式,占

到48%的比例,如图1-1-2。

图1-1-2 两个行业企业应用软件获取方式

自行开发42%

购买标准产品

30%委托第三

方开发

11%与外包相

结合

17%

工业及制造业IT 及互联网

同样,按照各个企业所在城市来分析也可以得到类似的结论。在北京、上海、广州三城市中的企业,采用自行开发方式占53%,相比其他方式高出一倍以上。而在省会、其他大城市中的企业,采用自行开发与购买标准产品方式的比例不相上下。在位于我国中小城市的企业中,购买标准产品的占42%,成为获取企业应用软件的主流方式,如图1-1-3。

图1-1-3 不同地域企业企业应用软件获取方式对比

很多企业投入大量的人力、资金和资源,热衷于自行开发应用软件,主要是因为此种方式确实能够最大程度的贴合企业需求。而没有技术和资金实力的企业,则大多选择购买标准产品,主要是因为标准产品一般经过专业的开发、严格的测试,即使不能完全贴合业务需求,但有着较好的质量,故障率较低。由此可见,当前企业放弃经济高效的委托第三方或外包的方式来开发应用软件,正是因为当前的应用软件开发质量不高,使企业不得不做出投入更大、效率更低的选择。

2)故障之最

当企业的应用系统正式上线运行的时候,应该能够为企业提供不间断的服务和支持。企业一定不希望系统有故障发生,因为故障甚至停顿都会对企业造成严重的影响和经济损失。但当前的应用系统故障,大多由软件故障引起。我们经调查发现,各个地域的企业均认为软件问题是系统故障的首要原因。其中北京、上

海、广州三城市的企业占60%,省会、其他大城市的占52%,中小城市的占51%,均超过半数,见图1-1-4。

图1-1-4 不同地域企业对系统故障产生原因的对比

软件是应用的灵魂,是一个IT应用系统的精髓,但当前在众多企业眼中,却成为IT应用系统故障的祸首。由此,当前我国应用软件的质量可见一斑。

3)测试之痒

软件质量和软件测试的关系最为密切,测试是软件质量的最终保障。虽然软件测试应该在软件开发中占据极为重要的位置,但目前国内软件测试行业的发展还处于较低阶段,软件测试行业并未被足够重视。在接受调查的企业中,从事自行开发以及二次开发应用软件的企业只有68%设置了测试部门。在北京、上海、广州的企业中,设置了测试部门的企业比例为59%,超过了未设置测试部门的企业;而在其他大城市和中小城市两个分类中,设置测试部门的企业比例均未过半,如图1-1-5。

图1-1-5 测试部门设置情况的地域差异

可见,当前我国应用软件的质量还存在不少问题,很多企业在对应用系统和软件进行了大量投入之后得不到相应的回报。如果不能及时解决,就会降低企业信息化的积极性,限制了企业的发展空间,最终制约整个软件产业的发展。

2.根源

1)人才的缺乏

任何行业的发展都离不开高水平人才的支持,软件质量管理和测试行业也是如此。而当前很多高水平、有潜质的从业者都选择软件开发而不是测试作为发展方向,国内普遍存在着重开发轻测试的思维,认为开发更需要技术含量,而测试只是进行简单的重复性工作。实际上,一个高水平的软件测试人员需要非常强的综合能力,既对开发过程和技术极为熟悉,又熟悉业务流程,才能设计出优秀的测试用例,确保测试的质量。在国外,软件开发企业中软件测试和软件开发人员的比例在1:1甚至2:1,而当前国内大多数软件公司都在1:2以下。在调查中我们发现,企业对软件测试的期望中,比例最高的期望开展专业培训,这也说明当前我国软件测试人才,特别是高水平高层次的人才极为缺乏。

图1-2-1 企业用户对软件测试的期望

2) 需求的扭曲

需求分析是指理解企业的需求,并根据需求进行设计并最终转化为软件,是

软件项目取得成功的前提。前面提到软件外包不能很好的满足企业的应用,大多

是在软件的需求分析阶段就出现了问题。如果从需求分析开始就和企业实际需求

存在偏差,不能真正了解企业的业务流程,开发出符合要求的软件根本无从谈起。

按照我们收到的有效问卷,各行业对需求分析的重视程度并不相同。其中IT 及

互联网企业认为需求分析这一环节需要加强的比例最多,

其中不乏一些本身就从

事软件开发行业的企业,他们也许经常会面临需求的反复修改和确认等问题。如

图1-2-2所示。

图1-2-2 认为需求分析需加强的行业对比

在调查中我们发现,技术实力雄厚的企业会选择自行开发,即使不自主开发,也会针对第三方开发后的软件进行二次开发。在电信、教育及科研单位、工业及制造业三个行业领域,可以明显的看出自行开发与外包相结合的方式相较单纯外包方式被更多的企业采用,见图1-2-3。可见外包软件不能完全符合企业的业务需要,而当软件上线才发现软件并不能完全符合本企业的业务流程的例子不在少数。

工业及制造业电信教育及科研

图1-2-3 工业、教育科研、电信三行业软件获取方式对比

3)测试的缺失

根据我们的调查,特别是一些对软件的性能、安全性以及数据准确度要求较高的行业,如医疗、电信、金融、交通等行业,认为测试环节需要加强的比例较高,见图1-2-4。

图1-2-4 认为测试需加强的行业对比

软件测试是对软件产品进行验证和确认的活动,其目的是尽快尽早地发现在软件产品中所存在的各种问题,是软件项目取得成功的保障。软件测试应该是贯穿于整个软件生命周期的,因为在软件开发过程中,越早发现问题并修正,则会付出越小的成本。当前普遍存在重开发轻测试的现象,软件测试未能得到及时、合理、有效的应用,例如仅仅在系统上线前进行简单的测试,或者只进行缺陷测试而不进行性能测试等。这些非专业、不完整的测试均不能给软件的质量提供有力的保证,这正是导致应用软件质量不佳的原因。

3.出路

其实,随着企业业务系统的不断增多,在软件实施的过程中未知因素也会不断增多,难度也不断加大,使得软件质量不佳。要扭转这种局面,提升应用软件质量,就必须进行系统的质量管理、质量跟踪和质量保证,设立软件质量管理制度和流程,应用AQM等解决方案来搭建企业应用质量管理和软件测试平台,依托专业的管理和测试工具,进行功能、性能、安全等全方位的测试。

二、应用软件质量管理

软件质量管理是一个庞大、复杂而且系统的概念,包含质量计划、质量保证和质量控制三个过程域。企业要进行应用软件的质量管理,就要从整体着手,管理和技术双管齐下,借助专业高效的质量管理方法和测试工具,才能完成这个目标。

1.生命周期管理

在软件质量管理的问题上,接受我们调查的企业用户较为一致的认为应该进行软件的全生命周期管理,占33%,无论从软件质量控制的角度还是从软件开发管理的角度,当前的企业用户都认为在各个环节和阶段需要质量管理和测试的介入,以保证软件的质量。因为这样,才能够尽可能早的发现软件产品存在的缺陷,对产品进行改进,从而把成本控制在最低。要进行软件的生命周期管理,就要引入完整的管理体系和诸如HP Quality Center的管理平台,从生命周期的前端就开始关注应用程序是否提供了满足业务要求所需的功能,从而将质量管理贯穿于软件生命周期,才能更好的保障开发的应用程序具备稳定可靠的功能和质量。

图2-1-1 企业用户对软件质量管理的期望

2.自动化测试

软件测试是软件质量管理中最直接的手段,也应该是标准化的管理方式之一。但是,目前仍旧存在的完全依赖手工测试的方式具有一定的局限性,已不能满足软件质量管理和测试的需要。特别是自动化测试软件在需要模拟大量数据或大量并发用户、覆盖完整的代码路径、繁琐复杂测试中的先天优势,应该在软件质量管理和测试中得到广泛的应用。通过调查,我们发现专业的测试软件使用还不是很高,在技术密集型企业,如IT及互联网企业大多使用专职的测试团队进行软

件测试,占近65%;而在工业及制造业企业最多采用手工错误排查。在实际的软件质量管理和测试过程中,采用自动化测试和手工测试相结合的方式是最佳的测试方法,但由于大多企业测试人员的缺乏,这些测试都由专职的测试团队来完成了。

图2-2-1 三行业测试方式对比

美国友邦保险公司是一个典型的例子,由于在中国的业务迅速发展,其对应用系统开发周期与质量的要求越来越高,而原有的低效的手动测试已经远不能满足业务需求,需要通过高效的自动化测试工具来取代原有的测试方式。最后他们选择了HP的自动化测试工具—HP QuickTest Professional和HP TestDirector,并

制定了测试方法和过程。他们深入研究自动化测试工具的高级功能和使用方法,提高了投资回报率。同时他们使用HP LoadRunner软件进行自动化的性能测试,不仅获得了系统性能数据,更重要的是帮助定位性能瓶颈,并通过多次调优与验

证的循环将系统性能充分释放。他们努力提高自动化测试的覆盖范围,不轻易放过任何一个可能存在缺陷的角落;大力提升测试自动化程度,不仅限于测试执行的自动化,更将视线前移到了更加关键的测试准备工作的自动化上,目前已经初步实现了在HP测试软件的基础上通过自行开发工具,做到测试用例和测试数据的自动生成,以及测试用例的积累和复用,而这一点正是实现自动化回归测试——验证系统可靠性和稳定性的基础,为该公司业务系统高效稳定的运行提供了良好的保障。

3.整体解决

随着企业应用软件规模的增加、复杂程度的提高,各个应用软件系统之间存在着错综复杂的关联,软件质量管理已不是一个简单的问题。在我们的调查中,企业对软件质量的要求却相当多的,48%的用户因为应用软件的功能、性能、安全都需要测试,这也充分说明了软件质量管理应该关注到软件的各个方面。

图2-3-1 企业用户认为需要进行测试的范围

通常,在一个大型的软件质量管理体系中,应该包含整体的规划以及涵盖软件质量各个方面的测试。例如中国南方电网旗下的特大型企业深圳供电局,在进行生产系统、营销系统、数据集中等业务应用系统建设的时候,就采用了“应用质量管理整体解决方案”,给软件系统做全面体检。他们首先建立了质量风险管理模型(ARMM)作为企业实验室运作和管理模型,这一模型将从开发到测试的

全过程控制应用质量的风险、减少由于软件质量造成的错误。然后实施了HP测试管理、性能测试以及功能测试的整体解决方案,应用TestDirector for Quality Center、LoadRunner、QuickTest Professional等一系列功能强大的专业工具,使业务软件和应用软件的质量和性能可衡量可量化,提前发现并解决问题,做到系统上线后万无一失。正是这些出色高效的软件测试工具,保证了软件的质量,降低系统上线风险,从而确保该企业信息化投资的价值,也推动了企业的发展。

三、软件质量管理和测试市场

事实上,软件质量管理和软件测试是一个很有发展潜质的行业,通过对当前我国软件测试市场情况的了解,我们可以进一步了解这个行业,为软件质量管理寻找解决方案。

1.市场情况

高效的软件质量管理和测试离不开软件测试工具,对于大型的软件开发商来说,其拥有雄厚的财力,丰富的人力资源,完全有能力去开发企业产品测试所需的软件测试工具,对于那些不想要投入人力、财力去自主研发企业所需的软件测试工具的大型企业来说,便可以购买现有的商业化的软件测试工具;第三方测试机构为了从事商业活动,更是需要专业的软件测试工具,那么商业化的软件测试工具便是其首要选择。一套商业化的软件测试工具便宜点的要几十万,贵的要几百万甚者上千万,由此可见,软件测试工具的市场是非常广阔的,而且给软件测试工具开发企业带来的利润也是相当可观的。

“九五”以来,我国测试工具产业总的形势是向前发展的。主要表现在:①测试工具行业销售收入以年平均增长率8%不断递增,达到年销售平均增长率超过25%;②测试工具产品紧跟国际发展的步伐,涌现出一批技术先进的新型产品;

③测试工具产品出口创汇有了明显增长;④一批具有相当规模和发展前景的民营企业的崛起,是我国测试工具产业发展的新兴力量。这批企业中,有从事自动化系统集成的高新技术公司,它们的崛起对我国测试工具产业的发展已经产生并将继续产生巨大的推动和影响。

虽然我国测试工具产业有了一定的发展,但远远不能满足国民经济、科学研究、国防建设以及社会生活等各个方面日益增长的迫切需求。我国测试工具产品,绝大部分属于中低档技术水平,而且可靠性、稳定性等关键性指标尚未全部达到要求。高档、大型工具几乎全部依赖进口,国外公司占有国内市场60%以上的份额。

从国内外在软件测试工具的研发投入情况来看,国际著名测试工具公司用于科技创新的开发资金一般都超过年销售额的10%,而我国测试工具企业不仅销售金额不高,用于科技创新的开发资金一般不超过年销售金额的8%,相比之下企

业科研经费投入少得可怜。国家在“九五”期间虽然加大了投入资金,但同发达

国家相比仍然只算是杯水车薪。

从市场占有率来看,大部分用户使用国外的测试工具,且以HP 公司的系列

产品的比例最高。在性能测试和功能测试方面,HP 公司的LoadRunner 和Quicktest

Professional 占据较大优势,显示出其在软件测试工具中的领先优势,同时IBM

和Micro Focus 等公司的产品在这个领域中也占有一席之地,如图3-1-1。在缺陷

管理工具方面,同样是国外软件占有绝对优势。多数企业用户会选择TestDirector 、

ClearQuest 等专业产品,即使对于资金有限的企业,也会选择BugZilla 等开源软

件,只有16%企业会自行开发缺陷管理工具,如图3-1-2。 图3-1-1 企业常用的测试工具比例 图3-1-2 缺陷管理工具的市场占有情况

0%10%20%30%40%50%

HP TestDirector for Quality Center 33%IBM ClearQuest 21%Seapine TestTrack

3%ATLASSIAN

JIRA 7%Bugzilla

7%

Mantis

2%

自行研发

16%

其它工具11%

2.产品特征

软件测试工具主要是以软件产品的形式出现,软件作为一种无形的知识产品,对于价格的衡量没有统一的标准。商业化的软件测试工具,界面友好,用户使用简单方便,但在研发的工程中投入了大量的人力、财力,因而产品价格非常高。

对于一些大型的软硬件设备生产企业来说,其拥有雄厚的财力,又不愿意投入人力、财力去研发相应的软件测试工具时,就会选择购买那些商业化的软件测试工具;对于一些中小型的软硬件设备生产企业来说,其没有雄厚的资金作为支持,又没有丰富的人力资源,既不能自主研发需要的软件测试工具,又无力购买商业化的价格高昂的软件测试工具,为了满足企业生产的需要,只能选择使用开源软件。当现有的开源软件无法满足这些中小企业的需要时,他们就不得不使用盗版的商业软件测试工具。

3.使用对象

测试并不仅仅是为了要找出错误,测试方还需要对错误进行归类和总结,通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进,更好地帮助用户。根据软件工程的要求,测试工作应贯穿开发的全过程。

测试工作的高效快速进行离不开软件测试工具,由于用户、开发企业和第三方测试机构与开发过程中的测试工作息息相关,故以上三者均是软件测试工具的用户。

用户是应用软件需求的提出者,对于软件应该完成的功能是非常清楚的,是进行功能验证的最佳人选。客观情况是,大部分的用户都不是计算机的专业人士,很难对系统的内部实现对过程深入的分析。鉴于以上原因,对于一般的用户来说,不会为了购买一款或者几款产品,去购买商业化的软件测试工具对购买到的产品进行测试。对于一些重大项目的采购,这些用户一般会选择委托第三方测试机构进行相应的产品测试;对于一些普通的项目需求,这些用户一般会选择采用开源的软件测试工具、甚至是手工进行测试。

开发企业是应用软件的生产者,其负责应用软件的编码和程序的调试工作。对于软件生产商来说,为了保证开发的软件产品的质量,就需要对软件进行测试,

测试的过程自然离不开软件测试工具。对于大型的软件开发商来说,其拥有雄厚的财力,丰富的人力资源,完全有能力去开发企业产品测试所需的软件测试工具,对于那些不想要投入人力、财力去自主研发企业所需的软件测试工具的大型企业来说,完全可以购买现有的商业化的软件测试工具;对于一些中小型的软硬件设备生产企业来说,其没有雄厚的资金作为支持,又没有丰富的人力资源,既不能自主研发需要的软件测试工具,又无力购买商业化的价格高昂的软件测试工具,为了满足企业生产的需要,只能选择使用开源软件。当现有的开源软件无法满足这些中小企业的需要时,他们就不得不使用盗版的商业软件测试工具。目前国内中小企业内使用非正版软件的现象很严重,这对软件测试工具市场是个不小的损失。

第三方测试机构主要负责包括需求分析审查、设计审查、代码审查、单元测试、功能测试、性能测试、可恢复性测试、资源消耗测试、并发测试、健壮性测试、安全测试、安装配置测试、可移植性测试、文档测试以及最终的验收测试等十余项。第三方测试以合同的形式制约了测试方,使得它与开发企业存在某种“对立”的关系,所以它不会刻意维护开发企业的利益,保证了测试工作在一开始就具有客观性。为了保证第三方测试的权威性、专业性,则需要更加专业的软件测试工具,那么商业化的软件测试工具便是首要选择。如果商业化的软件测试工具仍然不能够满足测试工作的需要,第三方测试机构就需要自主地、或者与软件测试工具开发企业联合研发所需的软件测试工具。

四、软件质量管理和测试工具概述

软件测试在软件质量管理中扮演着极为重要的角色,是软件质量管理的最直接的实现方式。由于测试很多是大量重复性的工作,所以往往需要自动化的支持,而软件测试工具作为一种测试软件的软件应运而生,把测试人员从繁琐重复的工作中解救出来。

1.定义

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

软件测试工具就是通过借助于这样的一些工具能够使测试人员直接查出软件存在的问题,或是使测试工作更加有序而高效。

软件测试工具包括自动化软件测试工具、测试管理工具及测试辅助工作三种类型。自动化软件测试工具存在的价值是为了提高测试效率,用软件来代替一些人工输入;测试管理工具是为了复用测试用例,提高软件测试的价值;而测试辅助工具是为了配合自动化测试工具来执行测试的一种工具类型。

2.分类

目前,测试行业所用的测试工具很多,基本覆盖了整个测试周期。软件测试工具按照不同的标准有不同的分类方法,按照这些工具所完成的任务可以分为以下五类:

1)负载压力测试工具

这类测试工具的主要目的是度量应用系统的可扩展性和性能,是一种预测系统行为和性能的自动化测试工具。在实施并发负载过程中,通过实时性能监测来确认和查找问题,并针对所发现问题对系统性能进行优化,确保应用的成功部署。负载压力测试工具能够对整个企业架构进行测试,通过这些测试,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

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