• 0
  • 0
分享
  • 三年黑盒测试工程师对嵌入式软件测试的理解——软件测试圈
  • 恬恬圈 2023-12-21 16:56:21 字数 2789 阅读 1050 收藏 0

  前言

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

  为什么测试的这么杂呢,其实这些全部加起来只是一个产品,只是因为目前就只有我一个测试,所以整套系统都是由我一个人来测。

  就拿我现在这家公司做的一个视频会议系统来说吧,整套系统包含有硬终端(Linux端)、App端、Web端(用于后台账户/会议管理等)、PC端组成。

  接触过嵌入式软件测试的同学应该都明白这些事,下面我就来说说自己这几年对嵌入式软件测试的理解和看法吧,欢迎留言补充或讨论,勿喷喔~

  什么是嵌入式系统?

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

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

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

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

  嵌入式系统按实时性分类,可分为非实时性,软实时性和硬实时性。

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

  什么是嵌入式软件?

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

  说通俗易懂一点就是一套安装在带有linux系统的PCB板子上的软件。像这样:

  嵌入式软件的特征:

  ·系统内核小

  · 专用性强

  · 系统精简

  · 高实时性操作系统

  · 基于硬件和软件的相辅相成

  · 与商用软件测试异同点

  此文单从黑盒测试的角度来讲。

  相同点

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

  不同点

  需要的测试环境不同。

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

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

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

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

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

  虽然看似这些问题与我无关,但是如果是硬件支持的问题,你抛出Bug,开发排查完之后发现是你自己没有按照规格接入所能支持的硬件,到时候尴尬的是不是你?

  再比如POE网口如果没有接入支持POE的网线,造成问题是不是你的不专业了等等,我们既然是测试工程师,那就应该要有工程师的专业程度来完成工作。

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

  需要的技能点不同

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

  在测试嵌入式软件的时候,你要接入网线、进行网络配置、接入交换机、了解网络通信、数据传输等等……

  也就是说嵌入式软件测试你需要的是(扎实的软件测试理论和测试方法+计算机网络相关基础知识)。

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

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

  · 目前系统资源有限

  · 与硬件系统紧密关联

  · 运行平台多样化

  · 交叉式的测试模式

  · 系统的安全性、可靠性、系统运行结果的正确性等

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

  有人可能会问嵌入式软件测试难吗?跟商用软件测试相比哪个难度更高?

  我感觉在黑盒测试中,嵌入式软件测试是要比商用软件测试难度高的,我只站在嵌入式软件的黑盒测试角度来发言。为什么这么说呢,我暂时只想到以下几点:

  硬件平台不同导致测试难度增大,由于嵌入式软件是跟硬件平台紧密关联的,也就是说同一套软件,如果移植到另一个平台上,就要从头到尾的测试一遍,在工作量上就比商用软件大,出错几率也会提升,相应的测试难度也会提高一点。我就遇到一个项目需要跑在两个平台的情况。

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

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

  外接设备导致测试难度增大,生活中基本上的嵌入式软件都是需要外接其他的设备的,比如接入U盘、摄像头、麦克风等等,在测试时如果发现某个工作无法实现,我们需要从三个方面去考虑:

  1、是不是软件的功能Bug;

  2、是不是硬件物理接口损坏问题;

  3、是不是接入的外设与软件协议有问题或者驱动有问题等等原因增加了测试难度。

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

  结尾

  测试也是一个有技术难度的岗位,需要不断的积累经验,老手测试和新手测试最大的不同就是老手测试可以很快的定位和发现Bug,老手测试可以有更多的测试方法和测试策略去找到Bug,有更好的测试管理经验和业务能力。

  祝各位同学在测试的道路上越来越好,一起加油哈!


作者:斯维因yin    

来源:http://www.51testing.com/html/16/n-4481416.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   今天想聊一聊关于测试工作量评估及需求进度把控的内容。  我个人觉得有时候评估测试工作量其实也挺难的,比如有的需求没有需求文档,只能靠自己对需求的理解去大概评估,有可能评估的工作量比实际需要的工作量会少点,对于每周进行迭代的项目来讲,差出来的这点时间可能就会导致项目不能如期上线的风险。  我最近就亲身经历了评估测试工作量不够合理导致差点出现上线风险的案例,好在是及时在早会的时候和整个团队包括产品、项目经理抛出了风险,然后和开发同学协同,通过连续加班的方式按照原计划完成了所有需求内容的测试,虽然最后没有真的引发上线的风险,但是不得不说,连续的加班去赶进度真的很头疼。  这让我意识到工作量评估和...
            0 0 1152
            分享
          • 如何进行需求管理?需求采集、需求分析、需求筛选、需求处理这4个步骤有什么成体系的方法吗?有适合的工具进行管理吗?可以介绍一下工作中的具体方法吗?结合上面的问题,我们来具体了解一下需求管理,需求管理源于业务需要,始于需求挖掘,继而需求分析,需求定义,需求验证。周而复始。一、业务需要说明需求产生的原因,可能是高层制定的目标,中层对工作流程的调整,基层碰到无法解决的问题,用户需要,外部环境变化,竞争对手策略变化或者政府政策调整等。需求人员在明确业务需要时,首先明确干系人,其次获取干系人要求/需求。可以采用的方法包括:行业基准(竞品),业务规则分析(产品分析),头脑风暴,焦点小组,功能分解,根源分析等...
            0 0 957
            分享
          •        此文讲述了我和腾讯蜜汁缘分。       我在腾讯截至投递简历的前十几分钟填完了简历,以至于我报错岗位了。我想去的是测试开发,却报成了软件测试。       紧接着,我收到了笔试通知。在笔试的模拟测试中,共有2种类型的题目:不定项选择题26分,填空题24分。囊括的知识点很广,有linux,操作系统(页面替换题,进程线程),数据结构,计算机网络。       在正式笔试的时候,考的跟模拟题完全不一样!可能因为我是软件测试而不...
            0 0 2192
            分享
          • 怎么编写接口测试用例?接口测试用例如何编写?看到许多这样的问题,大家都知道编写接口测试用例是接口测试的重要组成部分,它决定了测试的质量和可靠性。因此,程序员必须编写高质量的接口测试用例,以确保接口在生产环境中能够正常运行。编写接口测试用例的步骤如下:一、理解接口需求在编写接口测试用例之前,程序员必须完全理解接口的需求。他们需要详细了解接口的设计,包括功能、输入、输出等。程序员还需要详细了解接口的使用场景,以便编写出能够覆盖所有需求的测试用例。二、确定测试策略程序员需要根据接口的需求和使用场景,确定测试策略。他们需要考虑到测试的目标,例如是否要测试接口的性能、稳定性等。程序员还需要确定测试用例的...
            0 0 1251
            分享
          •   最近看了很多简历,很多候选人年限不小,但是做的都是一些非常传统的项目,想着也不能通过简历就直接否定一个人,何况现在大环境越来 越难,大家找工作也不容易,于是就打算见一见。  在沟通中发现,由于年限不小,他们的定位基本都是高级及以上,毕竟,年限摆在那里,面个中级也不体面。  面试时我打算聊点基础的,先打开一下话题,结果没想到我一问,不提测试工具,仅仅基础的技术很多也知之不详,6年的工作经验仅仅是功能测试堆起来的,毫无深度,对于APP自动化等等一问三不知,都停留接口测试的基础方法层面上,自动化进阶问题更是一问一个死,前沿技术最新动态也毫无关注。  以上并不是给不想学自动化测试的人们的一个借口。...
            0 0 582
            分享
      • 51testing软件测试圈微信