作为嵌入式底层码农,我是如何对系统固件做冒烟测试的?
冒烟测试?
"冒烟测试" 源自硬件行业。
对一个硬件进行改动后,直接给设备加电,看看设备会不会冒烟,没冒烟,就表示待测硬件是通过了测试。
而在软件研发中,冒烟测试其实是微软首先提出来的一个概念,和微软一直提倡的每日构建有很密切的联系。
冒烟只是这类测试活动更形象化一些的叫法,更专业一点的 术语是 BVT (Build Verification Testing) 。
有什么意义?
点击查看大图
通常一提到冒烟测试,大家都习惯性的把关注点放在后面两个字:测试 。
开发人员一听到 "测试" 两个字,条件反射地就会认为这不是我们的活儿,应该是测试人员来完成的。
这其实是一种误解。
通常,冒烟测试是交给开发人员去做的。
只有开发人员确认了核心功能和目标功能都可用后,再转交给测试人员。
这么做是有好处的:
用于确认代码中的更改是否按预期运行,且不会破坏整个版本的稳定性;
不要求覆盖面有多广,但至少要保证覆盖待测产品的多数核心功能;
不要求每个功能都测的很详细,但至少要保证被修复了的 bug 所属的功能和系统其他核心功能都是可用的,即这个版本能拿去做系统测试了;
如果系统的核心功能没跑通,或者目标 bug 没被修复,后续的系统测试就没必要了;
总之,
冒烟测试是确定 bug 是否修复、目标功能是否实现的一种经济且有效的方法。
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。
点击这里找小助理0元领取:加微信领取资料
我怎么做?
老吴我作为一个嵌入式底层码农,手头上管理的嵌入式单板大概有 10 多个,几乎每天都要修 bug,然后要构建新的系统固件。
在将这些系统固件转交测试人员之前,我都会调用自己写的自动化冒烟测试脚本。
下面是其中某个真实产品的冒泡测试项列表: declare -a TEST_TABLE=( "Kernel-Boot_Stability" "Ethernet-1000M_Perf" "USB3.0-Host1_Perf" "USB2.0-Host1_Perf" "USB2.0-Host2_Perf" "WiFi-2.4G_Connect" "WiFi-2.4G_Perf" "WiFi-5G_Connect" "WiFi-5G_Perf" "WiFi_Switch_Stability" "Memory_Stability" "GPU_Perf" ) declare -gA TEST_CFG_TABLE=( ["Kernel-Boot_Stability"]="" ["Ethernet-1000M_Perf"]="Ethernet-1000M_Perf.cfg" ["USB3.0-Host1_Perf"]="USB_Perf_ETHUSB1.cfg" ["USB2.0-Host1_Perf"]="USB_Perf_ETHUSB2.cfg" ["USB2.0-Host2_Perf"]="USB_Perf_ETHUSB3.cfg" ["WiFi-2.4G_Connect"]="WiFi-2.4G_Connect.cfg" ["WiFi-2.4G_Perf"]="WiFi-2.4G_Perf.cfg" ["WiFi-5G_Connect"]="WiFi-5G_Connect.cfg" ["WiFi-5G_Perf"]="WiFi-5G_Perf.cfg" ["Memory_Stability"]="Memory_Stability.cfg" ["GPU_Perf"]="" ["WiFi_Switch_Stability"]="WiFi_Switch_Stability.cfg" ) declare -gA TEST_MOD_TABLE=( ["Kernel-Boot_Stability"]="dmesg" ["Ethernet-1000M_Perf"]="iperf" ["USB3.0-Host1_Perf"]="iperf" ["USB2.0-Host1_Perf"]="iperf" ["USB2.0-Host2_Perf"]="iperf" ["WiFi-2.4G_Connect"]="wifi_connect" ["WiFi-2.4G_Perf"]="iperf_wifi" ["WiFi-5G_Connect"]="wifi_connect" ["WiFi-5G_Perf"]="iperf_wifi" ["Memory_Stability"]="memtester" ["GPU_Perf"]="glmarktest" ["WiFi_Switch_Stability"]="wifi_switch" ) declare -gA RESULT_TABLE=()
其核心实现思路极其简单,我在上一篇文章里介绍过:
用 Shell 快速写一个嵌入式测试框架
我用相同的思路为所有的单板都编写了自动化的冒烟测试脚本。
这些脚本不仅为我个人节省了大量的精力,同时在一定程度上降低了公司测试人员的工作负担,性价比极高。
总结
冒烟测试的要点:
由开发人员负责。
适用于每日构建的软件。
不要求全面测试,但是要快速地验证出最核心的功能和目标功能是否运行正常。
冒烟测试通过后,再将软件转交给测试人员进行更全面的系统测试。
点击查看大图 参考资料
https://zhuanlan.zhihu.com/p/39786718
https://www.guru99.com/smoke-testing.html
https://www.guru99.com/smoke-sanity-testing.html
https://www.edureka.co/blog/what-is-smoke-testing/
文章链接:
https://mp.weixin.qq.com/s/hHol9iAtwc3e-VBro7aCQg
转载自:老吴嵌入式 ,作者吴伟东Jack
文章链接: 作为嵌入式底层码农,我是如何对系统固件做冒烟测试的?
拆迁模拟器免费中文版拆迁模拟器免费中文版是一款深受大家欢迎的拆迁类游戏,拥有写实的风格,精致的3D立体画风塑造的场景,丰富多样的玩法,玩家的任务就是合理的运用各种拆家工具进行拆家。在这里玩家能够肆意的
现任国女乒主力个个都是神仙颜值,集美貌与球技于一身我们喜欢一个人,总是始于颜值,陷于才华,忠于人品的,现任国乒女队主力个个都是神仙颜值,集美貌与球技于一身。比心刘诗雯小枣似的脸蛋,笑起来眉眼弯弯,虽来自东北,感觉更有江南女子的温婉
蜂王空降,詹姆斯继续捡漏!湖人找到威少的备胎,你却主动放弃本赛季的湖人,可谓是命运多舛。开赛初,纳恩艾灵顿阿里扎和塔克相继受伤,湖人的磨合期被迫延长。随后詹姆斯遭到伤病困扰,因为脚踝酸痛腹部拉伤和禁赛,詹姆斯缺席了11场比赛。经历了这段时
以比特币为代表的虚拟货币真的靠谱吗?世界上第一枚虚拟货币的诞生比特币(英语Bitcoin,缩写BTC或XBT)是一种基于去中心化,采用点对点网络与共识主动性,开放源代码,以区块链作为底层技术的加密货币,比特币由中本聪
深夜,恒大汽车发布重要公告每经编辑杜宇12月2日晚间,恒大汽车在港交所公告,于2021年12月2日根据日期为11月19日的配售与认购协议以每股3港元的价格发行9亿股股份,占发行前的现有已发行股份数目的9。0
幕后大佬李春元六个儿子个个身价过亿,一步棋失算百亿帝崩塌国2014年,一位老人召集自己子女开了一场家庭会议,会议目的只有一个,那就是筹集资金。海鑫钢铁是咱们家族曾经最辉煌的象征,而且也是海仓的心血,你们一人拿出一个亿挽救一下吧!年迈的老人
黑龙江女首富戴秀丽身价95亿却惨遭离婚,丈夫我已厌倦太富裕在2020年突然全球爆发的新冠肺炎之前,全球范围内突发的影响范围最为广泛的影响效果最为强烈的性质最为恶劣的,2008年金融危机如果算第二位,那么没有事情敢把自己放在第一位上了。20
沃尔想打球,让伍德装病然后私下给伍德15万美元火箭近期接连有主力球员受伤。据知名记者TimMacMahon报道,伍德脚踝伤势无大碍,但小凯文波特可能会缺席一段时间。在终结16连败后,火箭取得4连胜,但队内伤病情况严重。继贾伦格
董明珠就算我投资500亿也要做成芯片!专家一派胡言面对专家的指责,董明珠也丝毫没有怯场,她回怼专家称做芯片这事我不需要国家资助,我自己就可以投资得了,我今年投上100亿,明年再投100亿,第三年投300亿,三年之后说不定能投500
美股收高道指涨逾600点波音涨超7中新经纬12月3日电美东时间周四,美股三大股指集体收涨。截至收盘,道指涨617。75点,涨幅1。82,报34639。79点纳指涨127。27点,涨幅0。83,报15381。32点标
新闻11丨加拿大鹅,为何对中国消费者另眼相看?上海消费者贾女士在加拿大鹅专卖店买到商标绣错缝线粗糙的羽绒服却不给退,因为更换条款说所有中国大陆地区专门店售卖的货品,均不得退货。直到专卖店被上海消保委约谈后,她才顺利退货。但中国