“品质永远不是一个意外; 它是经过智慧努力的结晶。” – 约翰·鲁斯金
大多数工程师都听说过墨菲定律,“任何可能出错的,都会出错。”但是基于多年的工作经验,我们已经了解了这项定律的最重要的本质 – 这一说法是真的,特别是当涉及到软件开发。毫无疑问,你自己的个人经验就是建立这个事实所需的所有证据。
作为一个软件公司,必须要在组织内建立一种强大的企业文化,软件的品质是最重要的,超越任何其他的存在 – 当涉及到软件产品的质量,每个人都必须争取“最好”,而不仅仅是“足够好”。从 CirrusData 成立的第一天开始,我们就非常注重确保软件质量是最重要的。
我们的数据迁移服务器(DMS)负责帮助世界各地的合作伙伴,从一个数据中心到另一个数据中心的存储器中迁移大量的数据。我们的 DCS 也已经在全球许多地方安装,并取得了巨大的成功。在我们伟大的 QA 工程师团队的仔细审查下,我们的产品获得了客户和合作伙伴绝对的荣誉。
然而,我们没有停下脚步。 现实是,从来没有“足够的”资源来执行“足够的”测试。 因此,关键是质量保证过程的效率。
提高产品可靠性的一个直接方法是简单地增加所有支持功能的测试里程,通过将测试工作扩展为全天候工作。那么,我们需要要求我们的 QA 工程师时钟 12 小时轮班?当然不是! 在 Cirrus Data,我们坚信,不是努力工作就行的。为什么要消耗我们QA 工程师们的注意力和精力,而不是让机器来做它们最擅长的呢?这就是测试的自动化。
测试自动化不是一个新的概念。某些形式的自动测试存在于 QA 操作中。但是,正如 Rod Michael 说的,一家大型工业自动化公司的执行官,表示:“如果你的自动化混乱,你会得到一个混乱地自动化。”一个有意义的有效的自动化测试系统是,使用智能设计创建的。 这不是一个新型的概念。
对于单元测试,开发人员通常会使用很多测试框架来确保他们的代码不会中断。Java 中的 JUnit 和 JavaScript 中的 Karma 是大多数组织开发团队应该会已经使用的一些示例。 对于大规模集成测试,通常创建脚本以简化对于人类执行而言过于乏味的任务。
通常以这种方式创建自动化测试非常耗时且不具成本效益,特别是在需要观察和协调许多组件和配置的环境中。因此,需要一个更系统和全面的架构,这使我们又回到了“软件工程”的“工程”部分。
在开发全自动 24-7 测试实验室之前,我们将研发工作都集中在新架构上,就像我们在开发任何一个新产品时一样。 我们决心设计和建立一个强大且高效的测试自动化架构,这样可以有效地保证我们在企业存储界的品质。、
从研究结果,和对现有自动化工作的广泛研究,我们得出结论,通过有效的自动化测试对于最大限度地提高产品可靠性至关重要:
- 中央集权
- 自动化工作不仅必须在QA工程师和开发人员之间进行协调,而且还要在多个国家或全球设施之间进行协调。
- 测试调度,执行和报告可以从中心位置协调,并在多用户环境中管理。
- 定制
- 拥有一个测试用例平台,允许在运行时通过基于Web的GUI定制测试,允许开发“通用”测试用例,而不是机器特定的“脚本”。开发一次,每个地方都能使用(DOUE)。
- 多组件,跨平台
- “DOUE”原则不仅适用于不同的测试,也适用于测试中的不同平台和组件。 这意味着这是一个可以安装在不同操作系统平台上的代理系统。
- 成本效益
- 基本动机是,用于设计、开发和实施基础设施的成本将显著少于执行手动测试所花费的成本。
- 自动化过程开发
- Normalize test script writing to encapsulate most non-test-related logic within the framework (such as the logic to report the status and progress of tests). This allows QA engineers to quickly put together new test cases that focus ONLY on the test logic.
- Re-usable test scripts allow new test cases to be created more efficiently.
- Test Result Reporting and Analysis
- Uniformed reporting allows test results to be quickly and accurately analyzed.
- Test Progress / Result Monitoring
- A user-friendly, web-based GUI facilitates test plan configuration, as well as management and customization of test cases. It makes the operation workflow more efficient, as developers and QA engineers can each focus on their own tasks in the quality-driven paradigm.
Using this blueprint, we have designed our next-generation testing automation platform – the Cirrus Data Solutions Test Automation Framework, CDS-TAF.
In the next part of this article, we will walk through the detailed design and implementation process of the CDS-TAF and demonstrate how the platform further enhanced the quality of our product portfolio.
Stay Tuned.