文章内容为本人这三年来在嵌入式软件测试(黑盒)上的一些积累吧,说起来也挺快的,毕业三年的时间就这样过去了,在两家公司工作过(现在这家是第二家),这几年的测试项目基本都是围绕着嵌入式软件,同时需要兼顾测试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,有更好的测试管理经验和业务能力。

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

这些 资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

三年黑盒测试工程师对嵌入式软件测试的理解相关推荐

  1. 嵌入式软件测试(黑盒测试)-----三年嵌入式软件测试的理解

    前言 文章内容为本人这三年来在嵌入式软件测试(黑盒)上的一些积累吧,说起来也挺快的,毕业三年的时间就这样过去了,在两家公司工作过(现在这家是第二家),这几年的测试项目基本都是围绕着嵌入式软件,同时需要 ...

  2. 嵌入式软件测试的小结

    前言 文章内容为本人这三年来在嵌入式软件测试(黑盒)上的一些积累吧,说起来也挺快的,毕业三年的时间就这样过去了,在两家公司工作过(现在这家是第二家),这几年的测试项目基本都是围绕着嵌入式软件,同时需要 ...

  3. 【测试工程师】关于软件测试的10条建议

    现在市场上有这么个普遍现象,软件测试招聘和求职,特别是在一二线软件测试从业者最苦恼的事--测试招聘和测试求职.现在互联网公司为了能找到一个适合本公司的测试小伙伴,真的是难如上青天,每天招聘网站各种撒网 ...

  4. 论黑盒测试与白盒测试在软件测试中的不同作用

    一.引言: 黑盒测试着眼于外部结构,不考虑内部结构,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明:而白盒测试着眼于内部结构,对软件的过程性细节做细致的检查.随着软件市场的成熟,人们对 ...

  5. 嵌入式 html 解析文件,嵌入式软件测试——方法、案例与模板详解.html.pdf

    前言 近几年 ,我国的软件测试行业进入 了飞速发展 阶段 ,在一个新兴行业刚刚发展 的时期 ,给 们带来的误 区也是最多的,例 如 :很 多 认为测试工作 简单 ,技术 门槛低 ,容易上手,也有 担心 ...

  6. 这几款嵌入式软件测试工具,好用到起飞~

    也许你陌生,但在智能物联网时代,人们会越来越关注嵌入式软件测试. 说起嵌入式软件测试,我们先快速了解一下嵌入式软件自身的特点.嵌入式软件具有实时性.内存空间有限.I/O通道少,而且要求功耗低.高可靠性 ...

  7. 嵌入式软件测试——1.简介

    #百科介绍 一般来说,软件测试有7个基本阶段,即单元或模块测试.集成测试.外部功能测试.回归测试.系统测试.验收测试.安装测试.嵌入式软件测试在4个阶段上进行,即模块测试.集成测试.系统测试.硬件/软 ...

  8. 嵌入式软件测试的十大秘诀

    嵌入式软件测试的十大秘诀 <script type="text/javascript"> </script><script language=&quo ...

  9. 软件测试面试题:黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点?

    黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点? 黑盒测试的优点有: 比较简单,不需要了解程序内部的代码及实现:与软件的内部实现无关:从用户角度出发,能很容易的知道用户会用到哪 ...

最新文章

  1. Liverpool一日游
  2. linux5.5 dvd安装教程,linux 5.5 yum的安装方法(ftp)
  3. SAP Cloud for Customer图片渲染逻辑的调试
  4. 详解3D物体检测模型 SPG: Unsupervised Domain Adaptation for 3D Object Detection via Semantic Point Generation
  5. 蓝桥杯练习系统,入门训练,Java版
  6. js关闭setInterval及终止ajax请求
  7. perl语言学习笔记(3)列表与数组、子程序’、参数
  8. APP 控制 ROS 机器人 群组
  9. 分享一个c++ 加密算法 ,在百度贴吧找的,比较好玩
  10. Feign-手动创建FeignClient
  11. 北京信息科技大学计算机专业学科评估,北京信息科技大学学科评估结果排名(第四次):最新完整...
  12. 将Python字符串转换为Int,将Int转换为String
  13. 【医疗影像处理】使用前景像素的均值和方差(mean,std)对图像进行归一化(背景像素为0)【numpy-code】
  14. HTML 拾色器 桌面取色器
  15. ip数据库java,java实现对纯真IP数据库的查询
  16. hdu1069 最长下降子列
  17. java中int不兼容_mvn install命令时,一直报错:不兼容的类型 [ERROR] 找到: java.lang.Object [ERROR] 需要: int...
  18. linux下如何用gcc编译器生成lst文件?
  19. android手机两年变卡,安卓手机用一两年就卡是通病,知道这几招,还可以用很久...
  20. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'WLog' 中的标识列插入显式值。

热门文章

  1. hadoop之理解tmp目录下的文件
  2. 近年现场比赛补题(From 2013 to 2018)[持续更新]
  3. CentOS自定义安装光盘制作-kickstart用cdrom做源
  4. 南京大学网络教育计算机第二次作业,南京大学网络学院计算机基础第二次作业...
  5. Ngrok 实现内网穿透教程(Ngrok 和 Sunny-Ngrok )
  6. 计算机为什么能做翻译,为什么计算机能翻译?
  7. python自动生成和读取word_使用Python自动生成Word文档的教程
  8. Isaac-gym(6):环境创建、模型载入、actor设置等
  9. 你要的能做出炫酷图表的网站来啦
  10. sql 三个表联合查询(三表左联查询)