软件测试对于减少程序BUG有多大帮助?

经验的程序员通常认为测试与代码同等重要,测试可以减少代码变更或扩展的不确定性。测试应该方便阅读简单且能快速运行,使用的内存也不会很多。

常见的软件错误可能会导致程序突然终止甚至损坏数据库,后果可能会非常惨重:1996年,由于一个软件错误导致阿丽亚娜-5 运载火箭爆炸。而这个错误是由浮点数数转换整数引起的,这是一个16位的有符号整数只能表示小整数值。该整数无法表示浮点数而程序在检测到这个意外的错误时停止了运行。

触发这个错误的功能不是必需的,只是作为一个子系统从早期的阿丽亚娜火箭模型中集成而来的。按照 1996 年的物价计算,这个错误的成本大约为 4 亿美元。生产正确软件的重要性早已广为人知。

几十年来优秀的科学家和工程师一直在努力确保正确性的常见策略有以下几种。例如,要做一项复杂的科学计算,那么就需要成立几个独立的团队来计算答案。

如果所有团队得出的答案都相同,则可以得出结论这个答案是正确的。这种冗余策略通常用于防范与硬件相关的故障。然而不幸的是,编写多个版本的软件通常是不切实际的。许多程序员希望能证明一个程序是正确的,抛开硬件故障不谈必须确保软件不会遇到任何错误。事实上如今的软件非常成熟可以证明程序是正确的。

程序员逐步理解了测试软件的必要性,但并非所有代码都需要测试,通常原型或示例就无需进一步验证。但任何在专业环境中设计完成、必须实现的重要功能至少应该完成部分测试。测试能够降低将来不得不面对灾难状况的可能性。

常见的测试主要有两种,单元测试和集成测试。

单元测试旨在测试软件程序的特定组件。例如,针对单个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值