使用闭源应用程序发布自动化测试的源代码是否常见甚至是个好主意?

时间:2010-07-12 16:50:27

标签: automated-tests

请指出我发布此问题的任何欺骗或更好的地方。

我以前从未销售过软件,但是当我把自己放在顾客的手中时,我想,“我确实希望看到我购买的任何软件的自动测试的源代码。它将作为我正在购买的软件非常详细的文档!事实上,如果可能的话,我希望在购买之前将测试视为概念验证。“

从卖方的角度来看,我认为没有理由隐藏测试代码源(只要测试只通过“前门”访问二进制文件并且不包含敏感数据),或者甚至将测试作为开源发布到从任何想要帮助我们的人那里获得帮助,并向潜在客户证明该软件可以做些什么。

那么......对于您正在销售的闭源应用程序应用程序,让用户看到(某些)自动化测试代码,甚至是开放源代码,是否习惯,甚至是个好主意?

编辑:谢谢大家的见解。我应该澄清一下,我的目标是说“看看我的软件有多高质量!”而是“这就是你使用软件的方式”(使用测试作为文档)。这是一个API;没有涉及UI。我只想演示如何使用它(公共接口),而不是内部工作。我真的很讨厌很长的演示应用程序,但只通过API显示“快乐的路径”,所以我一直在寻找改进的方法。

5 个答案:

答案 0 :(得分:2)

如果能够准确测试兼容性,向您展示复制实现的人。

为API或设计为暴露的区域发布测试可能是有意义的,但如果产品是封闭源,则显示内部工作的线索似乎是交叉目的。

答案 1 :(得分:2)

让用户从任何自动化测试中看到测试结果既不习惯,也不是个好主意。

想想这就像你去看医生那样。医生可以通过向实验室送血或其他任何东西来对您进行任何数量的检查。实验室对其进行处理并将结果发回给医生。

如果您在与医生交谈之前看到的结果,您可能会完全误解它们;而(s)他接受过培训,可以了解正常范围内或之外的价值观,更重要的是了解正常情况。

这同样适用于此。您可能有一组始终失败的测试。最终用户只会看到失败但不了解那些特定的测试根本不会影响他们。例如,假设您的代码库中有一部分未完整且可供生产使用。但是,您可能已经设置了测试以强调该代码..知道您将在下个月完成该区域。

在那种情况下,您是否希望当前客户告诉我们5%的测试失败?或者,您是否愿意让您当前的客户说“我使用的一切都很完美。”..

- 只需添加一件东西 -
最终用户倾向于查看任何轻微故障,这意味着您的整个应用程序都已损坏。大多数人唯一的参考是他们的汽车。如果电池坏了,那么整辆车就坏了。

这会让您感到很沮丧。特别是如果您对某些边缘情况进行测试,甚至可能无法在生产中重现。所有用户都会看到有些东西坏了,因此不相信整个应用程序都能正常运行。

答案 2 :(得分:2)

不习惯,我从来没有见过这种开箱即用的软件。

但是,我见过客户(在更科学和/或工程领域)将使用他们自己的测试和数据“认证”软件,以确保软件不会偏离他们自己的标准(可能与开发人员设置的不同。

当认证完成(并被接受)时,新版本的软件可以投入生产。

答案 3 :(得分:2)

这个想法可能对顾客有利,但对你不利。您几乎不可能创建一套自动化测试,这些测试不会利用您未实现的实现的某些意外属性,并且您希望以后可以自由更改。一旦您将这些测试推出门,您基本上可以保证这些测试将在该软件的任何未来版本上运行。你不想把自己锁在这样的紧身衣里。

理论上,当然,您可以使用一组测试来测试完全在公共接口中公开的内容,不多也不少。但随着软件的发展,这样的测试套件的创建和维护成本非常高。 而这个想法让人联想到一个小小的伪经:

  

理论上,理论和实践是相同的。实际上,他们不是。

答案 4 :(得分:0)

而不是那样,进行自己的自动化测试并公开显示结果。连续一百个复选标记肯定会提高软件的可靠性。