Perl Testing程序高手秘笈
基本信息
- 作者: Ian Langworth chromatic [作译者介绍]
- 译者: 盛春 蒋永清
- 丛书名: 东南大学出版社O'Reilly系列
- 出版社:东南大学出版社
- ISBN:9787564110086
- 上架时间:2008-10-15
- 出版日期:2008 年7月
- 开本:16开
- 页码:190
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > 网络编程 > perl
编辑推荐
《Perl Testing程序高手秘笈》将深入浅出地带领你:
轻松编写基础Perl测试程序并解析测试结果 ..
使用特殊技巧和模块来改进测试
在项目代码中捆绑测试用例
测试对数据库的操作及其内容
测试网站功能和Web应用
使用“Test Anything Protocol”来测试其他语言开发的项目
推荐阅读
内容简介回到顶部↑
在软件开发领域除了测试以外还有什么更加吸引人的话题吗?当然,先要排除游戏编程、3d图形、音频处理、高性能阵列、超酷网站设计等等,现在还有剩下的吗?哦,看来软件测试可能确实不怎么吸引人。但我要说这很不幸,因为好的软件测试能增加开发效率、改善设计、提高质量、减轻维护负担,还能让你的客户、同事和经理更满意。
perl引入自动测试已经有些年头了。早前的perl 1.0版本就带有一个综合测试包,这给以后的测试开了个好头。了解perl的测试工具并用它们来排除各种疑难杂症,将有助于你成为更好的程序员。即便在别的测试领域,这些perl工具也能派上用场,就算在那些用其他语言开发的项目中也是如此。
类似所有其他的o'reilly程序高手秘笈系列图书,这是一本“多做少说”的书,我们努力避免说教,专注于在实际案例中解答问题,而不是空谈。
《perl testing程序高手秘笈》将深入浅出地带领你:轻松编写基础perl测试程序并解析测试结果;使用特殊技巧和模块来改进测试;在项目代码中捆绑测试用例;测试对数据库的操作及其内容;测试网站功能和web应用;使用“test anything protocol”来测试其他语言开发的项目。
如今的工作压力日渐加强,而项目开发的周期却日渐缩短,因此单元测试在提高软件质量方面的地位也日趋重要。一旦掌握了本书的内容,你就能轻易验证底层代码的可靠性、从容缩减项目的开发周期,并出色地完成日常维护工作。
现在就可以轻松地开始阅读本书,不需要像自由软件和开源软件的忠实拥护者那样,吃饭、睡觉、工作的时候都想着用本书中的perl技术去做些什么。其实你只要有一丁点儿改进工作效率和代码质量的愿望就行了,慢慢地你就会领略到测试给你带来的巨大帮助。
perl引入自动测试已经有些年头了。早前的perl 1.0版本就带有一个综合测试包,这给以后的测试开了个好头。了解perl的测试工具并用它们来排除各种疑难杂症,将有助于你成为更好的程序员。即便在别的测试领域,这些perl工具也能派上用场,就算在那些用其他语言开发的项目中也是如此。
类似所有其他的o'reilly程序高手秘笈系列图书,这是一本“多做少说”的书,我们努力避免说教,专注于在实际案例中解答问题,而不是空谈。
《perl testing程序高手秘笈》将深入浅出地带领你:轻松编写基础perl测试程序并解析测试结果;使用特殊技巧和模块来改进测试;在项目代码中捆绑测试用例;测试对数据库的操作及其内容;测试网站功能和web应用;使用“test anything protocol”来测试其他语言开发的项目。
如今的工作压力日渐加强,而项目开发的周期却日渐缩短,因此单元测试在提高软件质量方面的地位也日趋重要。一旦掌握了本书的内容,你就能轻易验证底层代码的可靠性、从容缩减项目的开发周期,并出色地完成日常维护工作。
现在就可以轻松地开始阅读本书,不需要像自由软件和开源软件的忠实拥护者那样,吃饭、睡觉、工作的时候都想着用本书中的perl技术去做些什么。其实你只要有一丁点儿改进工作效率和代码质量的愿望就行了,慢慢地你就会领略到测试给你带来的巨大帮助。
作译者回到顶部↑
本书提供作译者介绍
Ian Langworth(http://langworth.com/)写了很多年的Perl程序,并从2003年起就一直活跃在Perl社区中。他为CPAN贡献了许多模块,大多数和Kwiki相关。他还在Perl相关的_些大会如LISA和YAPC上作过演讲。Ian同时还是广为流传的小工具Cadubi的作者,这个软件如今被很多自由操作系统打包收纳。
Ian目前在Northeastern大学研究计算机科学和认知心理学。在进修硕士学位期间,他参与了志愿者系统管理员团队的工作,并为帮助他人提高代码质量和健壮度而不懈努力着。
他现在居住.. << 查看详细
Ian目前在Northeastern大学研究计算机科学和认知心理学。在进修硕士学位期间,他参与了志愿者系统管理员团队的工作,并为帮助他人提高代码质量和健壮度而不懈努力着。
他现在居住.. << 查看详细
目录回到顶部↑
《程序高手秘笈》系列
前言
第一章 测试起步
安装test模块
运行测试
解析测试结果
编写你的第一个测试
装载模块
改进测试比对
第二章 编写测试
跳过测试
标注测试项目为todo
简单数据结构比较
数据组成
测试警告信息
测试异常
第三章 管理测试
测试的组织
检查覆盖率
编写测试库
前言
第一章 测试起步
安装test模块
运行测试
解析测试结果
编写你的第一个测试
装载模块
改进测试比对
第二章 编写测试
跳过测试
标注测试项目为todo
简单数据结构比较
数据组成
测试警告信息
测试异常
第三章 管理测试
测试的组织
检查覆盖率
编写测试库
译者序回到顶部↑
从前有个美好的童话国度…
在软件开发技术领域有数不清的语言存在,如果给世界上每个国家分配一种语言,只怕还有很多著名语言没有着落。Perl就是其中一种默默奉献的语言,在计算机使用的各个领域都能发现它的踪影。作为证据可以打开CPAN页面搜 索感兴趣的问题,几乎所有的领域都有人在尝试用它来解决问题。.
在互联网普及的同时,这个语言承载着CGI技术而逐渐被人所知,开始进入中国。但是它的能力还远不止制作动态页面,其中更是蕴含着计算机文化的根基。它是一种在设计的时候就充分鼓励人性当中美好品性的语言,因此非常特殊地吸引着一群普通用户深入学习。比起其他的语言来说,Perl的社区也是非常成熟的,特别是其中志愿者互相帮助的风尚如此盛行,实在让人惊叹。
作为一:种如此特殊的语言,它的学习渠道也是充满特色的。很多人用它来做系统管理,写脚本帮助提高操作自动化程度。很多人用它的胶水功能来连接自己喜欢的小工具,实现更加强大的功能。也有很多人用它来做快速开发,充满创意地使用各种模块实现各种客户定制的应用。这些人都大声感谢Larry Wall的发明,并声明自己的选择是幸运的。
但是…
有一天,管理员的脚本突然罢工了,原因是某个人(也许就是你自己)不经意间改变了系统的配置。开发人员的程序在演示的时候崩溃了,并且怎样也很难解释原因,只能归因于外星生物电磁干扰。而那些胶水程序的某个环节也脱胶了,吸引人的小把戏演砸了。IT领域的东西就是这么充满动态,虽然面对的只是静静闪动的光标。
也许这些问题背后的共同点就在于问题的简化过了头,从某个时间开始简洁变成了整洁、精密变成了秘密、快乐变成了傻乐。而我们都习惯于这个转变的发生,好像一个干净的台布总是会变得肮脏一样。
难道没有办法能阻止这个不可抗拒的进程?为什么每个项目开头都是那么美好,最后都变成行业典型的失败?会不会有个白马王子出现,振臂一呼改变格局?如果这样,那么我们又可以重新埋头写自己的小脚本、小模块、小程序了,也许还能贡献点什么到CPAN上面去呢?
就让我们开始测试吧,告别那些臃肿的名词:UML、SOA、网格计算,回到问题的根本。为什么我要定义那个变量,它真的被合理使用了么?让我们的测试自动化,因为人人都是有可能犯错误的,包括测试部门的经理。在我们觉得不可能测试的地方,真的没有可以努力的余地了么?..
从此王子和公主…
在这本书的翻译之后,我个人开始明白了模块的编写,不再迷惑为什CPAN上面中国人的贡献是如此之少了。我开始爱上了Plain Old Documemt,并用它来书写各种文档、简历。我开始如此高效的工作,用Perl来教导数据库课程。这是边翻译边学习的回报,而我也希望读者朋友们能够分享我的快乐,因为Perl就是如此的有趣,而测试也是如此的有必要。
回想2004年我们团队第一次尝试翻译Perl.com的文章,那真是个很好的开始。由于亚洲debian用户组的聚会,我们得到了台湾Perl高手的指点。现在翻阅那时候在小本子上面记录的那些模块,发现原来很多都在此书中被提到,都可以用来测试或被测试验证。翻译本书是一个如此幸运的选择,定然是超出了个人的努力而得到的回报,这也可能就是所谓的被bless了吧。
在本书翻译过程中,我们两人之间完美地进行了合作,彼此了解了对方所熟悉的技术领域。在审阅过程中,得到了上海本地Perl爱好者王晖、cnhacktnt、王亮、netcasper的参与与评审,以及孙梦然提供的宝贵建议,在此深表感谢。我们也非常感谢东南大学出版社的张烨编辑,直接给了我们一个翻译O'Reilly技术书籍的机会,没有这个项目我们2007年的自我评估将会失色三分。
最后感谢我们的家人——父亲蒋记还、母亲张群英、妻子沈圆,父亲盛林伯、母亲高霞飞、妻子王晓冬,没有你们的鼓励与支持,我们将无法从容而自信地投入工作。感谢你们!...
盛春 蒋永清
2007年11月
在软件开发技术领域有数不清的语言存在,如果给世界上每个国家分配一种语言,只怕还有很多著名语言没有着落。Perl就是其中一种默默奉献的语言,在计算机使用的各个领域都能发现它的踪影。作为证据可以打开CPAN页面搜 索感兴趣的问题,几乎所有的领域都有人在尝试用它来解决问题。.
在互联网普及的同时,这个语言承载着CGI技术而逐渐被人所知,开始进入中国。但是它的能力还远不止制作动态页面,其中更是蕴含着计算机文化的根基。它是一种在设计的时候就充分鼓励人性当中美好品性的语言,因此非常特殊地吸引着一群普通用户深入学习。比起其他的语言来说,Perl的社区也是非常成熟的,特别是其中志愿者互相帮助的风尚如此盛行,实在让人惊叹。
作为一:种如此特殊的语言,它的学习渠道也是充满特色的。很多人用它来做系统管理,写脚本帮助提高操作自动化程度。很多人用它的胶水功能来连接自己喜欢的小工具,实现更加强大的功能。也有很多人用它来做快速开发,充满创意地使用各种模块实现各种客户定制的应用。这些人都大声感谢Larry Wall的发明,并声明自己的选择是幸运的。
但是…
有一天,管理员的脚本突然罢工了,原因是某个人(也许就是你自己)不经意间改变了系统的配置。开发人员的程序在演示的时候崩溃了,并且怎样也很难解释原因,只能归因于外星生物电磁干扰。而那些胶水程序的某个环节也脱胶了,吸引人的小把戏演砸了。IT领域的东西就是这么充满动态,虽然面对的只是静静闪动的光标。
也许这些问题背后的共同点就在于问题的简化过了头,从某个时间开始简洁变成了整洁、精密变成了秘密、快乐变成了傻乐。而我们都习惯于这个转变的发生,好像一个干净的台布总是会变得肮脏一样。
难道没有办法能阻止这个不可抗拒的进程?为什么每个项目开头都是那么美好,最后都变成行业典型的失败?会不会有个白马王子出现,振臂一呼改变格局?如果这样,那么我们又可以重新埋头写自己的小脚本、小模块、小程序了,也许还能贡献点什么到CPAN上面去呢?
就让我们开始测试吧,告别那些臃肿的名词:UML、SOA、网格计算,回到问题的根本。为什么我要定义那个变量,它真的被合理使用了么?让我们的测试自动化,因为人人都是有可能犯错误的,包括测试部门的经理。在我们觉得不可能测试的地方,真的没有可以努力的余地了么?..
从此王子和公主…
在这本书的翻译之后,我个人开始明白了模块的编写,不再迷惑为什CPAN上面中国人的贡献是如此之少了。我开始爱上了Plain Old Documemt,并用它来书写各种文档、简历。我开始如此高效的工作,用Perl来教导数据库课程。这是边翻译边学习的回报,而我也希望读者朋友们能够分享我的快乐,因为Perl就是如此的有趣,而测试也是如此的有必要。
回想2004年我们团队第一次尝试翻译Perl.com的文章,那真是个很好的开始。由于亚洲debian用户组的聚会,我们得到了台湾Perl高手的指点。现在翻阅那时候在小本子上面记录的那些模块,发现原来很多都在此书中被提到,都可以用来测试或被测试验证。翻译本书是一个如此幸运的选择,定然是超出了个人的努力而得到的回报,这也可能就是所谓的被bless了吧。
在本书翻译过程中,我们两人之间完美地进行了合作,彼此了解了对方所熟悉的技术领域。在审阅过程中,得到了上海本地Perl爱好者王晖、cnhacktnt、王亮、netcasper的参与与评审,以及孙梦然提供的宝贵建议,在此深表感谢。我们也非常感谢东南大学出版社的张烨编辑,直接给了我们一个翻译O'Reilly技术书籍的机会,没有这个项目我们2007年的自我评估将会失色三分。
最后感谢我们的家人——父亲蒋记还、母亲张群英、妻子沈圆,父亲盛林伯、母亲高霞飞、妻子王晓冬,没有你们的鼓励与支持,我们将无法从容而自信地投入工作。感谢你们!...
盛春 蒋永清
2007年11月
前言回到顶部↑
在软件开发领域除了测试以外还有更加吸引人的话题吗?除了游戏编程、3D图形、媒体播放器、高性能阵列、超酷网站设计等之外,还有些什么?.
好吧,看来软件测试确实不怎么吸引人。这很遗憾,因为好的软件测试除了能增加开发效率、改善设计、提高质量、减轻维护负担,还能让你的客户、同事和经理更满意。敏捷开发的理念也一再强调自动化软件测试技术的重要性,这不奇怪厂—当你亲身体验过测试带来的好处,并开始慢慢理解、适应之后,你甚至会难以想象自己以前怎么竟然可以在开发软件的时候不使用测试!
Perl的名声在黑客和自由软件这两个领域都很响亮,用它灵活的语法来对付各种应急或者棘手的事情,确实又快又好。不过当你深入学习Perl的各式概念和运行机制之后,你会发现它也能胜任大型的商业项目。可能你早已对此有所了解、可能你还不知道该如何着手,本书可以帮你解决这些问题。
Perl在自动测试方面起步很早。最早版本的Perl 1.0里面就带有作者编写的综合测试集。CPAN作为可重用的自由Perl代码的汇集,也积极鼓励着贡献者为代码编写及维护测试。CPAN还提供了很多有用的测试模块,来让测试可行、简单。
当然;你的主要职责可能并不是与Perl一直相关。它可能只是你手边的一个好的工具而已。这没问题,了解Perl的测试工具如何工作并用它们来排除各种疑难杂症,这将有助于你成为更好的程序员。哪怕在别的测试领域,这些Perl工具也能派上用场,甚至是在那些用其他语言开发的项—目中。而且相信将来还会有更多此类的Perl测试工具出现。
你可以轻松阅读本书,不必成为一个自由软件和开源软件的忠实拥护者,更不必吃饭、睡觉、工作都想着Perl。其实你只要有一丁点改进工作的动力就行。
内容概要
这本书假设读者以前没有写过任何测试,用9章的篇幅来讨论Perl的测试。从最简单的东西讲起,最后带领你探索一些实际开发情况下可能碰到的测试问题;作者希望你已经知道如何安装和有效使用Perl模块,并在自己的程序当中尝试过。你应该对Perl的数据结构和面向对象开发有深入的了解。你需要用5.6.0以上的Perl版本来测试;但是作者建议你起码从5.6.1版本开始,最好是直接用5.8系列的最高版本。
本书的章节分别讨论了:
编写基本的测试
这一章解释了开始编写和运行测试之前要了解的所有事情,包括如何安装测试模块、如何理解测试结果以及在每个测试当中几乎都会用到的那些测试函数。
改进测试..
这一章在前一章的基础上进一步展示了一些测试技巧和模块。一旦熟悉了编写测试,你会遇到一些常见的任务和问题。这里介绍如何解决它们。
很好地组织和运行测试
这一章展示了如何利用基础的测试工具定制工具以符合自己的开发环境和项目。具体来说,就是如何编写自己的测试库和报告工具。
将测试代码作为软件项目的一部分
测试其实也是代码,所有关于编程的道理和原则在此都适用。这一章讨论了发布项目之前要考虑的一些问题,尤其是和项目中的代码无关的那些问题。
测试那些难以测试的代码
单元测试就理论而言看起来简单,但复杂的项目往往有复杂的交互过程,有时候这些过程看起来是无法测试的。而这一章建议你改变方法,从另一个角度考虑如何替换掉不可测试的代码,在你的控制下换入测试的代码,从而让游戏继续下去。
测试数据库操作和数据内容
好吧,看来软件测试确实不怎么吸引人。这很遗憾,因为好的软件测试除了能增加开发效率、改善设计、提高质量、减轻维护负担,还能让你的客户、同事和经理更满意。敏捷开发的理念也一再强调自动化软件测试技术的重要性,这不奇怪厂—当你亲身体验过测试带来的好处,并开始慢慢理解、适应之后,你甚至会难以想象自己以前怎么竟然可以在开发软件的时候不使用测试!
Perl的名声在黑客和自由软件这两个领域都很响亮,用它灵活的语法来对付各种应急或者棘手的事情,确实又快又好。不过当你深入学习Perl的各式概念和运行机制之后,你会发现它也能胜任大型的商业项目。可能你早已对此有所了解、可能你还不知道该如何着手,本书可以帮你解决这些问题。
Perl在自动测试方面起步很早。最早版本的Perl 1.0里面就带有作者编写的综合测试集。CPAN作为可重用的自由Perl代码的汇集,也积极鼓励着贡献者为代码编写及维护测试。CPAN还提供了很多有用的测试模块,来让测试可行、简单。
当然;你的主要职责可能并不是与Perl一直相关。它可能只是你手边的一个好的工具而已。这没问题,了解Perl的测试工具如何工作并用它们来排除各种疑难杂症,这将有助于你成为更好的程序员。哪怕在别的测试领域,这些Perl工具也能派上用场,甚至是在那些用其他语言开发的项—目中。而且相信将来还会有更多此类的Perl测试工具出现。
你可以轻松阅读本书,不必成为一个自由软件和开源软件的忠实拥护者,更不必吃饭、睡觉、工作都想着Perl。其实你只要有一丁点改进工作的动力就行。
内容概要
这本书假设读者以前没有写过任何测试,用9章的篇幅来讨论Perl的测试。从最简单的东西讲起,最后带领你探索一些实际开发情况下可能碰到的测试问题;作者希望你已经知道如何安装和有效使用Perl模块,并在自己的程序当中尝试过。你应该对Perl的数据结构和面向对象开发有深入的了解。你需要用5.6.0以上的Perl版本来测试;但是作者建议你起码从5.6.1版本开始,最好是直接用5.8系列的最高版本。
本书的章节分别讨论了:
编写基本的测试
这一章解释了开始编写和运行测试之前要了解的所有事情,包括如何安装测试模块、如何理解测试结果以及在每个测试当中几乎都会用到的那些测试函数。
改进测试..
这一章在前一章的基础上进一步展示了一些测试技巧和模块。一旦熟悉了编写测试,你会遇到一些常见的任务和问题。这里介绍如何解决它们。
很好地组织和运行测试
这一章展示了如何利用基础的测试工具定制工具以符合自己的开发环境和项目。具体来说,就是如何编写自己的测试库和报告工具。
将测试代码作为软件项目的一部分
测试其实也是代码,所有关于编程的道理和原则在此都适用。这一章讨论了发布项目之前要考虑的一些问题,尤其是和项目中的代码无关的那些问题。
测试那些难以测试的代码
单元测试就理论而言看起来简单,但复杂的项目往往有复杂的交互过程,有时候这些过程看起来是无法测试的。而这一章建议你改变方法,从另一个角度考虑如何替换掉不可测试的代码,在你的控制下换入测试的代码,从而让游戏继续下去。
测试数据库操作和数据内容
书摘回到顶部↑
第一章 测试起步
你已经听说过测试带来的好处,知识它能提升代码的可靠性、可维护性以及加快开发流程。你甚至可能知道,对于无论是以Perl程序还是用其他语言开发的程序,Perl都提供了涵盖范围甚广的各式模块,用起来也非常简单。简而言之,你可能已经了解了有关测试的各个方面,唯独不知如何开始着手实践。
……
你已经听说过测试带来的好处,知识它能提升代码的可靠性、可维护性以及加快开发流程。你甚至可能知道,对于无论是以Perl程序还是用其他语言开发的程序,Perl都提供了涵盖范围甚广的各式模块,用起来也非常简单。简而言之,你可能已经了解了有关测试的各个方面,唯独不知如何开始着手实践。
……







点击看大图








加载中...

