• 11
  • 11
分享
  • 嵌入式软件测试(黑盒测试)——软件测试圈
  • quinn 2022-04-07 11:25:29 字数 2514 阅读 1534 收藏 11

前言 

文章内容为本人这三年来在嵌入式软件测试(黑盒)上的一些积累吧,说起来也挺快的,毕业三年的时间就这样过去了,在两家公司工作过(现在这家是第二家),这几年的测试项目基本都是围绕着嵌入式软件,同时需要兼顾测试APP端,WEB端功能,web后端接口(postman),只是测试业务重心还是在嵌入式软件上。

为什么测试的这么杂呢,其实这些全部加起来只是一个产品,只是因为目前就只有我一个测试,所以整套系统都是由我一个人来测,就拿我现在这家公司做的一个视频会议系统来说吧,整套系统包含有硬终端(linux端),app端,web端(用于后台账户/会议管理等),PC端组成。接触过嵌入式软件测试的同学应该都明白这些事,下面我就来说说自己这几年对嵌入式软件测试的理解和看法吧,欢迎留言补充或讨论,勿喷喔~~

什么是嵌入式系统?

  • 嵌入式系统是一种"完全嵌入受控器件内部,为特定应用而设计的专用计算机系统"。

  • 嵌入式系统是“用于控制,监视或辅助操作机器和设备的装置”。

  • 嵌入式系统还可以定义为“以应用为中心,以计算机技术为基础,软硬件可裁剪,功能、可靠性、成本、体积、功耗要求严格的专用计算机系统。”

  • 嵌入式系统由嵌入式硬件和嵌入式软件两部分组成,硬件是支撑,软件是灵魂。

  • 嵌入式系统按实时性分类,可分为非实时性,软实时性和硬实时性。其中硬实时性是指系统对响应时间有严格要求,如果响应时间不能满足,就要引起系统崩溃或致命错误;软实时性是指系统对响应时间有要求,但是如果系统响应时间不能满足,不会导致系统出现致命的错误或崩溃。

什么是嵌入式软件?

嵌入式软件是基于嵌入式系统设计的软件,它是计算机软件的一种,同样由程序及其文档组成,可分为操作系统,支撑软件,应用软件三大类,是嵌入式系统的重要组成部分。

嵌入式软件的特征:

  • 系统内核小

  • 专用性强

  • 系统精简

  • 高实时性操作系统

  • 基与硬件和软件的相辅相成

  • 嵌入式软件测试与商用软件测试相同点和不同点(单从黑盒测试的角度来讲)

 相同点: 

嵌入式软件测试和商用软件测试的目的和原则是相同的,都是为了找bug,跟踪bug,验证bug,使产品实现需求文档上功能,满足用户需求。

不同点: 

1、需要的测试环境不同。

测试嵌入式软件的时候,你需要准备的环境是一整套设备,里面可能包含电源,网线,高清线(各种视频传输线),交换机,摄像头,麦克风,U盘,路由器等等…。

测试商用软件可能就是一个安装包,或者是一个测试URL,你需要准备的可能就是一个电脑或者一部手机。

2、测试的思维不同。(要做到出现问题先自检)

这里的测试思维并不是说设计测试用例时需要的思维方式,而是在定位bug的时候,思维不一样。

在测试嵌入式软件的时候,如果出现某个功能无法实现,有可能是确实是功能实现问题,有可能是内存问题,有可能是硬件支持问题,有可能是驱动问题,有可能是网络问题,有可能是硬件物理接口问题。

虽然看似这些问题雨我无瓜,但是如果是硬件支持的问题,你抛出bug,开发排查完之后发现是你自己没有按照规格接入所能支持的硬件,到时候尴尬的是不是你;再比如POE网口如果没有接入支持POE的网线,造成问题是不是你的不专业了等等,我们既然是测试工程师,那就应该要有工程师的专业程度来完成工作。

在测试商用软件的时候,遇到功能无法实现,我们大部分情况下就是直接抛出bug给开发,附带bug截图,log和操作步骤,通常都好使。

3、需要的技能点不同

根据这几年的测试项目经验,发现嵌入式软件测试对计算机网络原理的应用比较频繁。

在测试嵌入式软件的时候,你要接入网线,进行网络配置,接入交换机,了解网络通信,数据传输等等…也就是说嵌入式软件测试你需要的是(扎实的软件测试理论和测试方法+计算机网络相关基础知识).

而测试商用软件的时候,由于环境搭建没有太复杂,涉及到计网相关的知识比较少,需要的往往是扎实的软件测试理论和测试方法。

嵌入式软件测试的自身特点和测试困难

  • 目前系统资源有限

  • 与硬件系统紧密关联

  • 运行平台多样化

  • 交叉式的测试模式

  • 系统的安全性,可靠性,系统运行结果的正确性等等

  • 嵌入式软件的测试策略与一般的商用软件有很大的区别

嵌入式软件测试难吗?跟商用软件测试相比哪个更加难度更高?

我感觉在黑盒测试中,嵌入式软件测试是要比商用软件测试难度高的,我只站在嵌入式软件的黑盒测试角度来发言。为什么这么说呢,我暂时只想到以下几点:
  1. 硬件平台不同导致测试难度增大,由于嵌入式软件是跟硬件平台紧密关联的,也就是说同一套软件,如果移植到另一个平台上,就要重头到尾的测试一遍,在工作量上就比商用软件大,出错几率也会提升,相应的测试难度也会提高一点。我就遇到一个项目需要跑在两个平台的情况。

  2. 测试环境导致测试难度增大,我可以很肯定的说,同一套设备在A环境操作正常,我只要换一个交换机,搭建一个B环境,就很有可能会出现bug,所以有经验的嵌入式软件测试同学在遇到客诉的bug时第一时间都是问当时的环境是什么,设备有哪些,操作步骤是什么,必要时采取将设备全部寄回来复现。

  3. 硬件平台性能导致测试难度增大,硬件平台的芯片性能是肯定没有电脑上的CPU这么吊的,所以在测试的时候,我们往往会出现一些硬件性能上的问题导致一些bug偶现,这对我们测试人员来说,想要找到一个偶现的bug是非常的难,需要采取工具来跟踪操作步骤打印log

  4. 外接设备导致测试难度增大,生活中基本上的嵌入式软件都是需要外接其他的设备的,比如接入U盘,摄像头,麦克风等等,在测试时如果发现某个工作无法实现,我们需要从三个方面去考虑,①:是不是软件的功能bug,②:是不是硬件物理接口损坏问题,③:是不是接入的外设与软件协议有问题或者驱动有问题,等等原因增加了测试难度。

  5. 最后一个导致测试难度大的原因就是嵌入式软件测试相对来说是比较独立于软件测试的,相关的资料也是比较少的,并不像商用软件测试一样,只要一搜索,就能找到测试方法和一些测试文章。嵌入式软件测试更多的是一个实战,每一个应用场所的嵌入式软件测试的思维方式不一样。

 

作者:斯维因yin

原文链接:https://blog.csdn.net/weixin_44732183/article/details/117696103

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   需求分析是开始测试工作的第一步,产品会先产出一个需求文档,然后会组织需求宣讲,在需求宣讲中分析需求中是否存在问题,然后宣讲结束后,通过需求文档分析测试点并且预估排期。所以对于需求的理解非常重要。  需求文档  产品经理在做完用户需求调查之后,会根据用户需求输出一份需求文档,在文档中会详细描述用户所需的功能和功能实现的效果。文档生成之后,产品经理会和开发测试一起开一个需求宣讲会,讲解需求中的内容,并且会对需求中可能存在的问题进行讨论。  需求评审  在需求宣讲的过程中,其实也需要对需求本身进行评审。需求评审可以从以下角度去进行考虑。  1.站在使用者的角度,考虑用户会遇到的各种情况,反观各种...
            0 0 849
            分享
          •   环境准备  1.安装JDK(自行安装)  2.安装Jmeter  (1)Jmeter下载地址并解压(本位使用5.1.1版本~)  https://archive.apache.org/dist/jmeter/binaries/  (2)打开Jmeter  进入Jmeter解压文件的bin目录下,双击jmeter.bat文件,即可打开Jmeter  知识点-Jmeter取样器  在正式开始使用Jmeter前,先了解“Json Extractor”的概念。  Json取样器:使用Jsonpath语法,一般用于从响应结果数据里面获取动态变量值  Jsonpath基础语法说明  项目背景  使用J...
            1 3 2615
            分享
          • 一、性能测试想做什么首先,性能测试想做的事情,类似下图:这是一个简化过的关于web应用的服务端的性能测试示意图,性能测试想要模拟真实业务场景。当一个应用上线,有很多用户通过客户端访问服务端。他们把请求通过用户界面发送给了服务端,于是在服务端接收到了大量的请求,如果用户数很多,那么服务端有可能承受不了这种压力,进而崩溃,严重的可能导致大量经济损失。性能测试则是希望通过提前模拟这种压力,来发现系统中可能的瓶颈,提前修复这些bug,减少服务器宕机的风险。此外,性能测试还可以用来评估待测软件在不同负载下的运作状况,帮助管理层做一些决策。比如早期有的管理者会希望通过性能测试来评估需要买几台服务器。但,这...
            0 0 492
            分享
          • 做接口测试中,对于一般性的单业务接口测试很多工具可供选择,但是对于一些相关业务相关性的关联接口测试就比较麻烦,使用工具比如jmeter、postman、soapui等等就比较麻烦。我比较偏重脚本化执行测试用例,所以选择了groovy作为主要语言来进行接口测试,但是脚本依赖的库还是基于之前所在的java为主的测试框架,有兴趣的可以翻翻以前的文章。项目的架构思路是以模块为基础把接口分类,然后对于接口的请求单独进行实现。通过一个user作为一个用户,携带各种属性,如:uname,pwd,token,userinfobean等信息。来作为各个模块类之间的信息传递。回到修改密码接口,简单说一下我们接口的...
            1 0 2342
            分享
          •   一、概述  Fiddler是一款免费且功能强大的数据包抓取软件。它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。  二、Fiddler工作原理  Fiddler是位于客户端和服务器端之间的HTTP代理, 它能够记录客户端和服务器之间的所有 HTTP(S)请求,可以针对特定的HTTP(S)请求,分析网络传输的数据,还可以设置断点、修改请求的数据和服务器返回的数据。  Fiddler在浏...
            9 11 3226
            分享
      • 51testing软件测试圈微信