微软Team Foundation数据库版、开发版 (2)

来源:互联网 发布:vr视频编辑软件 编辑:程序博客网 时间:2024/06/05 18:34

----来源于MSDN

 

       (七)与数据库开发测试相关的部分

u      测试数据

       用于测试目的时,被测试的数据库中必须有一些模拟的业务数据。这些摸拟的测试数据由三种来源:

ü        使用Visual Studio Team System Database Edition 生成有意义的数据

ü        使用Visual Studio Team System Database Edition 生成随机的数据

ü        从现有数据源生成数据

       要用以上三种方式生成测试数据,需要了解以下几个方面:

²       生成数据

1.        创建一个数据生成计划。

2.        选择要向其中填充数据的表。

3.        选择要向其中填充数据的列。

4.        运行数据生成计划以生成数据。

²       数据生成器

       Database Edition 包括多个内置的标准数据生成器,这些生成器可用来生成不同类型的数据。

²       自定义数据生成器

       如果标准数据生成器无法满足的业务规则,则可以创建自定义数据生成器或扩展标准数据生成器。

²       数据生成计划和架构更改

       数据库项目中的“数据生成计划”基于数据库的架构。当基于当前的数据库架构做了一个测试数据生成计划后,又改动了数据库的架构,这时的数据生成计划就与数据库架构不适应。这时系统会提示数据库管理员更新该计划。

²       团队环境中的数据生成计划

       由于团队环境中,数据生成计划一般都在版本控制服务的管理之下,但数据生成计划文件由于每次修改对文件的内容改变很大,因此无法通过版本控制自动同步更改。

u      单元测试

       数据库的单元测试是集成在Visual Studio Team System Test Edition中的。可以在Test Edition中创建数据库单元测试,该种类型的单元测试可以对数据库中的对象进行测试。

       数据库单元测试是对软件开发人员创建的软件单元测试的补充。两种单元测试对于管理应用程序整体的更改都是必需的。

²       数据库单元测试的总体思路:

       使用数据库单元测试为数据库建立一个基线状态,然后依此验证数据库对象后续进行的任何更改。

       第一步是编写几组 T-SQL 测试,以试验某个数据库对象工作正常。

       然后,当更改基础架构时,可以使用这些测试来确认这些更改没有破坏现有功能。

       通过编写单元测试来评估对数据库设计的更改是成功还是失败,可确保所做的更改不会引入新的错误。

²       编写数据库单元测试的基本步骤:

       要编写单元测试,首先需要创建一个与成品数据库分开的独立的数据库开发环境:

1.        创建一个数据库项目

2.        将成品数据库的架构导入该项目

3.        部署数据库项目以创建一个与成品数据库使用相同架构的数据库

4.        用测试数据填充数据库

5.        在建立了独立的数据库开发环境并填充数据之后,就可以开始编写单元测试以在该环境中评估数据库对象。

6.        在测试完数据库对象后,这些单元测试可以用于检测由于数据库更改而导致的功能退化。通过在独立的开发环境中测试这些更改,可以确保“成品数据库”不会受到影响。

7.        在完全测试更改之后,可以将单元测试重新部署到包含其他团队成员所做更改的更大的测试环境中,从而通过这些测试可以快速识别并更正由于其他数据库更改而导致的功能退化。

²       修改数据库

              Database Edition中,可以对数据库对象进行重命名,当改变了数据库对象的名称以后,引用已重命名的其他对象会自动根据这一新名称进行更新。所有的更动都记录在日志文件中。

一、      开发版本(Development Edition

       Development Edition 提供了高级开发工具,团队可以使用这些工具生成可靠的、任务关键的服务和应用程序。

       Development Edition.NET平台的主要开发工具。该工具提供了丰富的高级功能帮助软件开发人员开发应用软件,并提高他们的工作效率。它的主要功能有:

²       代码分析

       代码分析工具对代码缺陷执行大量检查,这些代码缺陷在错误窗口中显示为警告。

²       代码度量

       代码度量是一组软件度量值,开发人员根据这些值能够更好地了解他们正在开发的代码。利用代码度量,开发人员可以了解哪些类型和/或方法应该返工或进行更彻底的测试。此外,开发团队可以识别潜在的风险,了解项目的当前状态,并且跟踪软件开发的进度。

²       分析工具

       Development Edition 中的分析工具使开发人员可以测量和评估代码中的性能相关问题。

²       团队资源管理器

              团队资源管理器是 Team Foundation 的客户端,可提供对 Visual Studio Team System Team Foundation Server 中包含的功能

       (一)利用Development Edition编写高质量的代码

       微软认为从软件的一开始就要确保软件的质量,越是到了软件过程的后期,想要提高软件的质量越是困难。过于复杂和隐蔽的问题往往得不到正确或及时的修复,这使得软件的质量下降。

       Development Edition从以下几个方面着手提高软件的质量:

²       设计和代码的检查准则

1.        花一些时间进行检查。

       检查的目的是仔细了解和分析设计及代码。最多要花上编写代码或最初计划设计所花费时间的一半时间来进行检查。

2.        让审阅者来推动检查工作。

       如果允许开发人员负责检查他们自己的工作,则其他审阅者可能会错过问题。

3.        在召开检查会议之前,先阅读代码或设计文档。

    如果审阅者事先不阅读代码或设计以做好检查会议的准备,则会议会浪费每个与会人员的时间。

4.        使用团队项目门户为小组检查工作提供帮助。

       在任何人都可以轻松找到并检查的项目门户上发布的设计文档。

5.        使用检查表。

       进行检查工作时,很容易过于专注检查工作的某些方面。通过检查表,可以提醒您在检查工作中必须顾及的许多不同方面的任务。

6.        跟踪在代码检查期间发现的所有问题。

       将问题记录为工作项、代码中的注释或设计文档中的问题。否则,可能会错过问题。

7.        应避免的操作:

       在不通知审阅者的情况下更改代码或设计。

8.        微软建议的操作

       检查工作应包括各个部门的代表。

9.        检查所有代码和设计。

       为了保证产品质量,应针对所有工作进行代码和设计检查。检查工作应包括编译器检查、单元测试以及记录设计。

²       安全代码编写准则

1.        使用代码分析工具

2.        进行安全检查

3.        使用检查表进行代码安全检查

4.        验证所有用户输入

5.        严格验证公布的应用程序编程接口 (API) 的所有参数

6.        不要编写自己的加密软件,应使用现成可用的 Microsoft 加密 API

7.        避免出现文件位置或 URL 很重要的情况。

8.        不要硬编码的用户 ID 和密码对。

9.        以尽量低的用户权限运行应用程序

²       高质量代码签入准则

1.        在代码签入期间不接受低质量代码

2.        使用检查表

3.        进行代码检查

4.        编写单元测试

5.        使用代码分析工具

6.        不要在源代码中使用不恰当的语言

7.        创建工作项

8.        避免没有规范的功能

9.        使用一致的编码风格

10.    在编写代码之前编写单元测试

11.    使您的代码可以移植到其他平台

12.    将现有代码重构为更小的函数

13.    检查现有代码

14.    在调试器中逐句通过所有代码路径

15.    不要尝试根据要求文档来解释规范,因为每个人对要求文档的解释都有可能不同。

²       调试准则

1.        知道使用调试工具

2.        了解如何调试小型转储

3.        不要假设测试会找到所有 bug

4.        了解如何调试多线程应用程序。

5.        了解如何执行远程调试。

6.        了解如何在处于活动状态的服务器上进行调试。

7.        对所有 bug 修复做出注释

8.        检查所有 bug 修复

9.        使用测试发布文档来报告所有 bug 修复

10.    不在不通知他人的情况下修复他们的 bug

²       代码分析工具使用准则

1.        在开发期间分析代码

2.        启用所有警告和警告子集。

3.        跟踪警告。

4.        修复警告。

5.        指定签入要求。

²       检测和更正 C/C++ 代码缺陷

1.        C/C++ 代码进行缺陷分析

2.        使用批注以减少 C/C++ 代码缺陷

3.        C/C++ 代码分析警告

4.        C/C++ 代码缺陷创建工作项

5.        查看 C/C++ 的代码分析警告

6.        启用C/C++ 的代码分析警告

7.        C/C++ 调用代码分析

²       检测和更正托管代码缺陷

1.        对托管代码启用代码分析

2.        启用特定的托管代码分析警告

3.        查看托管代码缺陷

4.        为托管代码缺陷创建工作项

5.        使用 SuppressMessage 属性取消警告

6.        分析错误代码

²       代码分析签入策略

Development Edition可以创建一个“代码分析签入策略”。“代码分析签入策略”可用于控制和改进签入到代码库中的代码的质量。当生成是最新的,并且没有代码分析错误时,则通过策略。

二、      测试版(Test Edition

       Test Edition 中提供了一套与 Visual Studio 紧密集成的测试工具。这些工具不仅能在自身的测试框架中工作,还可在软件生命周期工具的更大框架中发挥作用。

       利用 Test Edition,可以创建、管理、编辑和运行测试,还可以获取和存储测试结果。

       Visual Studio 中集成了多种测试类型(包括单元测试、Web 测试、负载测试和手动测试)。此外,还包含了代码覆盖率的度量。

       并非只有测试人员可以使用测试工具,Team Foundation 中有两种角色可以使用测试工具:测试人员和程序员。

       测试项目主要有以下四方面的任务:

1. 创建和编辑测试

2. 管理测试

3. 运行测试

4. 处理测试结果。

       Team Foundation Server中对测试的分类

1. 单元测试

           单元测试是一种编程测试,用于通过直接调用某个类的方法(传递相应参数)来执行其他源代码。

           单元测试方法位于测试类中,测试类则存储在源代码文件中。

2. Web 测试

           “Web 测试也称为声明性 Web 测试,它由一系列 HTTP 请求组成。Web 测试通过发出 HTTP 请求在协议层工作。Web 测试不运行 JavaScript。但是,可以在运行时通过使用 Web 测试插件、Web 测试请求插件、提取规则或编码的 Web 测试来模拟 JavaScript 操作。

           Web 测试用于测试 Web 应用程序的功能以及在负载下测试 Web 应用程序。Web 测试可用于性能测试和压力测试。

3. 负载测试

           负载测试的主要目的是模拟许多用户同时访问一台服务器的情况。向负载测试添加 Web 测试时,Test Edition会模拟多个用户同时连接到一台服务器并发出多个 HTTP 请求的过程。

           负载测试可用于几种不同的测试类型:

a)        冒烟测试

确定在短时间内负载较小时应用程序如何执行。

b)        压力测试

确定在较长时间内负载较大时应用程序是否能成功运行。

c)        性能测试

确定应用程序的响应能力。

d)        容量计划测试

确定在各种容量下应用程序如何执行。

4. 手动测试

    “手动测试”是人工执行的测试。手动测试是唯一非自动化的测试类型,通常手动测试是手动列出测试的步骤,然后按照该步骤手动进行测试。当其他类型的测试很难适用于测试要求时,可以采用手动测试。

5. 一般测试

一般测试就是可以在Test Edition中运行没有用VS系列工具生成的测试。并且Test Edition也可以像其他类型的测试一样发布一般测试的测试结果。但Test Edition只可以包装三种类型的一般测试:可以从命令行中运行的测试、返回值为“通过”或“失败”的测试、返回详细的测试结果的测试。

6. 顺序测试

顺序测试包含要以指定顺序运行的其他测试。其结果显示在“测试结果”窗口中的单个行中,但可以获取该结果作为该顺序测试的一部分运行的每个测试的单独结果。

 

原创粉丝点击