【问题标题】:What is a sanity test/check什么是健全性测试/检查
【发布时间】:2010-10-29 20:40:14
【问题描述】:

它是什么以及为什么使用/有用?

【问题讨论】:

标签: testing smoke-testing


【解决方案1】:

健全性测试在任何方面都不受编程或软件工程环境的限制。健全性测试只是一个随意的术语,表示您正在测试/确认/验证一些应该遵循非常清晰和简单的逻辑的东西。它要求其他人确认您没有精神错乱,并且对您似乎有意义的事情对他们也有意义......或者您在过去 4 小时内喝了太多能量饮料以保持理智?

如果您完全不知道为什么一些非常简单的事情不起作用……您会要求某人为您做一个快速的理智测试。让他们确保您在过去 15 次查看时没有忽略 for 循环末尾的分号。极其简单的例子,真的不应该发生,但有时你离某事太近了,无法退后一步看到整体。不同的观点有时有助于确保你不是完全疯了。

【讨论】:

  • 当你喝很多酒时,你需要在工作中进行更多的理智检查
  • 您能否提供一些在软件上下文中编写健全性测试的实践?
  • @AV94 如果您知道查询应该始终准确地返回 1 个结果,那么计算结果数为 1,这是一个健全性检查。如果此检查失败,那么您知道您的查询可能有问题
【解决方案2】:

很好的例子是数据库连接的健全性检查。

SELECT 1 FROM DUAL

这是一个测试连接的简单查询,请参阅:

SELECT 1 from DUAL: MySQL

它不测试深层功能,只是连接可以继续进行。

【讨论】:

  • 数据库健全性检查可能构成冒烟测试的一部分,但通常冒烟测试是一组基本检查,您将运行这些检查以确保应用程序正常工作。
  • 更多信息在这里 - stackoverflow.com/questions/745192/…
【解决方案3】:

smoke 和 sanity 之间的区别,至少在我的理解中,smoke 测试是一种快速测试,可以在构建之后查看 应用程序是否足以进行测试。然后,您进行一个健全性测试,它会告诉您某个特定的功能区域是否足够好,以至于在该区域上进行测试实际上是有意义的

例子:

冒烟测试:我可以启动应用程序并浏览所有屏幕并且应用程序不会崩溃。

-如果应用程序崩溃或我无法访问所有屏幕,则此版本确实存在问题,需要尽快扑灭“火灾”,并且该版本不适合测试。

健全性测试(对于用户管理屏幕):我可以进入用户管理屏幕,创建一个用户并将其删除。

  • 所以,应用程序通过了冒烟测试,现在我继续进行不同区域的健全性测试。如果我不能依靠应用程序来创建和删除用户,那么测试更高级的功能(如用户过期、登录等)毫无价值……但是,如果通过了健全性测试,我可以继续测试这片区域。

【讨论】:

    【解决方案4】:

    健全性测试或健全性检查是一种基本测试,用于快速评估索赔或计算结果是否可能为真@http://en.wikipedia.org/wiki/Sanity_testing

    【讨论】:

    • 例如,如果您正在通过迭代机制计算平方根。然后你会期望你找到的根是正的,当乘以它自己时,它大约等于输入值。所以你可以添加一些检查来确保你的逻辑是正确的——答案是“理智的”。这些是健全性检查——如果算法在逻辑上是一致的,它们就不会是假的。
    【解决方案5】:

    冒烟测试用于快速测试新版本的稳定性。 健全性测试是对新部署环境的测试。

    【讨论】:

      【解决方案6】:

      健全性检查背后的基本概念是确保运行代码的结果与预期结果一致。除了使用频率远远低于应有的使用频率之外,适当的健全性检查有助于确保您正在做的事情不会完全超出界限并因此做不应该做的事情。健全性检查最常见的用途是调试行为不端的代码,但即使是最终产品也可以受益于设置一些以防止由于 GIGO(垃圾输入,垃圾输出)而出现不需要的错误。

      与此相关的是,永远不要低估您的用户做您没想到任何人实际上会做的事情的能力。这是许多程序员从未学习过的一课,无论它被教了多少次,而健全性检查是帮助您接受它的绝佳工具。 “我永远不会那样做”不是您的代码无法处理问题的有效借口,而良好的完整性检查可以帮助您避免这种借口。

      【讨论】:

        【解决方案7】:

        对于软件应用程序而言,健全性测试是一组多项测试,这些测试使软件版本在集成新功能和错误修复后可向公众发布。健全性测试意味着虽然许多问题可能仍然存在,但可能导致某人损失金钱或数据或使程序崩溃的非常关键的问题已得到修复。因此,如果没有关键问题仍然存在,则该版本通过了健全性测试。这通常是发布前完成的最后一次测试。

        【讨论】:

          【解决方案8】:

          这是一项基本测试,可确保某些东西正常工作。

          例如:连接到数据库。或者 ping 一个网站/服务器以查看它是启动还是关闭。

          【讨论】:

          • 不,不是。它们都不检查系统的逻辑是否“正常”,它们都检查网络是否正常。因此,除非您建议您对 TCP 本身的原则进行健全性检查(这些原则已被充分证明是健全的),否则 ping 某些东西并不是健全性检查。即便如此,它还是无法通过健全性检查的基础——如果逻辑正确,测试就不会失败,而 TCP 的逻辑是正确的,但 ping 仍然会失败。
          • 尝试数据库连接或查看主机是否启动是比基本健全性检查更高级别的操作。
          【解决方案9】:

          检查一段代码(或任何其他内容,例如 Usenet 帖子)是否存在完全愚蠢的错误的行为。

          暗示检查是为了确保作者在写作时是理智的;

          例如,如果一个科学软件依赖于一个特定的公式并且给出了意想不到的结果,那么在查看更复杂的 I /O 或数据结构操作例程,更不用说算法本身了。

          【讨论】:

            猜你喜欢
            • 2015-04-20
            • 2011-01-12
            • 1970-01-01
            • 2021-08-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-12-24
            • 2015-04-10
            相关资源
            最近更新 更多