什么是冒烟测试 每日build

冒烟测试是由微软提出的一种测试方法,通常在每日构建完成后进行,旨在快速验证软件基本功能是否正常,以决定是否继续深入测试。它强调的是功能覆盖率而非功能正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

什么是冒烟测试?

http://www.enet.com.cn 2007年04月23日11:04

【导 读】:关于冒烟测试,应该是微软首先提出来的一个概念,和微软一直提倡的每日build有很密切的联系。具体说,冒烟测试就是在每日build建立后,对 系统的基本功能进行简单的测试。这种测试强调功能的覆盖率,而不对功能的正确性进行验证。从这一点看和所谓的“接受性(验收)测试(Acceptance Test)”非常相似。不同之处就在于他们执行的频率和被测的版本不同。

  关于冒烟测试,应该是微软首 先提出来的一个概念,和微软一直提倡的每日build有很密切的联系。具体说,冒烟测试就是在每日build建立后,对系统的基本功能进行简单的测试。这 种测试强调功能的覆盖率,而不对功能的正确性进行验证。从这一点看和所谓的“接受性(验收)测试(Acceptance Test)”非常相似。不同之处就在于他们执行的频率和被测的版本不同。

  至于冒烟测试这个名称的来历,大概是从电路板测试得来的。因为当电路板做好以后,首先会加电测试,如果板子没有冒烟在进行其它测试,否则就必 须重新来过。类似的如果冒烟测试没有通过,那么这个build也会返回给开发队伍进行修正,测试人员测试的版本必须首先通过冒烟测试的考验。

  冒烟测试的说法据说是:

  就象生产汽车一样,汽车生产出来以后,首先发动汽车,看汽车能否冒烟,如果能,证明汽车最起码可以开动了。说明完成了最基本的功能。

  冒烟测试一般用于每日构建(Nightly build),构建服务器首 先从CVS服务器上,下载最新的源代码,然后编译单元测试,运行单元测试通过后,编译可执行文件,可执行文件若可运行,并能执行最基本的功能,则认为通过 了冒烟测试,这时,构建服务器会把程序打包成安装文件,然后上传到内部网站,第二天一早,测试人员来了以后,会收到构建服务器发来的邮件提示昨晚是否构建 成功。若构建成功,则测试人员进行相关的功能测试。所有这些功能的完成,一般是靠编写脚本完成的,目前比较常用的脚本有TCL,Perl,Python及功能弱弱的批处理。用这些可以完成系统的每日构建。

  简单的说,就是先保证系统能跑的起来,不至于让测试工作做到一半突然出现错误导致业务中断。目的就是先通过最基本的测试,如果最基本的测试都有问题,就直接打回开发部了,减少测试部门时间的浪费。

### 冒烟测试的定义 冒烟测试是一种初步的功能验证方法,主要用于确认新构建版本的核心功能是否正常运行。它并不追求对每一个细节进行全面测试,而是专注于检查系统的主干功能是否存在明显的问题[^1]。这一术语最早由微软提出,并与每日构建(daily build)紧密关联,在每次新的软件版本完成后立即执行基本功能的简单测试[^3]。 在国际标准中,冒烟测试也被描述为一种揭示基础失败的初步测试方式,用于判断一个潜在的软件发布是否有严重的缺陷以至于无法接受进一步测试或部署[^4]。 --- ### 冒烟测试的作用 #### 1. **快速发现问题** 冒烟测试能够迅速识别出可能导致整个项目停滞的重大问题,例如关键流程不可用或者核心功能缺失等问题。通过这种方式可以在早期阶段阻止带有严重缺陷的版本进入后续开发环节。 #### 2. **节省资源成本** 如果未经初步检测就直接开展完整的回归测试或其他类型的深入测试,则可能会浪费大量时间和人力去分析那些根本无法继续工作的模块。因此,先完成一轮冒烟测试有助于减少不必要的开销[^2]。 #### 3. **保障产品质量** 它确保只有当最基本也是最重要的部分工作无误时才会允许进行下一步操作,从而提高了最终交付给客户的产品质量水平。 #### 4. **支持持续集成/交付 (CI/CD) 流程** 在现代敏捷开发环境中特别是采用 DevOps 方法论的情况下,实施有效的冒烟测试成为连续集成成熟度的重要标志之一。它可以作为自动化管道的一部分自动触发,帮助团队更快地反馈任何可能影响整体稳定性的更改[^4]。 ```python def smoke_test(): """ A function simulating basic functionality checks during a smoke test. This would typically include high-level operations like login, navigation, and core feature execution without diving deep into edge cases. Returns: bool: True if all critical functionalities pass; False otherwise. """ try: # Example check for user authentication process authenticate_user() # Check primary application flow such as navigating between pages navigate_pages() # Verify essential features are operational validate_core_features() return True except Exception as e: print(f"Smoke Test Failed with Error: {e}") return False ``` 以上是一个简化版模拟冒烟测试过程的例子,展示了如何针对几个重要领域执行最基本的核查动作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值