如今的电子设备中所包含的软件代码量动辄达到数百万行。用不了几年,设备软件代码量又会成倍增长。因此SQA (Software quality assurance,软件质量保证)比以往任何时候都更为关键,也更加困难。为了将设备质量缺陷消灭在萌芽状态,从而大幅降低设备上市后的风险,电子设备制造商需要更先进的工具来管理、监控和优化其质量保证工作。
而长期以来,软件测试是整个设备软件生命周期中最薄弱的环节。由于缺乏有效的测试解决方案,设备制造商不得不自己拼凑各种测试小工具,不仅要花费大量的时间,而且使用成本也很高。可喜的是目前,市场上出现了一些专门针对此类矛盾的测试解决方案。基于此类产品,设备制造商可将其SQA(软件质量保证)自动化水平大大提升,从而从整体上改善软件代码质量,缩短代码测试周期。
为了满足软件测试与质量保证的特殊需求,设备制造商发布了各种测试自动化解决方案——如美国风河公司的Wind River Test Management,其设计目标就是帮助设备制造商大幅缩短测试时间、压低产品开发成本,并且更快地将新产品投放市场。其中,Test Management套件则是一个可扩展的分布式软件测试系统,支持动态测试和缺陷快速辨识。此外,它还将能够实现软件质量控制(QA)流程的自动化,从而全面提高代码质量。
解决方案中可扩展的分布式测试框架部分,可以把设备软件开发人员与质量保证人员整合起来,形成一个智能化的协作型工作流程,从而使得整个开发与质量保证团队可以有效地实施测试和性能分析,并且快速解决在测试过程中发现的问题。而且,这个新的测试流程一旦形成,就可以重复性地运作,使软件测试、缺陷检测和纠正工作越来越顺畅。此类系统中有一个非常好的机制来支持整个团队共享测试数据,打破了开发团队与测试团队之间的隔阂,从而极大地提高了协作水平。例如,当QA人员发现一个问题,开发人员立刻就可以获得详细的日志(Log)和故障数据,很快地在自己的开发环境中再现发生问题环境。
总结一下,大部分的各种软件测试自动化解决方案主要通过以下4个方面来加速软件测试进程:
第一、测试。提升功能、性能和代码覆盖方面的测试效率;
第二、自动化。自动实现嵌入软件加载,自动部署测试套件;
第三、诊断。利用诊断数据从根本上实现缺陷、死锁和崩溃原因的隔离;
第四、解决。直接采用打补丁的方式解决问题,不需要系统重建,从而节省了宝贵的QA时间资源。
如果一个测试人员可以同时编写、执行和管理更多的测试项目,他就可以发现更多的缺陷。软件测试套件提供一个更容易创建、访问和部署测试的框架,而且解除了与远程设备互连和报告结果是所遇到的种种麻烦。此类套件还可以帮助测试人员组织和分配工作量,一边他们在同一个时间段里面完成更多的测试任务。最有意思的是,软件可以帮助测试人员编写出更高水平的测试任务,发现更多的缺陷。
许多QA团队只是把产品作为“黑箱”来进行测试,因为以这种方式他们不必花精力去理解软件代码的细节。采用类似Wind River Test Management的此类套件,QA团队可以采用效率更高的“白箱”法,了解更多的内部结构,却不必耗费太多的时间去了解代码细节。例如,测试人员可以观察代码覆盖概貌,标示出尚未进行测试的那些功能模块,然后采用“故障注入(fault injection)”技术设定新的条件去执行和测试这些功能。
在使用此类测试软件的过程中建立的测试及数据库可以方便地用于设备投入使用后的支持与服务。例如,Wind River Field Diagnostics模块是Wind River Test Management套件中的一个产品,能为技术人员提供一个用于监控设备运行状态和健康度的综合平台,便于快速地诊断和修复设备故障。它将设备的运作信息以加密的方式进行采集和管理,能够支持上千个客户端设备的同时部署,同时它基于安全的标准化等级体系架构,全面支持各种关系数据库、J2EE应用服务器和Web Service技术,实现了企业级的可扩展性。在产品投入使用后,可以支持产品用户和OEM厂商协作进行维修维护。这种方法将DSO (Device Software Optimization,设备软件优化)的概念从产品的研发阶段延伸到了产品的使用和售后服务阶段。
结束语
软件是一项高复杂度的、不断演变的产品。软件管理、监控和质量测试的方法与过程也是不断变化的,而且常常是难以捉摸的。因此,软件测试和质量保证是设备制造商的一项严重的挑战。大量的设备制造商都表示,软件测试是他们产品研发工作中最大的痛点(Pain Point),软件质量保证是一个持续变化并且难以达到的目标。通过具备上述功能的一些套件,设备制造商将会大幅缩短测试时间、压低产品开发成本,并且更快地将新产品投放市场。同时,它还可以提高软件质量控制(QA)流程的自动化程度,全面提高代码质量。