测试是软件开发的工程严谨度
作者:网络转载 发布时间:[ 2014/2/10 13:13:15 ] 推荐标签:测试 开发 开发人员
当软件开发人员尝试向他们的家人、配偶或者其他不懂技术的人解释自己做什么时,喜欢用一些令人痛苦的比喻。我们经常尝试用桥梁建造或者其它的“硬”工程学科。然而,如果我们过度使用这些比喻,它们很快一沓糊涂了。结果是软件开发在很多很重要的方面与其它的“硬”工程学科并不相同。
与“硬”工程相比,软件开发对于桥梁建造者来说,像是建一座桥,然后增加它的负重,如果能承受住,那么是一座好桥,如果不能承受,好吧,重新画一个。在过去的几千年里,工程师们已经发展出来可以用于结构化的解决方案而无需建造出来观看的数学和物理学科。在软件中我们没有这些,也许永远不会有,因为软件是不同的。深度地比较一下“软件”工程和一般工程,Jack Reeves 在1992年的C++ Journal中发表的“什么是软件设计?”是经典之作。尽管是二十年之前的作品,但现在看来仍然非常精确。他为这个比较描述了一幅惨淡的景象,但在1992年时,缺少的东西是软件中强烈的测试意识。
测试“硬”的东西很困难,因为你只有在建造出来了才能测试,这对于用于检查的猜测性地构建是不可行的。但软件的构建成本却是令人难以置信地便宜。我们已经开发了一整套工具、生态系统来让它更容易:单元测试,模拟对象,测试框架及其它东西。其它的工程师一定会喜欢构建一些东西并在真实条件下测试。作为软件工程师,我们应该拥抱测试,将其作为首要的(不是惟一的)软件检查机制。我们已经有了可以使用的确保的工程实践的工具,而不用等待某件软件中的微积分理论。从这个角度看,我们现在有了与告诉我们“没有时间测试”的管理人员的资本。桥梁建造人员永远也会从他们的上司那里听到这些话:“不要浪费时间做结构化的测试了,后期限快到了。”测试是软件可重复性和质量的真实方法的认识,能让我们开发人员打退这种不负责任的论调。
测试需要时间,正如结构分析需要时间一样。这两种行为都能确保产品的质量。是时候让软件开发人员对他们所生产的产品负责了。单单测试往往不是充分的,但一定是必需的。测试是软件开发的工程严谨度。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11