您的位置:首页 > 新闻中心 > 资讯详情

星云测试发布针对开放式Linux操作系统的嵌入式精准测试平台Shell

      如今,嵌入式系统被广泛引用于国防、航天、金融、通信等重要领域,随着物联网、智能硬件、机器人以及智能移动设备在各行业、家庭的快速普及和应用,逐渐出现了取代PC的势头。而当软件的载体由PC转入特定的嵌入式硬件环境,这种系统的可靠性和安全性就显得越发重要。在诸多企业正对此进行相关研究之际,星云测试一马当先,于近期发布了针对开放式Linux操作系统的嵌入式精准测试平台Shell

      开放式嵌入式操作系统功能强大,但也相当复杂,原因一是由互联网引导的智能化需求格外旺盛,导致系统复杂度快速提升;二是该系统本身的运行宿主硬件性能强劲,已远超单片机时代;三是该系统因为兼容x86平台的软件,并被大量复用,使得开放式嵌入式系统内的软件系统的复杂度比传统意义上的嵌入式软件高出几个数量级,几乎和PC系统软件达到同等水平。

当如此复杂的系统进入应用领域之时,对相关的测试技术又提出了怎样的要求呢?事实上,嵌入式软件测试技术目前要解决的就是高复杂度的功能逻辑、互联网产品快速发布的需求以及硬件产品固有的高可靠性、安全性要求三者之间的矛盾,而同时能够解决这三个矛盾的测试方法,被测试业界称为“精准测试”技术。

作为“精准测试”技术的服务商,星云测试(www.teststars.cc)根据精准测试的核心理念,推出了旗下嵌入式领域的Shell产品系列。它主要针对大量的使用开放式linux嵌入式系统作为主控系统的嵌入式设备产品。产品的辐射面从移动应用、电视机顶盒到各种智能硬件控制系统和服务、工业机器人的控制器系统、智能汽车系统以及数以百万计基于linux平台的服务端软件,设计上也综合引进了软件测试最先进的技术和方法,属于软件测试领域最具创新性的落地实施产品,目前已经在移动应用、PC软件领域获得了大量的应用实例。

针对嵌入式软件测试最关注的技术层面,星云测试官方阐述Shell在测试复杂的嵌入式系统时的优越特性。

一、系统级白盒覆盖率技术。

Shell发布之前,企业一般基于类似于国外的c++ TestCodeTest等软件对嵌入式系统进行测试,它的基本工作模式是单元测试模式,关键点在于测试的高覆盖率。然而,当测试团队遭遇的是大型复杂系统,且对覆盖率的要求很高时,就会迷失在数以万计的程序模块以及单元测试所必需的桩模块、驱动模块的编写中。

Shell的出现改变了嵌入式软件测试团队的窘况。它在系统集成后,用黑盒测试的简单操作方法,由Shell自动采集白盒测试数据、对应具体测试用例,完整实现了用例场景和代码逻辑之间双向追溯和关联。此后,当覆盖率进入明显瓶颈时,Shell又可以通过覆盖率的增长曲线自动识别这个最佳的换挡点,并引导测试主过程从单纯的人工为主的黑盒测试,转入基于精准测试、结合代码可视化分析代码的漏测点并快速补充针对性用例,这样就能保持全程测试的高效率运行,节省大量时间成本。

二、动、静态测试与代码结构为一体的整体性测试。

Shell不仅仅是一套动态测试工具,更是一套集成了综合测试信息的可视化测试系统,和一套结合了静态结构信息和动态运行信息测试决策的智能测试平台。

星云测试官方以Shell的控制流图为例,介绍Shell的图形系统。

据介绍,星云测试能够绘制每个函数的控制流程图,拥有布线算法清晰、具有动态覆盖率属性、流程图可任意放大或缩小的优势。具体来说,这种测试将程序内部的顺序块以嵌入其中的方块来表示,方块用不同的颜色代表有无覆盖;对于复杂的逻辑,流程图可放大至全屏,完整显示所有的逻辑。如此,用户可以清晰看出代码块的覆盖地图。同时,由于布线算法隐含了控制流的逻辑关系,再结合顺序块的覆盖情况,就可以清晰分析关键函数的“测试地图”,引导用户去有效地分析质量和探索未知领域。

不仅如此,星云测试还具有结合程序静态结构与动态运行信息的测试漏洞分析功能。这种功能可有效结合程序的结构特性与动态覆盖特性,来精准预测和引导用户在短时间内精确辨识程序的高危险漏洞。例如:Shell可以根据被测程序模块所处的调用关系图的上下文位置和扇入扇出关系,确定函数的关键程度,然后再去统计该函数的动态逻辑覆盖信息,将两个数据做一个算术运算。当结果超出设定的阈值,Shell会选择该函数并提示用户该函数存在较高的测试风险。


三、Shell企业精准云测试平台。

通过专利技术,星云测试还可以支持整个嵌入式测试围绕云来展开。目前,星云测试已实现了云端测试数据与客户端用户核心代码的隔离,即所有用户代码相关操作均在用户的研发环境内完成,但通过存储在企业私有云端的程序静态结构骨架以及与源码进行映射的符号信息、测试结果,就可以实现100%的以云计算的形式进行的运算。


由于采用了企业私有云的模式,Shell可以支持真正的分布式测试,所有测试数据可以完成实时的云端的汇总并在各个客户端之间共享,例如:当测试工程师在测试实验室内发现了一个逻辑错误,那么远在研发中心的研发人员只要通过星云的客户端接入到云上,然后在本地关联代码,就可以直接分析出错的详细代码路径,甚至可以在不调试代码的情况下直接进行修复,这就避免了最让开发和测试头疼的缺陷复现的问题,整个团队也可以基于企业私有云进行高效率的系统工作。

四、内部功能强大,充满互联网风的智能测试系统。

星云测试提供了非常强大的海量测试信息分析功能,全过程几乎都以透明的方式运行,使用简单。用户只需要将嵌入式程序的Makefile中的编译器名字替换成星云测试的编译器前端,然后执行编译,Shell就会在编译中自动对所有程序进行分析,并自动完成被测试代码转换,随后链接好最后的可执行文件,再将Shell打包的程序放到设备中。整个测试过程,流程几乎没有任何变化,只要在执行每个测试用例的时候,打开、安装与被测试设备处于同一联通网络环境下的PC上运行的“测试示波器”,被测试程序执行的覆盖率信息就可以通过企业网络传递给测试示波器,然后示波器会进行一定的处理,再将数据发送到企业私有云上进行后续的分析。


      总而言之,Shell采用了非常前沿的数字可视化精准测试技术,它通过一系列的核心技术对软件测试的质量和效率进行大幅度提升。Shell结合简单的黑盒测试办法,先快速排除“前70%”的显著性错误,然后当人工测试进入效率低下时,把“后30%”层层嵌套、相互制约的复杂逻辑分析任务交给计算机处理。这样,计算机就能对海量数据进行快速、严谨的处理,并将分析结果实时展示给测试人员和开发人员,为调整测试用例和代码优化提供充分的证据,从而提高测试覆盖率。Shell内部还有大量的针对企业测试场景设计的测试算法,它们都可以对嵌入式测试进行智能的辅助分析和决策,让代码庞大的系统也能够轻松达到产品级的要求,从而大幅度提升产品型企业的软件质量,帮助企业打造具有强大质量竞争力的产品。

      亲爱的用户,相关产品白皮书、使用教学视频等,注册后即能马上观看,快来加入我们星云测试。





  • By TT
  • 2016.08.16 
  • Linux操作系统  精准测试平台Shell  
最新资讯