如何测试应用程序?

时间:2009-01-29 18:05:46

标签: unit-testing testing profiling

我一直在为IMO建立一个非常酷的RIA。但它现在接近完成,我需要测试它,看看是否有任何错误或反直觉的部分或类似的东西。但是怎么样?每当我要求某人试图打破它时,他们会看着它3分钟并说“它很坚固”。你们是如何测试的?我以前从未使用过UnitTest,实际上大约3个月前我从未听说过单元测试,但我仍然不明白它是什么。我是否必须构建一个全新的应用程序来运行每个功能?这将需要永远,加上某些功能可能只会在某些情况下产生错误,所以我不理解单元测试。

5 个答案:

答案 0 :(得分:1)

首先要系统地确保一切都以您期望的方式运作。然后,您希望使用可行且适当的软件安装组合对每个真实硬件进行尝试。然后,您希望获取人与人之间的每一个交互点,并尝试将尽可能多的数据放入,无数据,以及可能导致异常的特殊数据。尝试按照您没有想到的顺序或工作流程进行操作,有时某些操作依赖于其他操作。您和您的朋友自然会按顺序执行这些步骤,当有人不这样做时会发生什么?此外,让完整的新手使用它是一种很好的方式来查看用户可能会尝试的奇怪事情。

答案 1 :(得分:1)

这个问题非常开放,所以这篇文章不会回答你的所有问题。如果你可以改进你想要的东西,那会有所帮助。

您可能想要做两件主要的测试。第一个是单元测试,第二个是可能被称为验收测试。

单元测试正在尝试相对隔离的每个类/方法,并确保它们正常工作。您可以使用jUnit,nUnit等作为框架来保存测试。采取一种方法,看看它可能期望的不同输入和结果是什么。然后为每个输入/输出对编写一个测试用例。这将告诉您大多数部件按预期工作。

验收测试(或有时称为端到端测试)正在运行整个系统并确保其正常运行。提出您希望用户执行的方案列表。现在系统地尝试所有。尝试它们的变化。做他们的工作?如果是这样,您可能已准备好将其推广到至少有限的受众。

另外,请查看James Whittaker的How to Break Software。这是一本较好的测试书籍,是一本简短的阅读书。

答案 2 :(得分:0)

发布测试版?

答案 3 :(得分:0)

它基于Xcode和Cocoa开发,但this video仍然是单元测试的一个很好的介绍。单元测试确实应该与开发一起完成,因此如果您的应用程序几乎完成,则需要一段时间才能实现。

答案 4 :(得分:0)

Firebug有一个很好的网络应用程序分析器。至于测试JS文件,我使用Scriptaculous。无论您使用哪种后端,都需要进行全面测试。

但在此之前,您需要了解单元测试是什么。单元测试验证源代码的所有单独单元是否按预期运行。这意味着您可以验证所有函数/方法的输出。基本上,请阅读this。除了单元测试之外,还有不同的测试策略,例如集成测试,它测试不同的模块是否相互集成。你要求人们做的是验收测试,它验证它的外观和行为是否符合原计划。 Here更多地涉及各种测试策略。

PS:始终测试边界条件