内容提要:
  微软发布的Visual Studio 2005 Team System (VSTS) 是软件开发生命周期管理工具市场的重大突破。本书的内容有助于你更有效地使用Team System。VSTS由三个基于角色的Visual Studio版本和一个服务器组成。服务器存储了软件开发中的所有工作产品、过程规范框架,以及其他集成的功能。VSTS正在革新软件的开发过程。
我有幸参与过许多创建性的工作。当时,我们三个人着手创建一个公司,这个公司后来发展为一个拥有250名员工,实际年销售额达到一千四百万美元的公司。在这个公司,我还参与创建了一个新部门。在各种条件下,我们都认真思考过这类问题:在一个开发团队中,到底都需要什么样的开发工具,如何将这些开发工具集成起来,团队应该如何有效地利用这些工具,在尽可能短的时间内开发出高质量的产品,从而满足市场的需要。 在典型情况下,这意味着我们必须构建我们自己的工具“仓库”,在这个“仓库”中,应该包括以下软件:诸如CVS(Concurrent Versions System)之类的开源版本控制系统、Serena Software公司开发的用于缺陷跟踪和问题跟踪的软件工具Team Track、Mercury Interactive公司开发的用于Web测试和负载测试的自动化工具、诸如JUnit和NUnit之类的开源单元测试工具、Bullseye Testing Technology公司开发的代码覆盖分析工具C Cover、Rational Software公司开发的测试库管理工具、BEA Systems公司开发的Plumtree或微软公司开发的SharePoint之类的文档共享管理工具,等等。 一旦确定了所需要的工具仓库,我们就可以对软件项目生命周期进行讨论,并就开发过程取得一致意见。我们是采用瀑布方法、敏捷方法、螺旋开发方法,还是Rational统一过程(RUP)、微软解决框架(MSF),还是其他某种开发方法?如果我们希望开发团队能够高效地工作,那么我们就必须回答这些问题。 选定了工具并确定了开发过程之后,开发团队就要着手利用这些工具完成版本控制、代码覆盖、动态分析和结果测试等工作,并使用诸如微软公司开发的Excel之类的应用程序来记录项目的进展情况。这样,我们可以知道是否能够按时发布软件。 对开发团队而言,掌握项目总体进度是一项非常重要的工作。如果我们再考虑到投资人的期望——无论他们是风险投资人,还是对新技术提供资金资助的公司,抑或是朋友或家庭,他们对我们进行资助并希望能够帮助我们的事业起步——那么掌握项目总体进度就更为重要。因为投资人慷慨投资时承担了巨大的风险,所以他们有权利知道项目的进展情况。 我们再看看Visual Studio 2005 Team System(VSTS)。这是一个工具套件,主要用于为软件架构设计人员、开发人员、测试工程师、程序开发管理人员和为项目提供资金的人士提供相关支持。VSTS不仅提供了工具库,同时还为这些工具能够协同工作提供了支持。我们知道:无论这些工具的功能是每天晚上执行一次完整构建,还是对当前bug的现况进行记录,将这些工具集成起来使之能够协同工作,是一项非常关键的功能。微软公司开发的这个软件套件确实是一项创举,目前已经得到了广泛的好评。 当我回想起VSTS的开发过程时,我必须指出:我所经历的所有一切都令我感到畏惧,但是,这个套件毕竟能够使我们将需求逐步分解为规模可控制的软件组件。本书仅关注VSTS提供的两项功能,专门讨论为开发人员和测试人员提供的工具。也就是说,本书关注Visual Studio Team Edition for Software Developers(VSTESD)和Visual Studio Team Edition for Software Testers(VSTEST),这两项内容也是Visual Studio Team System的组成部分。 本书的目的在于: ● 向读者介绍Visual Studio Team System的总体概况。 ● 引导读者初步了解开发和测试工具VSTEST和VSTESD的用户界面。 ● 深入研究测试工程师和软件开发人员可以使用的每一类测试类型。 ● 帮助读者理解如何高效地使用代码分析工具和动态分析工具。 ● 对工具提供的各项功能进行总结,掌握在团队开发过程中如何有机地使用工具的各项功能。 本书的合作作者、本书编辑,以及本人之所以决定编写本书,是因为我们当中的许多人或者参与了微软公司开发团队并开发了本书所讨论的测试工具,或者能够在软件开发实践中熟练高效地使用这些工具,我们希望能够与读者分享我们的经验,从而使读者能够掌握工具的使用环境,并了解如何使用这些工具,使这些工具能够发挥最大效用,并且使读者在参与某个软件开发团队并作为软件开发人员或者软件测试工程师的情况下,能够尽快熟练高效地使用这些工具。 本书读者对象 VSTS使得软件测试工程师和软件开发人员的职责不再泾渭分明,因此,本书的主要读者是软件测试工程师和软件开发人员。这两类读者在使用测试和分析工具时,会感到本书非常有用。软件开发人员会对单元测试、代码分析和事件探查工具(profiling tool)充满兴趣,因为利用这些工具有利于他们开发高质量的代码。测试工程师需要使用软件开发人员编写的单元测试代码,可能也需要自己开发部分单元测试代码,还需要自己开发Web测试、负载测试和手工测试代码,从而能够为软件产品提供一个完整的测试方案。测试人员和开发人员都需要利用测试执行结果来进行代码分析,他们还希望能够利用图形用户界面来创建、组织和维护相关测试。同时,他们还希望能够利用自行创建的测试库,针对每个最新构建的版本进行测试,并根据测试结果确定是否可以对软件进行最后的安装测试。无论是开发人员还是测试人员,都希望了解如何将其他工具作为插件安装到VSTS中,并作为VSTS的一部分与VSTS集成使用。 本书假定读者基本掌握了Visual Studio,并可以利用Visual Studio完成相关工作。这个假定对大多数开发人员都是成立的,因为很多开发人员都学习使用Visual Studio作为开发工具。但是,如果某位软件测试人员以前主要是使用测试工具进行测试,并且从来没有编写过代码,那么本书内容对他们就不是很容易理解,这是因为本书所讨论的工具是Visual Studio的有机组成部分,而且这些工具是从底层实现的测试工具,所以对这些测试人员而言,掌握本书的内容会存在一些难度。此外,本书不打算花费很多笔墨来讨论Visual Studio本身,我们主要关注VSTS中VSTEST和VSTESD所提供的测试和分析工具。 本书不讨论与任何具体测试方法学有关的细节,也不推荐使用任何具体的软件开发生命周期。VSTEST 和VSTESD本身并不依赖于任何特定的测试理论,也不依赖于任何具体的软件开发生命周期,VSTEST 和VSTESD可以与任何开发方法集成,并且可以应用于任何项目。在附录F中,我们给出了与上述内容相关的链接,读者可以通过阅读链接内容学习相关知识。 本书主要内容 本书关注Visual Studio 2005 Team System中的Visual Studio Team Edition for Software Developers(VSTESD)和Visual Studio Team Edition for Software Testers(VSTEST)所提供的工具。 本书具体内容包括: ● 用于创建、授权、执行和管理测试的用户界面,具体包括 ● 单元测试(包括数据库单元测试) ● Web测试 ● 负载测试 ● 手工测试 ● 顺序测试 ● 一般测试 ● 第三方测试 ● 分析工具: ● 代码分析(也称为静态分析) ● 动态分析(事件探查和代码覆盖) ● 与Visual Studio Team Foundation Server的集成 本书所讨论的具体内容是非常清楚的,因为这些测试类型和分析工具是第一次被集成到Visual Studio中,所以我们不需要考虑这些工具是否存在先前的版本,只需要学习如何将这些工具应用于项目中就足够了。 本书组织结构 在一本书里同时满足两类完全不同读者的需要确实不是一件容易的事。本书主要面向两类读者,这两类读者分别是测试人员和开发人员,虽然这两类读者都属于工程师,并且都需要使用测试工具来保证软件项目的质量,然而,如果开发团队采用了不同的开发方法,遵循了不同的软件开发方法学,那么,在软件开发生命周期中,测试工具的应用阶段必然有所不同。因此本书并不局限于某种特定的开发方法学,也没有局限于某个具体的软件开发生命周期,而是集中关注如何使用VSTEST和VSTESD,以及如何将这些工具集成到读者使用的开发过程中。 本书内容如下: ● 第1章,VSTEST和VSTESD简介——本章主要从整体上介绍了VSTEST和VSTESD的作用和功能。 ● 第2章,VSTEST和VSTESD快速浏览——本章介绍了开发创建、授权、执行和管理测试时所使用的用户界面。 ● 第3章,使用VSTEST和VSTESD进行单元测试——本章介绍了使用VSTEST和VSTESD进行单元测试的一般方法。 ● 第4章,对数据库进行测试——本章讨论了如何利用单元测试对数据库进行测试。 ● 第5章,Web测试——利用Web测试,可以将我们与一个Web网站的交互记录下来。本章还介绍了如何将这种交互转化为源代码。 ● 第6章,如何使用手工测试、顺序测试和一般测试类型——本章讨论了如何在一个“容器”中容纳一个或多个测试,这样不仅提高了测试灵活性,而且还有效地提高了测试价值。 ● 第7章,负载测试——本章通过模拟多位用户同时访问应用程序,指导我们如何对系统进行负载测试。 ● 第8章,使用代码分析和动态分析——本章讨论了如何在编译过程中和程序执行过程中对代码进行分析。 ● 第9章,在软件开发生命周期中应用VSTEST和VSTESD——本章讨论了如何在团队开发中使用VSTEST工具和VSTESD工具,特别讨论了在使用Visual Studio Team Foundation Server(VSTFS)的条件下如何使用VSTEST工具和VSTESD工具。 ● 附录——主要介绍了如何使用工具的某些具体功能,并帮助我们快速浏览每种测试类型的工作流。 ● 附录A,安装Team Explorer——介绍如何将Visual Studio与开发团队的VSTFS服务器连接起来。 ● 附录B,创建并运行一个Web测试:循序渐进指导——简要介绍了如何使用Web测试。 ● 附录C,创建并运行一个单元测试:循序渐进指导——简要介绍了如何使用单元测试。 ● 附录D,创建并运行一个负载测试:循序渐进指导——简要介绍了如何使用负载测试。 ● 附录E,创建并运行一个手工测试:循序渐进指导——简要介绍了如何使用手工测试。 ● 附录F,其他信息资源——提供了与本书主题相关的Web网站、论坛、会议以及其他信息。 如果读者对VSTS还很陌生,那么请读者从第1章和第2章开始阅读,这样,读者可以了解掌握VSTEST工具和VSTESD工具提供的功能。在此基础上,读者可以开始阅读与其所从事工作相关的章节。如果读者具备这些工具的使用经验并希望能够深入了解某种具体的测试类型,或者希望能够深入了解某种工具的使用方法,那么可以直接阅读相关章节。如果读者需要了解掌握工具是如何与Visual Studio Team Foundation Server (VSTFS)进行集成的,那么就可以直接阅读本书第9章。如果读者阅读的目的是学习掌握如何将某种具体的测试类型添加到当前开发的项目中,并编写相关测试,最终能够顺利执行测试,那么请阅读附录B到附录E的内容。 源代码 读者在阅读本书提供的代码时,既可以手工输入所有代码,也可以使用随书提供的代码文件。本书所有源代码均可以从本书合作站点或www.tupwk. com.cn/downpage上下载。进入该网站后,请读者查找本书,本书书名为“Professional Software Testing with Visual Studio 2005 Team System”(读者既可以使用搜索框进行查找,也可以使用书名标题列表进行查找),然后单击本书详细内容页面上提供的Download Code链接,就可以下载本书提供的所有代码。 因为许多书籍名称与本书类似,因此读者也可以通过ISBN进行查找,本书的ISBN为:978-0-470-14978-2。 下载代码后,读者可以利用某种压缩工具将代码解压。此外,读者还可以通过访问网站/dynamic/books/download.aspx中的Wrox代码下载页面来获取本书提供的代码,也可以下载Wrox出版的其他书籍提供的代码。 勘误表 为了避免本书文字和代码中存在错误,我们已经竭尽全力。然而世界上并不存在完美无缺的事物,所以本书可能仍然存在错误。如果读者在我们编写的某本书籍中发现了诸如拼写错误或代码缺陷等问题,那么请告诉我们,我们对此表示感谢。利用勘误表反馈错误信息,可以为其他读者节省大量时间,同时,有助于我们编写出质量更高的专业著作。 请给wkservice@tup.tsinghua.edu.cn发电子邮件,我们就会查阅您的信息,如果是正确的,我们将在本书的后续版本中采用。 如果读者需要参考本书的勘误表,请在网站中用搜索框或书名列表查找本书书名。然后,在本书的详细内容页面上,单击Book Errata链接。在随后显示的页面中,读者可以看到与本书相关的所有勘误信息,这些信息是由读者提交、并由Wrox的编辑们加上的。通过访问/misc-pages/booklist.shtml,读者还可以看到Wrox出版的所有书籍的勘误表。 关于 如果读者希望能够与作者进行讨论,或希望能够参与到与其他读者的共同讨论中,那么请加入的论坛。该论坛是一个基于Web的系统,读者可以在论坛发表与Wrox出版的书籍有关的技术信息,并与其他读者和技术用户进行讨论。论坛提供了订阅功能,可以将与读者所选定主题相关的新帖子定期发送到读者的电子邮箱。Wrox的作者、编辑、工业界专家,以及其他读者都会参与论坛中的讨论。 读者可以在参与多个论坛的讨论,这些论坛不仅能够帮助读者更好地理解本书,还有助于读者更好地开发应用程序。如果希望加入论坛,那么请按照以下步骤执行: (1) 进入页面,单击Register链接。 (2) 阅读使用条款,单击Agree按钮。 (3) 填写必要的信息,必要时也需要填写可选信息,单击Submit按钮。 (4) 随后读者会收到一封电子邮件,邮件中说明了如何验证账户并完成整个加入过程。 为了阅读论坛信息,读者无须加入P2P。但是如果读者需要发表主题或发表回复,那么读者必须加入论坛。 成功加入论坛后,读者就可以发表新主题了。此时,读者还可以回复其他主题。读者在任何时间都可以阅读论坛信息。如果读者需要论坛将新的信息发送到自己的电子邮箱,那么可以单击论坛列表中论坛名称旁的Subscribe to this Forum图标完成这项功能。 如果读者需要获得更多与使用Wrox P2P相关的信息,请阅读P2P FAQ,这样可以获得许多论坛软件如何使用的回答,以及大量与P2P和Wrox出版的书籍相关的具体信息。阅读FAQ时,请单击P2P 页面上的FAQs链接。