登录站点

用户名

密码

兴趣联盟 - 嵌入式技术

  • 分享

    基于QAF&Tessy的持续集成平台

    马利娜 2017-03-30 11:26

    1 现状

            在嵌入式系统研发设计中,软件正越来越多地取代硬件,以降低系统的成本,获得更大的灵活性,这就意味着软件在整个嵌入式系统中的比重将越来越大。软件代码的质量已经成为整个产品质量的重要衡量参数,汽车行业的MISRA规范、军工行业的GJB5369标准都是指导我们提高软件质量的重要参考资料。目前,“改善软件质量”已经在汽车、国防等嵌入式领域成为热门话题。也是多数软件开发团队面临的挑战:越发严格的产品发布期限、更广阔的团队分布、不断增加的软件复杂性以及对软件质量更高的要求。

            全面严格的测试工作是改善软件质量的关键,在这样的背景下,如何在更短的时间内完成繁重而复杂的各阶段测试,保证更高的软件质量,是众多开发团队正在面临并急需解决的问题。根据第三方的调研发现,目前,每1~2年,嵌入式系统的软件规模就要翻1番,而嵌入式软件的测试任务却要增加4~8倍。对软件系统的测试由人工进行,会消耗大量的精力,同时也存在人工劳动的失误为软件产品引入错误的风险。

            因此,由测试造成的嵌入式系统开发效率低下、嵌入式软件测试方法和工具不完善等问题就显得越来越突出。

    2  解决方案

            传统人工进行代码静态检查、单元测试以及大量重复的回归测试,需要耗费大量的时间和精力,并且很难避免人的疏忽和大意给代码带来其它缺陷。不同阶段正确选择和使用不同工具,能够辅助工程师进行更严谨而有效的测试工作,更大大缩短测试周期。

            但在提高软件质量的同时,也会遇到一些新的高层次的管理问题:

           ♦  如何合理减少在静态分析和单元测试中大量投入的人力?

           ♦  如何确保在不增加管理成本的情况下强制所有提交的代码都必须经过静态分析以及单元测试?

           ♦  如何才能在让所购买的工具可以最大限度被合理利用,以减少购买数量控制成本?

            这些高层次的研发管理问题带来了新的挑战。

            恒润科技通过搭建整套基于Jenkins、结合工具以及配置库的可持续集成平台,可以解决众多用户在进行测试过程中遇到的上述管理问题。通过符合实际项目状况的平台流程设计,实现合理、自动化的工具调度,对上传到配置库中的稳定代码强制执行相应测试,为软件研发过程中的代码质量保障工作带来了更大的便利,使用户能够更加快捷、有效地提高软件代码的质量!

    3  基于QAF&Tessy的持续集成平台介绍

    3.1 平台概述

            针对上述问题,我们引入当前最专业的代码静态分析工具——PRQA公司的QAF以及专门针对嵌入式软件的C/C++代码进行单元、集成测试的工具——Razorcat公司的Tessy辅助进行大量的测试工作,在保证测试有效性的同时更大大缩短测试周期。Jenkins联合上述两个工具以及版本管理软件搭建持续集成平台,可以实现无需人工介入的代码静态检查以及动态回归测试,优化测试过程、提高开发效率、保证软件质量。

            在软件开发过程中,对于每一次变更,使用静态测试工具QAF(QAC/C++),通过分析程序的源代码来发现代码中存在的潜在缺陷问题,实现方便、快捷、有效地改善代码质量;通过使用QAV对静态分析结果进行管理、查看,进行项目团队管理、任务划分、代码版本管理、详细报告或自定制报告等,实现合理利用软件资源,辅助团队内部高效、便利的合作与管理。

            进行静态分析有效地避免那些在动态测试过程中无法发现的缺陷被带到产品制造阶段,随同产品流入市场,造成难以估量的损失;检查代码错误,可以在开发阶段发现运行时错误,减少动态测试中发现bug频率,减少回归。

            使用单元/集成测试工具Tessy进行动态测试,以对单元、模块进行功能、接口的测试。通过Tessy实现自动化的搭建测试驱动、选择性的自动或手动打桩,通过在实际环境执行设计好的测试用例,确认单元、模块的功能和接口。

            在实际开发过程中,代码会经过众多版本的变更,为确保每一次的变更都会严格按照已有流程进行静态分析和动态测试,并优化人员与软件资源的配置管理,通过Jenkins搭建持续开发平台,自动识别配置库(SVN)的变动,结合上述工具QAF(QAC/C++)、Tessy实现自动、高效的完成相关测试工作。

    3.2 平台工作过程

            该平台可以根据客户实际需求、工作流程以及相应规范调整定制具体过程,实现自动化的编译、静态分析以及动态回归测试等阶段活动。

    3.3 过程描述

            该平台将SVN与测试工具紧密结合在一起,工程师只需在本地进行当天代码的分析工作,并根据变更调整测试用例。而后将变更内容上传至SVN库中即可。平台依据设置,可定时扫描SVN库,一旦发现SVN库有变动,就会将整个库中代码进行静态测试,并根据已有测试用例进行动态回归测试,并将结果发至关键人邮箱。

            通过该平台进行整个工程的分析工作,能够尽早尽快的发现代码集成后产生的缺陷。完美实现整体分析工程的同时,将人从重复机械的工作中解脱出来,为企业节约成本投入。由于SVN与平台的紧密结合,不论工程师是否在本地对其当天代码进行静态分析工作,只要他将代码检入至SVN库中,那么该平台都会自动对上传的代码进行分析,不论工程师因何种原因漏掉本地分析这一环节,通过该平台都能够第一时间发现代码中的潜在缺陷。并且,只要工程师将修改好的测试用例上传,平台会自动执行动态测试,并将测试报告发送关系人,无需工程师耗费时间为极微小的变更,等待License、调整测试环境,执行回归测试。

            平台也可以设定定时分析功能,利用工程师非工作时间,获取软件权限,进行静态分析和动态回归测试,实现与工程师的错峰作业,这样便可以完美解决license冲突问题,节省工程师宝贵时间。


    上一篇: “数字生活”新前景 下一篇: 桌面式DAQ解决方案:PicoDigitizer

你还不是该群组正式成员,不能参与讨论。 现在就加入