测试是软件开发的工程严谨度

发表于:2014-2-10 11:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:aoelover    来源:51Testing软件测试网采编

  当软件开发人员尝试向他们的家人、配偶或者其他不懂技术的人解释自己做什么时,喜欢用一些令人痛苦的比喻。我们经常尝试用桥梁建造或者其它的“硬”工程学科。然而,如果我们过度使用这些比喻,它们很快就就一沓糊涂了。结果是软件开发在很多很重要的方面与其它的“硬”工程学科并不相同。
  与“硬”工程相比,软件开发对于桥梁建造者来说,就像是建一座桥,然后增加它的负重,如果能承受住,那么就是一座好桥,如果不能承受,好吧,重新画一个。在过去的几千年里,工程师们已经发展出来可以用于结构化的解决方案而无需建造出来观看的数学和物理学科。在软件中我们没有这些,也许永远不会有,因为软件是不同的。深度地比较一下“软件”工程和一般工程,Jack Reeves 在1992年的C++ Journal中发表的“什么是软件设计?”是经典之作。尽管是二十年之前的作品,但现在看来仍然非常精确。他为这个比较描述了一幅惨淡的景象,但在1992年时,缺少的东西是软件中强烈的测试意识。
  测试“硬”的东西很困难,因为你只有在建造出来了才能测试,这对于用于检查的猜测性地构建是不可行的。但软件的构建成本却是令人难以置信地便宜。我们已经开发了一整套工具、生态系统来让它更容易:单元测试,模拟对象,测试框架及其它东西。其它的工程师一定会喜欢构建一些东西并在真实条件下测试。作为软件工程师,我们应该拥抱测试,将其作为首要的(不是惟一的)软件检查机制。我们已经有了可以使用的确保优秀的工程实践的工具,而不用等待某件软件中的微积分理论。从这个角度看,我们现在有了与告诉我们“没有时间测试”的管理人员的资本。桥梁建造人员永远也会从他们的上司那里听到这些话:“不要浪费时间做结构化的测试了,最后期限快到了。”测试是软件可重复性和质量的真实方法的认识,能让我们开发人员打退这种不负责任的论调。
  测试需要时间,正如结构分析需要时间一样。这两种行为都能确保产品的质量。是时候让软件开发人员对他们所生产的产品负责了。单单测试往往不是充分的,但一定是必需的。测试是软件开发的工程严谨度。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号