Visual Studio 2010中关于测试部分的改进较之前的版本有不少改进,本文将从Visual Studio 2010 Ultimate为大家讲解软件生存周期的内容。
VS2010测试概述
一个软件产品或系统同任何事物一样,也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期,也称为SDLC(software development life cycle)软件开发生命周期。它是软件的产生直到报废的生命周期。周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则。我们也可以将SDLC解释为一组步骤(Step)、阶段(Phase)或者里程标(Milestone),SDLC的一般步骤包括:确定问题、可行性分析与开发计划、收集需求、分析与设计、编码开发、测试、安装、维护。
在微软Visual Studio 2010 Ultimate中,应用程序生命周期(ALM)是其重要特性和SDLC实现方式之一。我们将一个软件的生命周期(SDLC)划分为几个阶段,而利用各种工具辅助每个关键环节进行管理,就称为应用程序生命周期管理(ALM,Application Lifecycle Management)。微软Visual Studio 2010将会努力打造一个功能平等、共同分担,易用便捷的平台,以用于组织内的应用程序生命周期管理过程。
在VS2010的工具中,真正主角已经不在是作为编码工具的VS IDE,而是ALM的核心TFS,新增的MTM(Microsoft Test Manager)工具是一个为辅助的客户端。
提示:微软测试管理器(Microsoft Test Manager)是一款基于Windows Presentation Foundation(WPF)的富客户端软件(内部开发代号“Camano”),安装Visual Studio 2010 Ultmate用户客户端,可以对正在开发的项目进行集成测试和管理控制功能。
在传统的微软.NET软件构建工作流程(运行测试—>编译代码—>部署应用)中,每个系统都有自己的一套方法,例如,都有自己的仓库、资源、自己的命令和工具。这将使喜欢尝试集成和自定义组件的开发者的感觉是:软件构建过程分散,当项目大的时候不适合统一集成和代码调试与软件测试等问题。这种传统的构建工作流程如图1所示。
图 1 传统的软件流程信息孤岛
TFS的使命就是要解决开发过程中的信息“孤岛”问题,通过统一的存储机制是它们的能够协作起来。TFS 2010已经是一个多源控制,实施和部署更加简单和“平民化”,并在整体协同技术上拥有了很大的进步。微软测试与实验室管理器构建软件工作流程如图3所示。
图 2 传统的软件流程信息孤岛
TFS的使命就是要解决开发过程中的信息“孤岛”问题,通过统一的存储机制是它们的能够协作起来。TFS 2010已经是一个多源控制,实施和部署更加简单和“平民化”,并在整体协同技术上拥有了很大的进步。微软测试与实验室管理器构建软件工作流程如图3所示。
图 3 实验室管理构建软件工作流程
#p#
微软已经为不同的角色提供了丰富的工具来访问TFS数据,同时还提供了TFS Object Model (API) ,让第三方厂商就能够开发自己的基于TFS的软件,这就扩大了从事.Net工作人员的工作流程的应用范围。如图4所示。
图 4 VS 2010软件工作流程
现在Visual Studio已不再是仅面向开发人员一种角色的软件编码工具,它已变成了一个覆盖整个软件开发生命周期的ALM工具。其实,作为软件工具厂商这也是必然的发展方向,就像IBM也有Rational、ClearCase等工具。作为每一个软件行业的从业人员,无论是开发人员、项目经理、还是测试人员,也要不断适应这个趋势,笔者认为它只会使我们的工作更简单和更轻松。
VS2010测试框架
对于测试人员而言,VS2010强化了测试功能,并简化了在整个应用程序生命周期中整合测试的工具。新功能包括快速进行有关测试的设计与开发、测试用例管理,与Team Foundation Server集成的测试计划,以及确保所有更新的程序代码都被测试提高覆盖率。这些新功能贯穿了整个测试周期:测试计划、测试执行和测试执行进度跟踪。新增的MTM工具用于创建测试计划、管理测试用例、运行测试用例、测试结果管理,以及分布式虚拟环境管理等。VSTS 2010测试框架,如图5所示。
图 5 VSTS 2010测试框架
通过以上测试框架的展示,我们可以看出VSTS2010又加强了对测试计划,测试用例,相关报告等的支持,微软已经把VSTS2010改造成为一个贯穿整个ALM的主要工具。除了MTM外,VSTS2010同样支持Web Tests、Ordered Test、Generic Test、Unit Test自动化测试。新增的CodedUI Test测试,就是面向功能测试工程师,并为他们提供支持自动化测试的全新的功能,并且也与MTM工具整合。
测试和实验室管理框架
VSTS2010中对架构设计,项目模板,测试管理,Test Lab 管理,项目门户等都进行了全面的改进;对于MS Project,SharePoint,Hyper-V 虚拟化平台以及云计算平台进行了全面的集成。测试和实验室的管理的功能相对比较独立,所以作为一个单独工具使用更为轻便。
在服务器端,实验室管理服务是内部的Team Foundation Server(TFS)上运行的众多服务之一,这种解决方案是软件测试和开发人员比较独特的方式。现在我们可以映射实验室资源,例如,主机、虚拟机和存储团队的项目集合与团队项目,因此可以调整实验室的硬件与业务需求来适应工作。
在客户端,管理虚拟资源仍然是用MTM工具。用户可以使用它定义测试计划,测试套件,测试案例和运行在物理或虚拟环境中。实验室管理体系结构,如图6所示。
是微软新一代服务器虚拟化解决方案,构架和微软以往的虚拟化产品如Virtual Server、Virtual PC完全不同,可以说是微软虚拟化技术上的一个突破。因此,重要的是了解围绕虚拟化的一些基本概念以及如何把这些实验室管理中用来了解这种技术模式的转变。
由上图可以看出,微软实验室管理框架结合了虚拟化技术。Hyper-V
Hyper-V是一个只有几百KB的小程序,它介于物理硬件和虚拟机之间,代码非常少,不含任何第三方的驱动,非常的精简,这种构架使得虚拟机和硬件之间只通过很薄的一层进行连接,不像Virtual Server那样虚拟机和硬件之间需要经过多层的转换,因而虚拟机执行效率非常高,可以更加充分的利用硬件资源,使虚拟机系统性能非常的接近真实的操作系统性能。它可以模拟一个完整的硬件系统,从处理器到网络卡,在一个独立的,孤立的软件环境,使在一台物理计算机上的不兼容的操作系统同步运行。每个操作系统运行在它自己的孤立的软件分区。微软Hyper-V构架图,如图7所示。
图 7 微软Hyper-V构架图
微软测试和实验室管理器(MTM)中的实验室中心(Lab Center)是在微软虚拟化技术上,可以创建及管理虚拟或物理环境;可对环境拍取快照,或者退回到虚拟环境的现有快照;通过环境查看器,与环境中的虚拟机进行联系;为环境定义测试设置;还可以在测试中心中定义测试方案、测试套件和测试用例,并且在实验室环境上执行。
#p#
MTM工具有以下管理功能:
虚拟机快照(Virtual Machine Snapshot):一个虚拟机快照是一个基于文件的快照状态,例如,磁盘上的数据以及配置虚拟机在一个特定的时间点。快照是虚拟机在功能上类似于笔记本电脑休眠状态的时候所具有的更大的灵活性,一个VM支持多个快照。你可以回滚到以前采取的任何快照,并可以继续在那里工作。Hyper-V虚拟机快照树,如图8所示。
图 8 微软Hyper-V虚拟机快照树
主机(Host):是一个物理计算机承载一个或多个虚拟机。
主机组(Host Group):是虚拟机的主机,而管理员可以在SCVMM的创造便于监测和管理自定义组。可用于分配和确定各种团队项目预留的资源。例如,管理员可以创建一个主机组名为“全球保险主机的团队”,关于“全球保险工程”项目,并绑定到在Team Foundation管理控制台相应的团队项目。
库共享(Library Share):对虚拟机的优点之一是,你不需要占用主机(如果你暂时不使用虚拟机VM)。你可以通过几分钟的拷贝把它存储在磁盘上,带到其他计算机环境进行工作。 环境(Environment):一个典型的多层应用程序包括多个角色,如,数据库服务器,Web服务器,客户端等,每个角色都可以在一个或多个计算机上运行,也可以有一台计算机上运行多个角色。在以前管理环境的多层次应用上,是一个非常麻烦且容易出错的工作,而且在复制同一个相同的环境,更是一个很困难的事情。
在TFS实验室的管理服务中,使用的实验室管理系统中心虚拟机管理器(SCVMM)和在多个虚拟化平台的虚拟机配置管理,可以得到的SCVMM的实验室管理与复制。
提示:SCVMM(系统中心虚拟机管理器,System Center Virtual Machine Manager)是虚拟化技术的管理工具,也是微软系统中心管理解决方案的一部分。SCVMM 2008 R2可以管理VMware ESX、微软Virtual Server 2005 R2和Windows Server 2008 R2 Hyper-V。
SCVMM具有六项新增功能:快速存储迁移、实时迁移队列、快速配置、主机兼容性检测、支持第三方CFS文件格式、支持Veritas卷管理器。它可以将物理服务器整合到一个虚拟架构提供端到端支持;可快速可靠的物理到虚拟(P2V)以及虚拟到虚拟(V2V)机器转换;可以虚拟工作负载在物理宿主服务器上的***化智能安置;实现虚拟机的快速部署和迁移;能够集中管理虚拟数据中心中所有组件块的完整库文件。
VS 2010重点强调了测试与开发人员的协作。测试影响视图(Test Impact View)和代码变更视图(Code Changes View)可以避免运行全部测试来验证某一个小的代码变更所造成的浪费,使得测试更加高效。除此之外,测试人员可以使用MTM工具可进行Bug生命周期的跟踪和控制(Plan—>Test—>Track—>Organize)。通过Testing Center进行新BUG发布。
MTM引入了一些新的概念,从字面一般上都很轻易理解,包含下面四个概念:Test Plan、Test Suites、Test Case和Configurations,使用VS 2010中提供的UML类图描述了它们之间的关系。如图9所示。
图 9 MTM测试对象关系图
由上图看出,Test Plan是MTM中管理的最顶层的对象。在启动了MTM时需要连接到TFS工程,这个工程必须是团队使用的工程,它保存了开发团队创建的用户需求工作项、代源代码等,Test Plan对象必须在这个工程上创建。Test Suites实际上用来组织Test Case,类似于文件系统中文件夹的作用。Test Case在这里指的是手工测试用例,它描述了测试的详细执行步骤,以及每个步骤执行完的期望结果,更准确地讲这里的Test Case是指手动测试用例 (Manual Test Case)。Configuration则是定义了Test Plan的各种执行环境配置。在这其中, Requirement映射到TFS的User Storey类型的工作项,而Test Case和Shared Step对应于Test Case和Shared Step工作项。MTM为这些对象的管理和使用提供了操作界面,如图10所示。
图 10 MTM对象的管理界面
注意:在这里需要指出的是,Automated Test Case只能在VS测试工程中定义和代码实现,并可以在VS中运行,其代码保存在TFS工程的代码控制器中。Automated Test Case在与MTM中定义的Test Case关联后,也可以在MTM中执行。
原文标题:Visual Studio 2010 Ultimate测试体系结构
链接:http://www.cnblogs.com/xiaoyin_net/archive/2010/03/22/1691322.html
【编辑推荐】