彻底的软件测试是可行的吗?

Linux阅码场 2021-08-12 07:14

有些软件的功能非常简单,比如简单的数学运算,或者统计用户输入字符的数量;有些软件的功能非常复杂,比如操作系统,或者汽车的自动驾驶算法等等。


对于复杂的软件,因为它们极高的复杂度,我们很容易理解它们为什么很难“完美”,所以,强如微软,也会发生比尔·盖茨演示Windows 98时蓝屏的尴尬;强如特斯拉,也会发生自动驾驶状态的汽车径直撞向大货车的悲剧。


那么,对于特别简单的软件,我们是不是可以进行"彻底"的测试,保证它们是完美的呢?


这是不可能的!即使拥有无限的预算,我们也无法做到这一点。

我们来分析一个简单的程序:它接受用户输入的字符串,统计其中的字符数量。比如,对于输入字符串"Python", 统计结果为6, 对于"test", 统计结果为4,等等。


要确保这个程序是"完美"的,我们就需要验证所有可能的输入。用户可能输入一个简单的字符,也可能输入整部《三国演义》,或者更多,我们无法预知用户的输入,用户输入的字符的数量在理论上可以是任意一个自然数,而自然数的数量是无穷大的,我们无法把所有的情况都覆盖到。


如果把问题简化,限定用户最多只能输入10个字符,超过10个字符的情况就告知用户无法处理,这种情况下,我们能否进行"彻底"的测试?


这也是不可能的!


在用户输入超过10个字符的情况下,程序真的会告知用户无法处理吗?为了确认这一点,我们需要把所有超过10个字符的输入都覆盖到,确保程序会告知无法处理,而不是意外地返回一个错误的统计值。大于10的自然数仍然是无穷多的,我们还是无法把所有的情况都覆盖到。


如果我们把问题再度简化,只测试字符数量在10以内的"有效"输入呢?


世界上有许许多多的语言和文字,unicode编码可以涵盖世界上所有语言的字符,它包含的字符的数量级大概是一百万。粗略地估算下来,用户输入字符数量为1的情况,我们有100万个测试要验证;用户输入字符数量为10的情况,我们有100万的10次方个测试要验证,只要有一个测试没有被覆盖到,我们就不能打包票说在那种情况下程序可以正常工作,也就不敢打包票说程序是没有bug的。


就像发财“捷径”买彩票一样,每一组号码要买都是要钱的,买下的号码很可能都打了水票,但是你总觉得你没买的号码里可能有”惊喜”。


在现实世界中,绝大部分的软件程序比这个字符统计的程序要复杂得多,它们一定或多或少有bug没有被发现,或者有bug被发现了却没有被修复,它们肯定称不上完美,却仍然达到了较高的软件质量,这当然不是因为它们把测试做得非常彻底,而是因为放弃追求不切实际的"完美",在预算范围内采用了合适的测试策略,得到较高的投资回报率。


其中的一个策略,是关注核心功能。


我们在买新车的时候,会对车进行非常细心的检查,刹车灯不亮,雨刮器有异响,或者轮毂有轻微刮擦,都可能导致我们拒绝收车。


在买二手车的时候,情况就不一样了,因为我们会有充足的心理准备来接受不完美。面对一辆标价5万的二手轿车,我们在验车的时候一定会重点验证发动机、变速箱、车架、转向机;至于空调是不是能制冷,我们可能会关注,但是不会过多影响我们的决定;至于车门上的车漆是否有色差,我们根本就不会花时间去看!

为什么买二手车的时候,我们变得不那么挑剔了?


是因为"穷"!

其实,我们还是挑剔的,只是,因为预算有限,我们深知无法买到完美的车,所以我们会做妥协。软件测试的思路也是这样的。我们无法保证软件产品的"完美",在预算和资源有限的情况下,我们需要专注于软件的核心功能,尽量保证核心功能得到良好的测试。


以字符统计的程序为例,如果它的主要用户是中国用户,我们可以重点测试中文和英文字符,而不需要花精力去测试程序对于亚美尼亚语字符的表现,在非核心功能的测试成本比较高的情况下更应该如此,否则,我们花费了宝贵的人力和时间,只是收获了用户可能并不太在乎的完美度,就像是架起高射炮只是为了打蚊子,成本很高,收益很小,不值得。


合理的软件测试思路是把钱花在刀刃上,重点关注核心功能的测试,预算有限时应该如此,预算充足时同样应该如此。


本文内容节选改编自码农徐西宁写的《软件自动化测试实战解析_基于Python3编程语言》一书,更多关于软件自动化测试的内容,请戳这里下单:


友情提示:出版社特别提供了额外的粉丝限时福利(2021年8月有效),有更多优惠哦:


* 本书的范例代码提供免费下载, 请关注公众号,发送消息“代码”,即可得到下载地址 *

Linux阅码场 专业的Linux技术社区和Linux操作系统学习平台,内容涉及Linux内核,Linux内存管理,Linux进程管理,Linux文件系统和IO,Linux性能调优,Linux设备驱动以及Linux虚拟化和云计算等各方各面.
评论 (0)
  • 一、gao效冷却与控温机制‌1、‌冷媒流动设计‌采用低压液氮(或液氦)通过毛细管路导入蒸发器,蒸汽喷射至样品腔实现快速冷却,冷却效率高(室温至80K约20分钟,至4.2K约30分钟)。通过控温仪动态调节蒸发器加热功率,结合温度传感器(如PT100铂电阻或Cernox磁场不敏感传感器),实现±0.01K的高精度温度稳定性。2、‌宽温区覆盖与扩展性‌标准温区为80K-325K,通过降压选件可将下限延伸至65K(液氮模式)或4K(液氦模式)。可选配475K高温模块,满足材料在ji端温度下的性能测试需求
    锦正茂科技 2025-04-30 13:08 173浏览
  • 贞光科技代理品牌紫光国芯的车规级LPDDR4内存正成为智能驾驶舱的核心选择。在汽车电子国产化浪潮中,其产品以宽温域稳定工作能力、优异电磁兼容性和超长使用寿命赢得市场认可。紫光国芯不仅确保供应链安全可控,还提供专业本地技术支持。面向未来,紫光国芯正研发LPDDR5车规级产品,将以更高带宽、更低功耗支持汽车智能化发展。随着智能网联汽车的迅猛发展,智能驾驶舱作为人机交互的核心载体,对处理器和存储器的性能与可靠性提出了更高要求。在汽车电子国产化浪潮中,贞光科技代理品牌紫光国芯的车规级LPDDR4内存凭借
    贞光科技 2025-04-28 16:52 227浏览
  • 4月22日下午,备受瞩目的飞凌嵌入式「2025嵌入式及边缘AI技术论坛」在深圳深铁皇冠假日酒店盛大举行,此次活动邀请到了200余位嵌入式技术领域的技术专家、企业代表和工程师用户,共享嵌入式及边缘AI技术的盛宴!1、精彩纷呈的展区产品及方案展区是本场活动的第一场重头戏,从硬件产品到软件系统,从企业级应用到高校教学应用,都吸引了现场来宾的驻足观看和交流讨论。全产品矩阵展区展示了飞凌嵌入式丰富的产品线,从嵌入式板卡到工控机,从进口芯片平台到全国产平台,无不体现出飞凌嵌入式在嵌入式主控设备研发设计方面的
    飞凌嵌入式 2025-04-28 14:43 137浏览
  • 在智能硬件设备趋向微型化的背景下,语音芯片方案厂商针对小体积设备开发了多款超小型语音芯片方案,其中WTV系列和WT2003H系列凭借其QFN封装设计、高性能与高集成度,成为微型设备语音方案的理想选择。以下从封装特性、功能优势及典型应用场景三个方面进行详细介绍。一、超小体积封装:QFN技术的核心优势WTV系列与WT2003H系列均提供QFN封装(如QFN32,尺寸为4×4mm),这种封装形式具有以下特点:体积紧凑:QFN封装通过减少引脚间距和优化内部结构,显著缩小芯片体积,适用于智能门铃、穿戴设备
    广州唯创电子 2025-04-30 09:02 202浏览
  • 在CAN总线分析软件领域,当CANoe不再是唯一选择时,虹科PCAN-Explorer 6软件成为了一个有竞争力的解决方案。在现代工业控制和汽车领域,CAN总线分析软件的重要性不言而喻。随着技术的进步和市场需求的多样化,单一的解决方案已无法满足所有用户的需求。正是在这样的背景下,虹科PCAN-Explorer 6软件以其独特的模块化设计和灵活的功能扩展,为CAN总线分析领域带来了新的选择和可能性。本文将深入探讨虹科PCAN-Explorer 6软件如何以其创新的模块化插件策略,提供定制化的功能选
    虹科汽车智能互联 2025-04-28 16:00 171浏览
  • 文/Leon编辑/cc孙聪颖‍2023年,厨电行业在相对平稳的市场环境中迎来温和复苏,看似为行业增长积蓄势能。带着对市场向好的预期,2024 年初,老板电器副董事长兼总经理任富佳为企业定下双位数增长目标。然而现实与预期相悖,过去一年,这家老牌厨电企业不仅未能达成业绩目标,曾提出的“三年再造一个老板电器”愿景,也因市场下行压力面临落空风险。作为“企二代”管理者,任富佳在掌舵企业穿越市场周期的过程中,正面临着前所未有的挑战。4月29日,老板电器(002508.SZ)发布了2024年年度报告及2025
    华尔街科技眼 2025-04-30 12:40 171浏览
  • 一、智能家居的痛点与创新机遇随着城市化进程加速,现代家庭正面临两大核心挑战:情感陪伴缺失:超60%的双职工家庭存在“亲子陪伴真空期”,儿童独自居家场景增加;操作复杂度攀升:智能设备功能迭代导致用户学习成本陡增,超40%用户因操作困难放弃高阶功能。而WTR096-16S录音语音芯片方案,通过“语音交互+智能录音”双核驱动,不仅解决设备易用性问题,更构建起家庭成员间的全天候情感纽带。二、WTR096-16S方案的核心技术突破1. 高保真语音交互系统动态情绪语音库:支持8种语气模板(温柔提醒/紧急告警
    广州唯创电子 2025-04-28 09:24 185浏览
  • 你是不是也有在公共场合被偷看手机或笔电的经验呢?科技时代下,不少现代人的各式机密数据都在手机、平板或是笔电等可携式的3C产品上处理,若是经常性地需要在公共场合使用,不管是工作上的机密文件,或是重要的个人信息等,民众都有防窃防盗意识,为了避免他人窥探内容,都会选择使用「防窥保护贴片」,以防止数据外泄。现今市面上「防窥保护贴」、「防窥片」、「屏幕防窥膜」等产品就是这种目的下产物 (以下简称防窥片)!防窥片功能与常见问题解析首先,防窥片最主要的功能就是用来防止他人窥视屏幕上的隐私信息,它是利用百叶窗的
    百佳泰测试实验室 2025-04-30 13:28 232浏览
  • 网约车,真的“饱和”了?近日,网约车市场的 “饱和” 话题再度引发热议。多地陆续发布网约车风险预警,提醒从业者谨慎入局,这背后究竟隐藏着怎样的市场现状呢?从数据来看,网约车市场的“过剩”现象已愈发明显。以东莞为例,截至2024年12月底,全市网约车数量超过5.77万辆,考取网约车驾驶员证的人数更是超过13.48万人。随着司机数量的不断攀升,订单量却未能同步增长,导致单车日均接单量和营收双双下降。2024年下半年,东莞网约出租车单车日均订单量约10.5单,而单车日均营收也不容乐
    用户1742991715177 2025-04-29 18:28 196浏览
  • 随着电子元器件的快速发展,导致各种常见的贴片电阻元器件也越来越小,给我们分辨也就变得越来越难,下面就由smt贴片加工厂_安徽英特丽就来告诉大家如何分辨的SMT贴片元器件。先来看看贴片电感和贴片电容的区分:(1)看颜色(黑色)——一般黑色都是贴片电感。贴片电容只有勇于精密设备中的贴片钽电容才是黑色的,其他普通贴片电容基本都不是黑色的。(2)看型号标码——贴片电感以L开头,贴片电容以C开头。从外形是圆形初步判断应为电感,测量两端电阻为零点几欧,则为电感。(3)检测——贴片电感一般阻值小,更没有“充放
    贴片加工小安 2025-04-29 14:59 193浏览
  • 文/郭楚妤编辑/cc孙聪颖‍越来越多的企业开始蚕食动力电池市场,行业“去宁王化”态势逐渐明显。随着这种趋势的加强,打开新的市场对于宁德时代而言至关重要。“我们不希望被定义为电池的制造者,而是希望把自己称作新能源产业的开拓者。”4月21日,在宁德时代举行的“超级科技日”发布会上,宁德时代掌门人曾毓群如是说。随着宁德时代核心新品骁遥双核电池的发布,其搭载的“电电增程”技术也走进业界视野。除此之外,经过近3年试水,宁德时代在换电业务上重资加码。曾毓群认为换电是一个重资产、高投入、长周期的产业,涉及的利
    华尔街科技眼 2025-04-28 21:55 146浏览
  • 浪潮之上:智能时代的觉醒    近日参加了一场课题的答辩,这是医疗人工智能揭榜挂帅的国家项目的地区考场,参与者众多,围绕着医疗健康的主题,八仙过海各显神通,百花齐放。   中国大地正在发生着激动人心的场景:深圳前海深港人工智能算力中心高速运转的液冷服务器,武汉马路上自动驾驶出租车穿行的智慧道路,机器人参与北京的马拉松竞赛。从中央到地方,人工智能相关政策和消息如雨后春笋般不断出台,数字中国的建设图景正在智能浪潮中徐徐展开,战略布局如同围棋
    广州铁金刚 2025-04-30 15:24 168浏览
  •  探针台的维护直接影响其测试精度与使用寿命,需结合日常清洁、环境控制、定期校准等多维度操作,具体方法如下:一、日常清洁与保养1.‌表面清洁‌l 使用无尘布或软布擦拭探针台表面,避免残留清洁剂或硬物划伤精密部件。l 探针头清洁需用非腐蚀性溶剂(如异丙醇)擦拭,检查是否弯曲或损坏。2.‌光部件维护‌l 镜头、观察窗等光学部件用镜头纸蘸取wu水jiu精从中心向外轻擦,操作时远离火源并保持通风。3.‌内部防尘‌l 使用后及时吹扫灰尘,防止污染物进入机械滑
    锦正茂科技 2025-04-28 11:45 107浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦