你如何压力测试自己的软件?

时间:2009-10-20 22:57:15

标签: language-agnostic testing-strategies

我自己一直在研究一个应用程序,而且我处于一切运行良好的阶段 - 只要用户做了他或她应该做的一切。 :-)软件需要更多的测试,看看它有多强大,当人们做重复点击同一个按钮,尝试打开错误的文件,把数据放在错误的地方等等时它的工作情况如何。 p>

我遇到了一点麻烦,因为我认为在使用错误的应用程序方面有点困难。对我来说,这些都是边缘情况。尽管如此,我还是希望在开始将它提供给beta测试人员之前让应用程序尽可能稳定并经过充分测试。假设我现在不是在谈论雇用专业测试人员,我很好奇你们是否有任何提示或系统的方法来思考这项任务。

一如既往地谢谢。

3 个答案:

答案 0 :(得分:2)

听起来你在谈论两件不同的事情 “测试应用程序的功能”和“压力测试”(这是您问题的标题)

压力测试是指您拥有一个网站,并希望检查它是否可以同时为100,000人提供服务。了解您的应用程序在压力下的表现。您可以通过多种方式执行此操作,例如,通过记录某些操作,然后让多台代理计算机同时访问您的应用程序。

这个问题听起来更像是质量保证问题。这就是测试人员/测试人员的用途。但有些事情你可以自己来验证你的应用程序是否能够最好地运行。

对您的代码进行单元测试将是一个良好的开端,它可以帮助您尝试找到这些边缘情况。如果你的方法接受像int这样的东西,试试传入int.max,int.min,然后看看是什么爆炸了。将空值传递给所有内容。如果您使用的是.Net,您可能需要查看PEX,它将遍历您的应用程序所具有的所有分支/代码路径。这可能会帮助您进一步优化单元测试,以便尽可能地测试您的应用程序。

集成测试,看看你的一些常见事情的端到端会发生什么。这将有助于您在以后开发时找到错误。

这些是你可以自己做的事情的一些快速提示,试图找到你可能错过的边缘情况。但是,是的,最终你需要将你的应用程序传递给其他人进行测试。只要确保在击中它们之前尽可能多地遮盖: - )

答案 1 :(得分:0)

确保在单元测试和集成测试中有足够的代码覆盖率。

使用适当的UI验证,并测试可能会破坏它的组合。

我发现一个架构良好的应用程序可以减少UI中可能的排列数量(用户可以破解它的方式),这有很大帮助。像MVC这样的设计模式在这方面特别有用,因为它们使您的UI贴面尽可能薄。

答案 2 :(得分:0)

自动化。

(重新)考虑你的代码,以便另一个程序可以在其上抛出用户事件。创建用户事件的简单脚本并将其播放回您的程序。从beta用户捕获事件并将其保存为测试脚本(对于重现问题和检查回归非常有用)。编写一个模糊测试器,对脚本应用小的随机更改,并针对您的程序进行尝试。

通过这种自动化,您可以压力和应用,并找到明显的问题,如缓存和内存泄漏。它不会测试实际功能。对于功能,单元测试可能会有所帮助。有大量的单元测试框架可供尝试。选择有用的东西,学习编写好的测试,并将它们集成到构建过程中。