如 今,嵌入式系统被广泛引用于国防、航天、金融、通信等重要领域,随着物联网、智能硬件、机器人以及智能移动设备在各行业、家庭的快速普及和应用,逐渐出现 了取代PC的势头。而当软件的载体由PC转入特定的嵌入式硬件环境,这种系统的可靠性和安全性就显得越发重要。在诸多企业正对此进行相关研究之际,星云测 试一马当先,于近期发布了针对开放式Linux操作系统的嵌入式精准测试平台Shell。
开 放式嵌入式操作系统功能强大,但也相当复杂,原因一是由互联网引导的智能化需求格外旺盛,导致系统复杂度快速提升;二是该系统本身的运行宿主硬件性能强 劲,已远超单片机时代;三是该系统因为兼容x86平台的软件,并被大量复用,使得开放式嵌入式系统内的软件系统的复杂度比传统意义上的嵌入式软件高出几个 数量级,几乎和PC系统软件达到同等水平。
当如此复杂的系统进入应用领域之时,对相关的测试技术又提出了怎样的要求呢?事实上,嵌入式软件测试技术目前要解决的就是高复杂度的功能逻辑、互联网产品 快速发布的需求以及硬件产品固有的高可靠性、安全性要求三者之间的矛盾,而同时能够解决这三个矛盾的测试方法,被测试业界称为“精准测试”技术。
作 为“精准测试”技术的服务商,星云测试(www.teststars.cc)根据精准测试的核心理念,推出了旗下嵌入式领域的Shell产品系列。它主要 针对大量的使用开放式linux嵌入式系统作为主控系统的嵌入式设备产品。产品的辐射面从移动应用、电视机顶盒到各种智能硬件控制系统和服务、工业机器人 的控制器系统、智能汽车系统以及数以百万计基于linux平台的服务端软件,设计上也综合引进了软件测试最先进的技术和方法,属于软件测试领域最具创新性 的落地实施产品,目前已经在移动应用、PC软件领域获得了大量的应用实例。
针对嵌入式软件测试最关注的技术层面,星云测试官方阐述Shell在测试复杂的嵌入式系统时的优越特性。
一、系统级白盒覆盖率技术。
在 Shell发布之前,企业一般基于类似于国外的c++ Test,CodeTest等软件对嵌入式系统进行测试,它的基本工作模式是单元测试模式,关键点在于测试的高覆盖率。然而,当测试团队遭遇的是大型复杂 系统,且对覆盖率的要求很高时,就会迷失在数以万计的程序模块以及单元测试所必需的桩模块、驱动模块的编写中。
Shell 的出现改变了嵌入式软件测试团队的窘况。它在系统集成后,用黑盒测试的简单操作方法,由Shell自动采集白盒测试数据、对应具体测试用例,完整实现了用 例场景和代码逻辑之间双向追溯和关联。此后,当覆盖率进入明显瓶颈时,Shell又可以通过覆盖率的增长曲线自动识别这个最佳的换挡点,并引导测试主过程 从单纯的人工为主的黑盒测试,转入基于精准测试、结合代码可视化分析代码的漏测点并快速补充针对性用例,这样就能保持全程测试的高效率运行,节省大量时间 成本。
二、动、静态测试与代码结构为一体的整体性测试。
Shell不仅仅是一套动态测试工具,更是一套集成了综合测试信息的可视化测试系统,和一套结合了静态结构信息和动态运行信息测试决策的智能测试平台。
星云测试官方以Shell的控制流图为例,介绍Shell的图形系统。
据 介绍,星云测试能够绘制每个函数的控制流程图,拥有布线算法清晰、具有动态覆盖率属性、流程图可任意放大或缩小的优势。具体来说,这种测试将程序内部的顺 序块以嵌入其中的方块来表示,方块用不同的颜色代表有无覆盖;对于复杂的逻辑,流程图可放大至全屏,完整显示所有的逻辑。如此,用户可以清晰看出代码块的 覆盖地图。同时,由于布线算法隐含了控制流的逻辑关系,再结合顺序块的覆盖情况,就可以清晰分析关键函数的“测试地图”,引导用户去有效地分析质量和探索 未知领域。
不 仅如此,星云测试还具有结合程序静态结构与动态运行信息的测试漏洞分析功能。这种功能可有效结合程序的结构特性与动态覆盖特性,来精准预测和引导用户在短 时间内精确辨识程序的高危险漏洞。例如:Shell可以根据被测程序模块所处的调用关系图的上下文位置和扇入扇出关系,确定函数的关键程度,然后再去统计 该函数的动态逻辑覆盖信息,将两个数据做一个算术运算。当结果超出设定的阈值,Shell会选择该函数并提示用户该函数存在较高的测试风险。
三、Shell企业精准云测试平台。
通过专利技术,星云测试还可以支持整个嵌入式测试围绕云来展开。目前,星云测试已实现了云端测试数据与客户端用户核心代码的隔离,即所有用户代码相关操作 均在用户的研发环境内完成,但通过存储在企业私有云端的程序静态结构骨架以及与源码进行映射的符号信息、测试结果,就可以实现100%的以云计算的形式进 行的运算。
由 于采用了企业私有云的模式,Shell可以支持真正的分布式测试,所有测试数据可以完成实时的云端的汇总并在各个客户端之间共享,例如:当测试工程师在测 试实验室内发现了一个逻辑错误,那么远在研发中心的研发人员只要通过星云的客户端接入到云上,然后在本地关联代码,就可以直接分析出错的详细代码路径,甚 至可以在不调试代码的情况下直接进行修复,这就避免了最让开发和测试头疼的缺陷复现的问题,整个团队也可以基于企业私有云进行高效率的系统工作。
四、Shell强大的可视化测试分析功能,为工业嵌入式程序与互联网的互联互通的延展需求提供保障。
星 云测试提供了非常强大的海量测试信息分析功能,全过程几乎都以透明的方式运行,使用简单。用户只需要将嵌入式程序的Makefile中的编译器名字替换成 星云测试的编译器前端,然后执行编译,Shell就会在编译中自动对所有程序进行分析,并自动完成被测试代码转换,随后链接好最后的可执行文件,再将 Shell打包的程序放到设备中。整个测试过程,流程几乎没有任何变化,只要在执行每个测试用例的时候,打开、安装与被测试设备处于同一网络环境下的PC上运行的“测试示波器”,被测试程序执行的覆盖率信息就可以通过企业网络传递给测试示波器,然后示波器会进行一定的处理,再将数据发送到企业私有云上进行后续的分析。
总 而言之,Shell采用了非常前沿的数字可视化精准测试技术,它通过一系列的核心技术对软件测试的质量和效率进行大幅度提升。Shell结合简单的黑盒测 试办法,先快速排除“前70%”的显著性错误,然后当人工测试进入效率低下时,把“后30%”层层嵌套、相互制约的复杂逻辑分析任务交给计算机处理。这 样,计算机就能对海量数据进行快速、严谨的处理,并将分析结果实时展示给测试人员和开发人员,为调整测试用例和代码优化提供充分的证据,从而提高测试覆盖 率。Shell内部还有大量的针对企业测试场景设计的测试算法,它们都可以对嵌入式测试进行智能的辅助分析和决策,让代码庞大的系统也能够轻松达到产品级 的要求,从而大幅度提升产品型企业的软件质量,帮助企业打造具有强大质量竞争力的产品。
免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。