c# - 使用哪种测试方法?

标签 c# unit-testing testing

首先,我是测试软件的新手。我想我比较新手。对于这个项目,我仍然需要它来确保所有计算都正确完成。目前,我正在使用单元测试来测试 C# 中的每个模块,以确保它做它应该做的事情。

我知道一些不同的测试方法(集成、单元测试),但我似乎找不到任何关于一般测试的好书或引用资料。大多数都是在一个特定领域(如单元测试)。这使得(对我而言)很难很好地掌握如何最好地测试您的软件,以及使用哪种方法。

例如,我也在使用 GUI 元素,我应该测试这些元素吗?我是否应该只使用它进行测试,然后目视确认一切正常?我知道这取决于它是否重要,但在什么时候你会说“我们不要测试它,因为它并不真正相关/重要”?

总结一下:如何选择最好的测试方法,以及在使用该方法测试软件时划清界限?

最佳答案

有几种测试,但恕我直言,最重要的是单元测试、组件测试、功能测试和端到端测试。

  • 单元测试 检查您的类是否按预期工作。(JUnit)。这些测试是您测试环境的基础,因为它们告诉您您的方法是否有效。您的目标是 100% 的覆盖率,因为这些是您测试中最重要的部分。
  • 组件测试 检查多个类在您的代码中如何协同工作。组件在代码中可以有很多东西,但基本上多于单元测试,少于功能测试。目标覆盖率约为 75%。
  • 功能测试 正在测试您实现的实际功能。例如,如果您想要一个将一些输入数据保存到数据库的按钮,这就是程序的功能。那就是你要测试的。这里的目标覆盖率约为 50%。
  • 端到端测试 正在测试您的整个应用程序。这些可能非常健壮,您可能不能也不想测试所有内容,此测试用于检查整个系统是否正常工作。目标覆盖率约为 25%。

这也是重要性的顺序。

虽然这些中没有“更好”这样的东西。您可以运行的任何测试来检查您的代码是否按预期工作都同样有效。

您可能希望大部分测试自动化:这样您就可以在喝咖啡休息时进行测试,或者您的服务器可以在您下类时测试所有内容,然后在早上检查结果。

GUI 测试被认为是测试中最难的部分,有多种工具可以帮助您完成这项工作,例如用于浏览器 GUI 测试的 Selenium。 因此,模型- View -展示器等几种架构模式试图分离应用程序的 GUI 部分,并尽可能使用哑 GUI 以避免其中的错误。如果您可以成功地分离图形,您将能够模拟出应用程序的图形用户界面部分,并将其简单地从大部分测试过程中删除。

作为引用,我推荐 Elfriede Dustin 的“Effective Software Testing”,但我不熟悉这方面的书籍;可能会有更好的。

关于c# - 使用哪种测试方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8397959/

相关文章:

c# - 如何为需要用户进行身份验证的 Bot Framework v4 对话框编写单元测试?

python - 在 Python 中模拟标准输出

ios - 使用 NSOperations 和 Coredata 在 iOS 应用程序中测试 API 请求层的建议

c# - 是否可以在不获取所有链接的情况下获取链接表?

c# - 如何让 EventLog 将用户名记录到 Window 事件日志中?

c# - EPPlus:创建排序列

iphone - 如何运行和调试 iPhone 应用程序的单元测试

javascript - Jasmine 测试 url 的 javascript 函数

testing - 在 Web 应用程序上进行负载测试和报告的好方法是什么?

c# - LINQ - "Query Syntax"上的动态 Where 子句