前 言 如果您正在阅读本书,那么我们已经激发了您的兴趣,并让您开始思考有关ASP.NET Web应用程序的测试。当您听到ASP.NET Web应用程序测试时,您想到了什么? 对有些人,这可能意味着跨浏览器兼容性或可访问性测试。对另一些人可能意味着可用性和稳定性测试。每一种都是一门有效的测试学科,并且每一种测试类型都可以在本书中找到示例。 我们的目的是,当您阅读本书时,开始思考过去开发或正在构建开发的Web应用程序,以及各种测试学科如何能应用到Web应用程序中。我们希望在您阅读每个章节的过程中,能够将这些测试技术用于日常开发过程中。 无论您是从书店或网上购买这本书,或者是幸运地得到了免费的版本,我们都很高兴您看到了创建安全、稳定以及可访问的Web应用程序的重要性,并且欢迎您进入ASP.NET Web测试的精彩世界(我们向您保证本书的其余部分将不会这么乏味)。 本书读者对象 本书面向那些正在寻找学习如何测试ASP.NET Web应用程序的初级和中级Web开发人员。本书假定读者已经创建了一些Web站点,并有兴趣学习可用于Web开发的多种不同测试学科。 无论您是使用C#或VB.NET的Web项目的开发人员、管理人员还是测试人员,都可以从本书解释的不同测试学科和测试级别中受益匪浅。本书首先介绍单元测试和功能测试。接着讨论如何可以成功地执行用户界面测试、验收测试、负载/压力测试,以及可访问性和安全性测试。它将为读者提供从头到尾成功测试ASP.NET Web应用程序的全部知识。 本书主要内容 ASP.NET Web应用程序测试涵盖了Web应用程序应当执行的不同测试类型,例如: ●单元测试 ●集成测试 ●自动化用户界面测试 ●验收测试 ●手动测试 ●性能测试 ●可访问性测试 ●安全性测试 每一节讨论了实施特定测试类型所需的工具、技术和最佳实践。 本书组织结构 本书的许多读者并没有为Web应用程序创建测试的任何经验,然而其他人可能对本书中介绍的某些测试学科拥有一些实践经验。经过前两章有关技术和设计的讨论,本书主要是为了读者能够“前后翻阅”,翻阅独立于其他章节的每个测试学科。 下面列出了本书中各个章节的主题说明。 第1章: 初步关注点 首先简要介绍测试领域,提供了作为本书后续章节的基础的基本内容,同时帮助读者消除在测试方面上的一些认识误区。 第2章: 设计和可测试性 在直接进入如何测试ASP.NET Web站点之前,需要研究一下设计和体系结构应用程序,以提高可测试性。还介绍了围绕应用程序开始编写自动化测试所需了解的核心概念。 第3章: 单元测试和测试驱动开发 本章将第2章所讨论的一些技术运用到ASP.NET应用程序中,强调了这一过程中所遇到的决策和问题。本章重点是开发人员测试,包括如单元测试、测试驱动开发等技术,打破了系统内的依赖关系。 第4章: 集成测试 本章重点讲述集成测试,以确保将第3章中开发的多个部分作为一组来处理问题,如外部系统,即数据库或邮件服务器。 第5章:自动化用户界面测试 本章分析用户界面并讨论如何能成功地自动化用户界面,以提供系统正按预期运行这一事实的额外信心。 第6章: 验收测试 本章关注客户,探讨如何能够自动编写客户验收测试,以确保该系统满足最终用户的需要。 第7章: 手动测试 从自动化测试退后一步,开始关注于如何以及何时执行手动测试,包括以最有效方式执行手动测试的主要技术。 第8章: 性能测试 您确信之前耗时6个月开发的Web应用程序当部署到实际生产中后将能够良好运行吗?本章重点在于测试Web应用程序的性能。本章讨论了用于帮助确认Web应用程序满足它们所需性能指标的商业工具和免费工具。 第9章: 可访问性测试 许多开发人员在知道他们必须遵守某些Web应用程序的网络访问标准时都有一种恐惧感。本章篇幅较长,首先讨论了如何创建可访问的Web应用程序,然后深入分析如何测试Web应用程序,以确保它们是可访问的。 第10章: 安全性测试 最后一章讨论了Web应用程序的安全性测试。本章的重点是OWASP的十大安全漏洞。这一章讨论了每个安全漏洞,并深入探讨如何测试每个漏洞。 使用本书的条件 本书所讨论的每个测试学科都配备了用于执行该特定测试学科的特有的一套工具。 这些工具资源可以从每个章节讨论这些特殊工具的篇章中找到。 要运行本书中的代码示例,需要了解下列准则: ●服务器端的代码是用C#编写的。 ●应当安装Visual Studio 2008专业版本或更高版本。 ●应当安装一个测试运行器,如Test Driven .NET。 源代码 读者在阅读本书提供的代码时既可以亲自输入所有代码,也可以使用随书提供的代码文件。本书所有代码均可以从网站下载。进入该网站后,请读者根据本书的书名查找本书(读者既可以使用搜索框进行查找,也可以使用书名列表进行查找),然后单击本书详细内容页面上提供的Download Code链接,就可以下载本书提供的所有代码。 注意: 由于许多书籍名称与本书类似,因此读者也可以通过ISBN进行查找,本书的ISBN为:978-0-470-49664-0。 下载代码后,读者可以利用一种压缩工具将代码解压。此外,读者还可以通过访问网站/dynamic/books/download.aspx中提供的Wrox代码下载页面来获取本书提供的代码,也可以下载Wrox出版的其他书籍提供的代码。 勘误表 为了避免本书文字和代码中存在错误,我们已经竭尽全力。然而,就如世界上不存在完美无缺的事物,本书仍然可能存在错误。如果读者在我们编写的书籍中发现了诸如拼写错误或代码缺陷等问题,那么请告诉我们,我们对此表示感谢。利用勘误表反馈错误信息,可以为其他读者节省大量时间,同时,我们也能够受益于读者的帮助,这样有助于我们编写出质量更高的专业著作。 如果读者需要参考本书的勘误表,请在网站中用搜索框或书名列表查找本书书名。然后,在本书的详细内容页面上,单击Book Errata链接。在随后显示的页面中,读者可以看到与本书相关的所有勘误信息,这些信息是由读者提交、并由Wrox的编辑们加上的。通过访问/misc-pages/booklist.shtml,读者还可以看到Wrox出版的所有书籍的勘误表。 如果读者没有在Book Errata页面上找到其发现的错误,那么请读者转到页面/contact/techsupport.shtml,针对您所发现的每一项错误填写表格,并将表格发给我们,我们将对表格内容进行认真审查,如果确实是我们书中的错误,那么我们将在该书的Book Errata页面上标明该错误信息,并在该书的后续版本中改正相关错误。 关于 如果读者希望能够与作者进行讨论,或希望能够参与读者的共同讨论,那么请加入的论坛。这个论坛是一个基于Web的系统,读者可以在论坛发表与Wrox出版的书籍有关的技术信息,并与其他读者和技术用户进行讨论。论坛提供了订阅功能,可以将与读者所选主题相关的新帖子定期发送到读者的电子邮箱。Wrox的作者、编辑、业界专家以及其他读者都会参与论坛中的讨论。 读者可以在参与多个论坛的讨论,这些论坛不仅能够帮助读者更好地理解本书,还有助于读者更好地开发应用程序。如果读者希望加入论坛,那么请读者按照以下步骤执行: (1)进入页面,单击Register链接。 (2) 阅读使用条款,然后单击Agree。 (3)填写必要的信息(必要时也需要填写可选信息),然后单击Submit。 (4)随后读者会收到一封电子邮件,邮件中说明了如何验证账号并完成整个加入过程。 注意: 要阅读论坛信息,读者无须加入P2P。但是如果读者需要发表主题或发表回复,那么读者必须加入论坛。 成功加入论坛后,读者就可以发表新主题了。此外,读者还可以回复其他主题。读者在任何时间都可以阅读论坛信息。如果读者需要论坛将新的信息发送到自己的电子邮箱,那么可以单击论坛列表中论坛名称旁的Subscribe to this Forum图标完成该功能设置。 如果读者需要获得更多与Wrox P2P相关的信息,请阅读P2P FAQs,这样可以获得大量与P2P和Wrox出版的书籍相关的具体信息。阅读FAQs时,请单击P2P 页面上的FAQs链接。