NET软件测试自动化之道
分類: 图书,计算机与互联网,程序语言与软件开发,语言与开发工具,.net,综合,
基本信息·出版社:电子工业出版社
·页码:380 页
·出版日期:2007年
·ISBN:9787121040610
·条形码:9787121040610
·包装版本:2007年7月第1版
·装帧:平装
·开本:16开
产品信息有问题吗?请帮我们更新产品信息。
内容简介《NET软件测试自动化之道》主要讲解在.NET环境下编写轻量级软件测试自动化程序的实用技术。全书内容由Windows UI测试、Web应用程序测试和存储过程及XML测试三部分组成,全面介绍了如何利用.NET平台提供的一系列技术(而不是依赖于第三方的商业自动化测试工具),采用C#语言编写轻量级的、功能强大的自动化测试程序。本书各个章节所提供的示例代码适用于单元测试(Unit Test)、集成测试(Integration Test)等软件开发过程中的各个测试环节。本书适合于所有在.NET平台上从事应用程序开发的程序员、测试人员以及自动化测试工具开发人员。
作者简介JAMES MCCAFFREY博士任职于Volt Information Sciences公司。他拥有南加州大学的博士学位、夏威夷太平洋大学信息系统专业的硕士学位、加州州立大学Fullerton分校数学专业的学士学位,以及加州大学Irvine分校心理学专业的学士学位。他曾是夏威夷太平洋大学的教授,并在微软公司作为主程序员参与过IE浏览器和MSN Search等关键产品的开发。
媒体推荐译者序
与其他大多数软件测试书籍不同,这是一本重实践轻理论的的测试书籍。本书的重点在于讲解如何针对.NET平台上不同类型的应用程序(Windows UI程序,Web程序和数据库应用程序)编写短小而高效的测试程序,这些测试程序适用于单元测试、集成测试等软件开发过程中的各个测试环节。本书所讲解的技术大多源自作者James D. McCaffrey在实际项目中所获得的宝贵经验。
关于书中部分术语的中文翻译,说明如下:test harness统一译为“测试套件”,property译为“属性”, attribute保留英文不译(因为property和attribute中文意思相近而作为.NET术语则含义完全不同)。另外,第10章“combinadic”和“factoradic”似是作者为了便于描述算法而自造的两个词,不见于其他数学文献或词典,故保留不译。
译者要特别感谢博文视点的周筠老师和编辑晓菲给予我的耐心和信任。感谢刘未鹏(http://blog.csdn.net/pongba)帮忙确定第10章部分数学术语的翻译。另外,还要感谢贾静香同学帮忙找出译文初稿中的部分错别字。
最后,译者希望本书中文版能够为开发人员和测试人员在软件测试的实际工作中提供帮助。
刘晓伟
2007年4月于上海
导读
本书讲的是什么
本书讲解的是在.NET环境下编写轻量级软件测试自动化程序的实用技术。如果你从事的是.NET软件的开发、测试或管理工作,那么这本书就是为你而写的。在.NET之前,编写自动化测试程序往往和编写待测程序一样困难。有了.NET,只需要以前几分之一的时间就可以编写出轻量级、定制的自动化测试程序。说到轻量级的自动化测试程序,我的意思是源代码通常不超过两页或者编写时间不超过两个小时、小型、专用的测试套件。本书的重点在于介绍可以直接应用到日常工作的那些实用技术。
本书适合哪些人
本书的读者定位是采用.NET技术的软件开发者、测试人员和管理人员。阅读本书的前提是要基本熟悉.NET,但是对具体的熟练程度并没有特殊的要求。书中的例子已经在一些讲座中成功地得到应用,这些讲座的听众既有初级程序员,又有高级的系统程序员,背景千差万别。另外,本书的内容也曾针对一些学习中级.NET编程的学生进行过讲授,实践证明这些内容是非常有效的。
轻量级自动化测试的优点
本书所讲述的自动化测试技术是为了补充其他测试的不足,比如手工测试、测试驱动开发(test-driven development)、基于模型的测试(model-based testing)、开源测试框架、商业测试框架等等,而不是为了替代这些测试。软件测试自动化(包括本书所讲解的技术)相比于手工测试有5个优点。有时候我们把自动化测试相比于手工测试的这些优点概括为SAPES:更快的速度(Speed),更高的准确性(Accuracy)、精度(Precision)以及效率(Efficiency),并且更有利于测试者提升自身技能(Skill-Building)。此外,与开源测试框架和商业框架相比,轻量级的自动化测试没有前者那么陡峭的学习曲线(有些框架甚至要求你学习一门专用的脚本语言)。与商业自动化测试框架相比,轻量级的自动化测试花费相对便宜并且很容易进行定制。与开源测试框架相比,轻量级的自动化测试不会有太多版本更新和bug修复,从而更为稳定。轻量级的自动化测试套件与商业测试框架和开源测试框架相比,最大的优点是可以调动测试者的主观能动性——轻量级的自动化测试积极鼓励编写有创造性的测试程序,而商业框架和开源框架常常限制你只须编写框架支持良好的那些测试类型。轻量级的自动化测试唯一的缺点是不太容易维护。因为轻量级的测试套件编写起来非常容易,如果不小心处理,所创建的大量测试套件、测试用例数据和测试用例结果文件可能使你不堪重负。测试过程管理超出了本书的范围,但是在编写轻量级的自动化测试程序时,这却是一个不容低估的有挑战性的问题。
关于代码
本书所有代码都采用C#语言编写。因为底层的.NET框架为各种编程语言提供了统一的平台,如果有需要,不用费太大力气就可以把书中的这些代码改写成Visual Basic .NET代码。书中的所有代码都经过了测试,并且在Windows XP Professional (SP2)和Windows Server 2003上采用Visual Studio .NET 2003(with Framework 1.1)和SQL Server 2000成功运行。这些代码也针对Visual Studio 2005 (with Framework 2.0)和SQL Server 2005进行了测试。但是如果你的工作环境是后者,则需要对这些代码进行一些细微的改动。这些代码针对的是32位的操作系统,并没有针对64位的系统进行过测试。
如果你对软件测试自动化还不是很熟悉,你可能很快就会发现,作为一个测试人员编写代码与作为开发人员编写代码有着明显的不同。本书中的大部分代码都采用传统、脚本风格的编码方式,而没有采用面向对象的风格。我觉得采用脚本风格编写的自动化测试代码更容易理解,但这只是我个人的看法。
另外,很多示例代码并没有引入很多参数,也没有封装成方法。这么做是为了让代码更为简洁明了。大多数通常的错误检查代码(比如针对方法的输入参数进行检查)都被省略掉了。错误捕获对于产品级的自动化测试代码来说是至关重要的(毕竟,我们是在通过代码找出错误),但是用于错误检查的代码经常是核心代码的三四倍。你可以很容易地对本书中的代码进行修改,比如封装成方法、添加错误检查、集成到其他测试框架以及封装到工具类或者程序库。本书大部分章节所测试的都是出于演示目的的小程序。从设计上来说,这些小程序并不是好的编程风格的范例,而且这些待测程序经常还包含故意制造的一些错误。这么做是为了保持演示程序不至于过大并且也模拟了在开发过程中出于尚待完善状态的应用程序。例如,我通常使用textBox1这样的默认控件名称,而没有采用更具说明性的名称,局部变量名称我也取得很短(比如用s表示一个字符串变量),有时候我还会把多个语句写在同一行上,等等,不一而足。我在本书的插图中还留下一些“严重等级为4”的bug(印刷错误);试试看你能不能找到它们。大多数时候,我都尽量让自己使用的术语尽可能地准确。例如,当某个子程序是C#类的成员函数时,我使用术语方法(method),当指代Win32 API库的C++子程序时,我使用术语函数。但是,有时候当我觉得使用意思相近的术语可能更容易理解或者更容易让别人读懂,我也会使用那些稍有偏差的术语。例如,有时候我使用术语字符串变量(string variable)而不是更为准确的字符串对象(string object)来指代C#的字符串。
本书采用了提出问题并给出解决方案(problem-solution)的组织结构。这种方法的优点是可以方便地组织各种各样的自动化测试任务。但是为了让本书的篇幅限制在合理的范围内,大多数解决方案并不是完整并且独立的代码段。我的意思是说,我经常会省略掉变量声明,或者不会一再地讨论解决方案中所用到的命名空间和工程引用,等等。许多解决方案经常会用到同一章中的其他解决方案,所以你应该仔细考虑一下它们之间的依赖关系,以及如何才能利用它们写出完整的测试套件。为了帮助读者理解一章的各个小节是如何一起工作的,每章的最后一个小节我都给出了完整的独立的程序代码。
本书内容
大多数计算机书籍,都会在导读部分概要性地介绍一下书中的内容。我不打算采取这种做法,我觉得要知道一本书的内容最好的方法是浏览一下它的目录;我自己通常就是这样做的。尽管如此,我还是想提一下本书的4个特定主题,这4个主题在我的同事中间激发了巨大的兴趣。第1章,“API测试”从很多方面来说都是软件测试最基本的类型。如果你对软件测试还不是很熟悉,你不但可以学到有用的测试技术,而且还能了解到软件测试中的许多基本原则。第3章,“基于Windows的UI测试”介绍了通过用户界面对应用程序进行操纵的技术。即使有很多年经验的软件测试人员也会惊叹于通过.NET和第3章所讲述的技术,UI测试能变得如此的容易。第5章“请求-响应测试”讲解了用于测试Web程序的基本技术。Web开发人员和测试人员经常也会惊叹于在.NET环境下,这些技术是如此的强大。第10章“排列与组合”介绍了如何通过编写程序生成把输入值的所有排列或组合考虑在内的测试用例。有经验的测试人员和测试新手都觉得组合数学和.NET结合起来大大提高了测试用例的生成效率。
使用书中的代码
本书旨在为从事软件开发和测试的人员提供实际的帮助。很自然地,这就意味着你可以在你的系统或文档里使用本书给出的代码。但是这种授权并不包括在网站上或杂志文章中大段地复制本书中的代码,或者在会议讲演中使用本书给出的例子,等等。大多数作者(包括我在内)都会希望,如果您在书中或杂志中用到了他们书中给出的例子,那么最好能指明所援引例子的原作者。另外,作者对使用这些示例代码可能造成的后果不承担任何责任。
编辑推荐《NET软件测试自动化之道》内容简洁明了,体例实用方便,为.NET开发者量身定做
资深.NET专家之经验汇集,应有尽有
开发高质量.NET应用,做优秀.NET开发者。
目录
目录
Contents
关于作者Ⅰ
关于技术审校Ⅲ
……[看更多目录]
文摘插图