Case Studies

LUSAS

加快QA进程

2009年8月26日 – Jason Barnaby, LUSAS

摘要

利用 Incredibuild 接口,LUSAS Modeller 应用的开发团队显著缩短了 QA 时间,从而加快了其产品的发布进程。LUSAS Modeller是LUSAS套件(一款适用于多种不同工程设计行业的分析工具)的组成部分。它是一种基于MFC的大型图形用户界面应用。LUSAS Modeller以前的QA工作通常要耗费一整夜的时间, 而现在,利用Incredibuild,则能够在一顿午餐的时间内完成。本文将具体介绍这是如何实现的。

难点:

LUSAS身处极为注重安全性的行业,其QA流程要求非常严格。LUSAS Modeller QA套件包含将近900个测试用例,生成超过11000个输出文件,磁盘空间占用超1.5GB。多年前,他们编写了一个管理程序,用于运行测试、比较输出并制作报告。在典型的开发PC上,整个工作(运行测试和比较输出)通常耗费大约10小时。

从构建到发布,每位开发人员都要对自己编写的代码运行QA程序,将自己的工作与其他开发人员的工作合并,然后再次运行QA程序,最后再实施修改。由此得到的候选发布产品,还需再次执行QA处理。由于单次QA运行所需的时间比一个工作日的工作时间还长,每次有效的运行要耗费整整24小时,因此即便单次QA运行成功,也需要花费数周的时间来对数位开发人员的成果运行此程序。仅一个漏洞的排除都另外需要24小时的时间,因为不仅需要修复该漏洞,还需要再次运行QA。这就严重影响到企业快速响应客户需求,提供新版本的能力。

备用方案

在使用 Incredibuild 之前,我们尝试并考虑了多项替代方案。最为明显的是,我们在高速计算机上投入了大量资金。但这种解决方案并未达到令人满意的效果——随着硬件速度的提升,开发人员的QA套件也变得越来越庞大。

如要在确定提交开发成果前,通过在每位开发人员的机器上仅运行部分或甚至不运行QA的方式来精简QA过程,那么必将招致灾难。难以避免地,漏洞只有在最后一刻才能被发现,这就浪费了每个人的时间,而原因的跟踪和修复却又更为困难。

我们还要花费大量时间评估我们的软件和差异比较工具,以期减少整个过程所需的时间,而这个过程还要求获得极大成功——但我们从未获得真正意义上的显著改变。

解决方案

我们构思了一个修改现有QA管理程序的项目。现在,程序会创建一个 Submission 接口脚本文件,详细描述要执行的所有任务。每个任务涉及运行非常小的新建可执行文件,该文件的名称为单个测试用例的名称。该可执行文件的每个实例负责运行一个测试用例,并将输出结果与预期结果进行比较。最后,管理程序收集所有成功/失败信息,并生成与以前相同的报告。

正如所介绍的那样,这是一项相当简单的操作。我们能够重组管理程序,在短短几天内完成所有管理工作。我们后来遇到的问题全都基于我们程序中的那些假设当前正运行某种Windows用户界面的部分。当然,在远程机器上运行时,必须完全禁止任何以及一切窗口创建。

此外,当程序的多个实例试图访问磁盘上的相同文件(比如,出于许可和登录的目的)时,会发生某些并发性问题。

这些问题都通过改善程序的代码设计得到了解决,而我们最终也能够合理分配整个QA进程。

下面是整个QA进程结束后所截取的管理程序屏幕截图。如图所示,测试过程本身耗费将近11小时,输出文件的比较工作另外需要100分钟,而所有这些则在短短90分钟的时间内完成了——速度提升系数为8.54。这个系数因主机PC的电量和速度而异——使用较低速机器的开发人员受益最大!但我们发现,当分配到12-15台CPU时,这个提升系数介于8至9之间。

益处

能够快速可信地发布软件显然至关重要。我们现在发现,仅需要最多三位开发人员就能够在一天内顺利完成更新、编译、QA和确认提交工作。

总结

利用来分配 QA 极大地减少了确认未新引入回归漏洞而所需的验证时间。而这又意味着,我们能够以快得多的速度响应客户的新版本要求,同时还能够信心十足地确定新版本已通过我们的所有严格QA程序。

QA Cycle 时间
758分钟Without Incredibuild
88分钟With Incredibuild