65.9K
CodeProject 正在变化。 阅读更多。
Home

VSTS 测试 12 个重要 FAQ(单元测试、负载测试、自动化测试、数据库测试和代码覆盖率)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.86/5 (36投票s)

2009年12月4日

CPOL

10分钟阅读

viewsIcon

185510

本文包含 12 个重要 FAQ,涵盖单元测试、自动化测试、数据驱动测试、负载/性能测试、代码覆盖率、数据库测试和有序测试。

VSTS 测试 12 个重要 FAQ(单元测试、负载测试、自动化测试、数据库测试和代码覆盖率)

引言

VSTS 2010 下载

什么是单元测试?

使用 .NET 进行单元测试有哪些不同方法?

我们可以从一个简单的 NUNIT 示例开始吗?

如何使 NUNIT 测试用例实现数据驱动?

如何使用 VSTS 进行单元测试?

如何使用 VSTS Test 创建数据驱动的单元测试?

如何使用 VSTS 进行自动化测试?

如何在 VSTS 中使自动化测试实现数据驱动?

如何使用 VSTS 进行覆盖率测试?

使用 VSTS 执行性能测试涉及哪些步骤?

我听说过 VSTS 中的数据库测试,它有什么作用?

什么是顺序测试?

我的其他 FAQ

引言

本文包含 12 个重要 FAQ,涵盖单元测试、自动化测试、数据驱动测试、负载/性能测试、代码覆盖率、数据库测试和有序测试。

 我收集了约 400 个关于 Silverlight、Azure、VSTS、WCF、WPF、WWF、SharePoint、设计模式、UML 等的 FAQ 问题和答案。欢迎从我的网站 http://www.questpond.com 下载这些 FAQ PDF 

 

VSTS 2010 下载

本文大量使用 VSTS,如果您还没有 BETA 版本,请从以下地址下载:

 http://www.microsoft.com/downloads/details.aspx?FamilyID=255fc5f1-15af-4fe7-be4d-263a2621144b&displaylang=en 
 

什么是单元测试?

单元测试是一种验证和确认方法,开发人员在其中测试源代码的单个单元。需要记住的一些要点是:-

 

  • 单元是应用程序中可测试的最小部分。它可以是一个方法、函数或类。
  • 这些测试是在开发过程中进行的。
  • 单元测试属于白盒测试类别。

 

使用 .NET 进行单元测试有哪些不同方法?

进行单元测试主要有两种公认的方法:-

  • NUNIT
  • Visual Studio Team Edition Test System

 

我们可以从一个简单的 NUNIT 示例开始吗?

好的,我们来看一个简单的类 ‘clsInvoiceCalculation’,如下所示。该类通过输入每个产品的成本和产品数量来计算总成本。

public class clsInvoiceCalculation
    {
        public int CalculateCost(int intPerProductCost, int intNumberOfProducts)
        {
            return intPerProductCost * intNumberOfProducts;
        }
}

假设我们要使用 NUNIT 对上述类执行以下测试用例。

每个产品成本

产品数量

预期输出

10

20

200

步骤 1:- 首先,从 http://nunit.org/index.php?p=download 下载 NUNIT 软件 

步骤 2:- 创建一个新的 C# 类项目,并添加对“C:\Program Files\NUnit 2.5.2\bin\net-2.0\framework\nunit.framework.dll”的引用。我们还需要添加对我们要测试的类项目,即发票项目的引用。


 

步骤 3:- 在代码中添加对 NUNIT 和发票项目的引用。

using NUnit.Framework;
using Invoice;

步骤 4:- 我们需要创建一个带有 ‘TestFixture’ 属性的简单类。然后需要创建一个带有 ‘Test’ 属性的方法,该方法将包含我们的测试。


 

您可以在上图中看到 ‘TestInvoiceCalculation’ 方法如何创建 ‘clsInvoiceCalculation’ 的对象,传递值并检查返回的值是否符合预期结果。‘Assert’ 命令用于检查预期输出和返回结果是否匹配。

 

步骤 5:- 完成测试用例后,我们需要编译它以创建 DLL。DLL 编译完成后,转到程序文件 – nunit 并单击 nunit。现在将打开 nunit 用户界面。单击文件 – 打开项目并选择您的测试 DLL。选择 DLL 后,您将看到如下所示的屏幕。右侧是您的测试类和包含测试用例的测试函数。勾选测试函数并点击运行。如果测试用例通过,您将看到完全的绿色;否则,您将看到红色并附带测试用例失败的原因。

测试用例失败时的截图。

 

如何使 NUNIT 测试用例实现数据驱动?

在之前的问答中,我们将测试数据硬编码在 NUNIT 测试用例本身中。但在实际情况中,您可能希望从 XML 文件或数据库中获取测试数据输入,换句话说,您希望创建数据驱动的测试用例。为了在 NUNIT 中创建数据驱动的测试,我们可以使用 ‘TestCaseSource’ 属性来修饰单元测试方法,如下图所示。在 ‘TestCaseSource’ 中,我们需要提供一个函数来返回测试用例数据,在本例中是 ‘TestCases’。


 

下面是提供动态数据到单元测试方法的代码片段。提供动态数据的函数应返回 ‘IEnumerable’。NUNIT 提供了一个名为 ‘TestCaseData’ 的类。此类定义了 NUNIT 的测试用例数据。该类提供了指定测试用例的输入和预期输出的方法。最后,要逐个返回测试用例,我们需要在 for 循环中使用 ‘yield’ 关键字。您可以查看下面的代码片段来理解 yield 的工作原理。

 

如何使用 VSTS 进行单元测试?
 

如果您没有 VSTS,请在此处下载 beta 版本:http://www.microsoft.com/downloads/details.aspx?FamilyID=255fc5f1-15af-4fe7-be4d-263a2621144b&displaylang=en

为了使用 VSTS 进行单元测试,请右键单击 Visual Studio 解决方案资源管理器,然后选择“添加新项目”。在测试项目中,右键单击并选择“添加新测试”,将弹出一个对话框,如下图所示。在对话框中,选择“基本单元测试”。

为了创建执行单元测试的函数,您需要使用 “[TestMethod]” 属性来修饰该函数。如果您还记得,在 Nunit 中它是 ‘[Test]’。Assert 函数保持不变。


 

完成单元测试编码后,编译它,然后单击“测试”、“运行”,并选择“当前上下文中的测试”。


 

执行上述测试后,测试将开始运行,从“待处理”到“进行中”,最后显示结果。


 

如果您的测试失败,并且您想查看详细结果,请双击测试以查看详细结果,如下图所示。下面的结果显示测试失败,因为它期望输出为“200”,但获得了“30”。

如何使用 VSTS Test 创建数据驱动的单元测试?

在 VSTS 中创建数据驱动的单元测试非常简单。首先,创建一个包含测试数据的简单表。例如,您可以在下图中看到,我们创建了一个包含 3 个字段的表,即 2 个输入字段和 1 个预期值。要使用该表,请应用 ‘DataSource’ 属性并提供正确的数据库连接字符串,如下图所示。要从表中获取字段数据,我们可以使用带索引的 ‘DataRow’。


 

表中有 3 个测试用例,因此当我们执行上述测试时,我们在 Visual Studio IDE 结果窗口中获得了以下测试结果。

 


如何使用 VSTS 进行自动化测试?
 

为了在 VSTS 中进行自动化测试,我们需要使用 ‘Web test’ 模板。因此,单击“添加新测试”并选择“Web test”。


 

选择 Web test 后,浏览器将打开,并显示录制、暂停和停止按钮,如下图所示。一旦开始发布和请求,URL 记录器就开始记录每个请求和响应,如下图所示。右侧显示了记录器如何记录所有 get 和 post 请求。

 

下面是一个简单的登录屏幕的快照,该屏幕已被记录。有两个请求,第一个请求是登录页面,第二个请求是使用用户名和密码发布登录页面。您可以看到用户名和密码文本框中的值,即 ‘Admin’ 和 ‘Admin’。


 

我们还需要定义测试通过的条件。现在右键单击第二个 post 请求,然后选择“添加验证规则”,如下图所示。

 

选择规则,即如果在浏览器响应中的任何位置找到“Logged in”文本,则表示测试通过。


 

运行测试后,您将看到已执行的值,并且测试会显示通过或失败。
 

 

如何在 VSTS 中使自动化测试实现数据驱动?

创建 Web test 后,右键单击 Web test 并单击“添加数据源”,如下图所示。

添加数据源后,您可以将数据库字段指定为文本框的输入,如下图所示。


 

我们需要执行另一个步骤来确保数据驱动的测试能够正常运行。右键单击 testrunconfig 文件,然后选择“每个数据行一个”,如下图所示。

完成后,您可以运行测试,看看 VSTS 如何逐行拾取测试用例并执行测试。您可以在下图看到第一个测试用例失败,而第二个测试用例已通过。

 

如何使用 VSTS 进行覆盖率测试?

代码覆盖率是一个 3 步过程,如下图所示。第一步是启用代码覆盖率。因此,在解决方案资源管理器中右键单击 ‘.testrunconfig’ 文件,如下图所示。

下一步是选择我们要监控代码覆盖率的程序集/DLL,下图显示了这一点。

运行测试后,右键单击测试结果并选择“代码覆盖率结果”。您将看到详细结果,如下图所示,您可以在其中看到应用程序的哪些部分已被覆盖和测试。

 

使用 VSTS 执行性能测试涉及哪些步骤?

我将在 2 天内更新图片,图片无法很好地显示。敬请期待……

我听说过 VSTS 中的数据库测试,它有什么作用?

我将在 2 天内更新图片,图片无法很好地显示。敬请期待……


什么是顺序测试?

我将在 2 天内更新图片,图片无法很好地显示。敬请期待……

 

我的其他 FAQ

我知道这篇文档不是放置其他文章的合适地方。在写了将近一年之后,我想总结一些我写的文章,我认为它们是我最好的作品。

5 个最佳实践,涉及测量性能和查找项目中的内存问题 https://codeproject.org.cn/KB/aspnet/BestPrctice1.aspx

本文包含 30 个 FAQ,一步一步地涵盖了所有 24 个设计模式。 https://codeproject.org.cn/KB/aspnet/SoftArchInter1.aspx

这篇文章是我可爱的小孩,它讨论了 10 个企业可重用应用程序组件,这些组件可以提高我们项目的生产力。 https://codeproject.org.cn/KB/aspnet/HandlingApplicationBlock.aspx

40 个 FAQ,深入讨论 SharePoint,我写作时很享受,我敢肯定您也会喜欢阅读。 https://codeproject.org.cn/KB/aspnet/SharePoint.aspx

20 个 FAQ,讨论 WCF 和 Silverlight 技术 https://codeproject.org.cn/KB/WCF/WCFFAQPart3.aspx 

如需进一步阅读,请观看以下面试准备视频和分步视频系列。

© . All rights reserved.