Parasoft C++test案例研究:NEC Telecom软件公司简化内部质量管理
一个名为Virtual Target Solution (VTS)的NSP开发团队,由15人组成。这个团队的工程师大部分是刚开始学习NSP的内部质量管理,如代码审查、测试范围和覆盖率。
直到最近,这个团队加入了两个高级工程师。他们要对所有的源代码进行审查。这些源代码通常在10000至12000行左右。
任务压力
这个代码审查任务的时间安排很紧,只靠两个高级开发人员是不可能在规定时间内完成的。这样,就造成了很多的编码错误和潜在的缺陷。接下来,还会对单元测试和集成测试造成影响。
由于工作难度很大(审查所有源代码和检查所有的QA计划列表),Joel Calderon(NSP的软件设计主管)决定寻找一种解决方案可以替代人工代码审查和单元测试。
NSP公司一向对质量要求很高,这次的任务也不例外。因为Joel之前有过使用Parasoft Jtest解决Java测试的经验,所以这次他决定看看Parasoft公司有没有好的解决方案。接着,他发现了可以满足期望的Parasoft C++test。这是一个自动化的C/C++单元测试和编码标准分析工具。
自动化代码审查
VTS团队在代码审查期间,为了保证高质量遇到了以下两个问题:
- 通用编码违规
- 逻辑和设计错误
由于寻找和解决代码违规花费了团队很多时间,因此VTS将这部分工作交给Parasoft C++test自动完成。这样,他们就可以专注于更改逻辑和设计的错误。
他们使用Parasoft C++test的RuleWizard功能来检查编码违规。Cherry Ann Alib是一个软件设计工程师,她说:“It’s very useful because we can customize our rules with RuleWizard for the code review and coding standards analysis。(它很有用,我们可以使用RuleWizard自定义规则进行代码审查和编码标准分析。)”
在使用了Parasoft C++test之后,Joel说:“It worked wonders for detecting the coding violations。(它创造了编码违规检测的奇迹。)”Parasoft C++test在2~3小时内检查了8000~10000行的代码。多亏了Joel,团队在代码审查上节省了大量的时间和成本。
此前,由高级工程师做相同的工作却花费了10~15个小时。现在,团队里即使只有没有经验的新人也可以完成这样的任务了。因为他们要做的只是学习如何操作Parasoft C++test。在此之前的几年里,代码审查需要丰富的经验和大量的知识储备。Parasoft的C ++将这一切障碍都消除了。
自动化单元测试
单元测试的任务同样时间很紧,VTS团队必须在两周内完成500多个单元测试用例。Cherry说:“We were having a hard time creating unit test items manually. It was a tedious task, so we started looking for a tool that would automate the creation of test items。(这个任务不仅很难人工完成,而且乏味,所以需要一个自动化的工具代替这个过程。)”
Parasoft C++test大大减少了编写测试用例,执行单元测试和回归测试的时间。可以在晚上运行这些测试用例,然后白天查看结果。从设计阶段到单元测试阶段,会检查出75%到80%的错误。因此,从集成测试阶段到产品发布只剩下20%到25%的错误。
高效的质量管理
Joel说:“Parasoft C++test enabled the VTS team to organize and streamline their quality initiatives。(Parasoft C++test简化了他们的质量管理工作。 )”所有的编码规则和测试要求都可以放在Parasoft C++test中,而不用在成员间交流自己的知识和经验。这样统一的规则和要求大大提升了产品质量。
新人的培训变得简单多了,只需要教他们如何运行Parasoft C++test 就可以了。在之前,需要培训很多的东西,例如编码规则、代码审查、测试范围等等。
减少加班和压力
最后,他们在如此紧张的时间里完成了项目计划。他们赢得了客户的赞赏,良好的口碑为他们带来了更多的项目。
除了保证项目的成功和高质量,也大大减少了团队的工作量。员工再也不需要每天加班七八个小时。因为Parasoft C++test可以代替他们在晚上加班。
事实证明,Parasoft C++test可以同时改善产品和生活质量。
本文翻译自:
译文链接: