标题：测试之美
版权信息
书名: 测试之美(业内测试专家揭示如何改进软件)
又名: Beautiful Testing: Leading Professionals Reveal How They Improve
译者: 张奭
作者: Tim Riley / Adam Goucher
ISBN: 9787111302391 
定价: 59.00元
出版社: 机械工业出版社
内容简介
就像离不开坚实的架构和优雅的代码一样，成功的软件同样离不开严谨的测试。但是测试并非是例行公事的过程，而是对测试方法坚持不懈的探索，也是对优秀见解的发展。
《测试之美》囊括了27位杰出测试者和开发者的23篇文章，讲述了漂亮的测试工具、完美的测试流程、颇具审美情趣的测试诀窍以及凸显创造力之美的测试理念。通过这些私人的珍闻轶事，您将会学到他们是如何用美丽的方法来测试各式各样产品的——这些宝贵的经验可以用到您自己的项目上。
以下是您可以在书中找到的一些例子：
微软的Alan Page拥有大规模自动化测试的丰富经验，他分享了一些如何让自动化测试更美丽的秘密
Scott Barber阐释了为什么性能测试需要成为一个协作性的过程，而非测量速度的简单练习
Karen N. Johnson 描述了在测试医疗软件时，她的职业经历是如何与她的私人生活交汇的
Rex Black揭示了在25年的时间里让利益相关者满意是一件美丽的事情
数学家John D. Cook将一种基于复杂性和完整性的经典美运用到随机数发生器的测试中
原书赞誉
“来自这些测试技术领袖的每一条真知灼见、每一则实用建议或者每一个优雅甚至富有挑战性的想法，被展现得如此清晰而富有激情。这本包罗万象、动人心魄并且富有生趣的收藏集，应该摆放在每一位专业测试人员的书架上。”
——Ken Doran，斯坦福大学质量保证主管，硅谷软件质量协会主席
目录
前言
第一部分 美丽的测试者
第1章 这对你有好处吗
第2章 测试之美让利益相关者满意
我们为谁而测试？
什么令人满意？
什么美是外在美？
什么美是内在美？
结论
第3章 创建开源的QA社区
交流
志愿者
协调
活动
结论
第4章 协作是性能测试之美的基石
设置舞台
100%？！？失败
这不是内存泄漏（memory leak）
处理不了负荷？修改用户界面吧
这不可能是网络的原因
总结
第二部分 过程之美
第5章 用模糊测试让办公软件更可靠
用户的期望
什么是模糊测试？
为什么要模糊测试？
模糊测试
将来的考虑
第6章 漏洞管理和测试用例的有效性
漏洞管理
管理缺陷的第一步是定义缺陷
测试用例的有效性 
OpenSolaris桌面团队的案例研究
结论
致谢
参考文献
第7章 漂亮的XMPP测试
简介
XMPP 101
XMPP协议测试
简单请求-响应协议的单元测试
多级协议的单元测试
会话初始化测试
自动化的交互性测试
未雕之玉：XML有效性测试
结论
参考
第8章 大规模测试自动化之美
在我们开始前
什么是大规模测试自动化
第一步
自动化测试和测试用例的管理
自动化测试实验室
测试分配
失败分析
报告
把所有的东西放在一起
第9章 美比丑好
稳定性的价值
确保正确性
结论
第10章 测试随机数发生器
什么使得随机数发生器的测试这么微妙？
均匀随机数发生器
非均匀随机数发生器
逐级的测试
结论
第11章 以变化为中心的测试
如何建立由文档驱动、以变化为中心的测试框架？
复杂代码开发模式中以变化为中心的测试
我们学到了什么？
结论
第12章 软件以用为本
与工作的关系
从内部开始
增加不同的思考角度
探索性测试、随机测试和脚本测试
多用户测试
科学实验室
模拟真实应用
在监控世界进行测试
结语
第13章 软件开发是创新过程
高效的敏捷开发
练习，排练，演出
隐含的价值
两个批判工具
软件测试运动
敏捷测试之美
QA不是魔鬼
美是内在
参考
第14章 测试驱动开发：驾驭美之新标准
比例与平衡之美
敏捷：新的比例与平衡
测试驱动开发
实例与测试
易读的实例
持久化需求组件
易测的设计
工具支持
团队协作
体验TDD之美
参考文献
第15章 测试之美，商业成功的基石
整体团队方案
自动化测试
测试驱动开发
实现价值
成功的故事
公布脚本
第16章 玻璃洋葱中的Socialtext
不在于事而在于人
测试者站对舞台，录入美丽
跟我来，最好的在前方
自动测试并不自动
走进Socialtext
平衡早餐策略
回归（测试）和流程改进
拼图中的最后一块
感谢
第17章 魅力测试之高效测试
SLIME
脚本
寻找开发人员的标注
Oracle和测试数据生成
思维导图
效能提升
第三部分 美丽的工具
第18章 通过植入缺陷来发现缺陷：变异测试之美
评估测试集的质量
监督看管者
AspectJ的实验
等价变异
侧重于影响
Javalanche框架
其他
致谢
参考文献
第19章 参照测试之美
参照测试的构造
参照测试的扩展性
构建社区
第20章 Clam Anti-virus：用开源工具测试开源
Clam Anti-Virus项目
测试方法
总结
致谢
第21章 用Windmill测试网页应用程序
简介
概述
编写测试
项目本身
比较
结论
参考文献
第22章 测试一百万个网页
故事的开始…
工具的整合与改进
问题的本质
总结
致谢
第23章 在多机场景中测试网络服务
eBox中对高级测试工具的需求
改进eBox质量保证过程的ANSTE的开发
eBox如何利用ANSTE
其他项目如何可以受益于ANSTE
附录 撰稿人简介
撰稿人简介
Jennitta Andrea是一位全面的实践者（分析人员、测试者、开发者、经理），从2000年开始指导过十几种不同类型的敏捷项目。当然，通过对团队和流程的敏锐观察，Jennitta为会议和软件期刊撰写了许多经验丰富的论文，并交付实践的模拟教程和内部培训，包括敏捷需求、适应进程、自动化示例以及项目回顾等。作为一名在敏捷需求和自动化示例上面的思想领袖，Jennitta现在进行的工作已经获得了国际上的认可。在敏捷社区，她非常活跃，作为第三期敏捷联盟董事会董事，作为敏捷联盟功能测试工具项目的董事引进自动化功能性测试工具的最新技术，是基于IEEE软件咨询委员会的成员，同时也是多个大会委员会的成员。2007年成立了Andrea集团，Jennitta依旧作为实践者和指导者积极地投入敏捷项目中，与此同时，她还继续从事写作和教学，为理论和实践搭起了一座桥梁。
Scott Barber是PerfTestPlus的首席技术官，是软件测试协会的执行总裁，是性能和可靠性研究会的奠基人之一，还是微软出版社出版的《Web应用程序性能测试指南》一书的合著者之一。在软件性能测试方面，他被公认为思想领袖，也是国际的主旨发言人。作为一名软件测试培训师，Barber先生是AST认证的在线指导者，他曾在100多家教育杂志上发表软件测试方面的文章。他是ACM/IEEE/美国顶级智商俱乐部以及上下文驱动软件测试学校的成员。Barber先生是敏捷软件开发的签署人。
Rex Black拥有25年软件和系统工程方面的工作经验，是RBCS的总裁，是软件、硬件和系统测试方面的领袖。在过去的15年里，RBCS完成的服务有：咨询、外包和对软硬件测试的培训。通过雇佣业界最有经验和被认可的顾问团队，RBCS进行产品测试，建立和改善测试团队，并为全世界几百家客户雇佣测试人员。从财富20强企业到新创企业，RBCS通过改善产品开发、减少技术支持、提高公司信誉等为客户节省了时间和金钱。作为RBCS的领袖，Rex是当今软件测试领域最高产的作家。他的第一本畅销书《Managing the Testing Process》(Wiley)在全世界卖出了35 000多本，并在日本、中国和印度发行，现已发行到第3版。他的其他5本测试有关的书籍分别为：《Advanced Software Testing:Volume I》，《Advanced Software Testing: Volume II》 (Rocky Nook)，《Critical Testing Processes》(Addison-Wesley Professional),《Foundations of Software Testing》(Cengage)和《Pragmatic Software Testing》(Wiley),都分别销售几万本书，包括希伯来文、印度文、中文、日文以及俄罗斯文版。他撰写过三十几篇文章，发表过几百篇论文并在研讨会、峰会或其他大会上发表过五十几个主题演讲和其他演讲。Rex还担任国际软件测试资格委员会和美国软件测试资格认证委员会的总裁。
Emily Chen是OpenSolaris的一名软件工程师。她现在负责Mozilla产品（如在OpenS olaris的F irefox和Thunderbird）的质量保证。她对开源社区充满激情，是OpenSolaris社区的核心撰稿人。她在2006-2007年间是谷歌代码之夏项目的导师。2008年她在北京成功组织了第一届GNOME Asia峰会，并成立了北京GNOME用户团体。她毕业于北京理工大学，获得了计算机科学系的硕士学位。在闲暇时间，她喜欢滑雪、远足和游泳。
Adam Christian是做自动化测试和AJAX UI开发的JavaScript开发人员。他是Windmill 测试框架、Mozmill和其他多种开源项目的共同创始人。他生长在西北部，是一名狂热的徒步旅行爱好者、滑雪爱好者和帆船运动爱好者。他曾在华盛顿州立大学学习计算机科学与商业。他目前任职于Slide公司。
Isaac Clerencia是eBox 科技公司的软件开发人员。从2001年起，他就参与到了几个开放的软件项目，其中包括Debian和韦洛之战。2004年他与其他伙伴一起成立了Wrap Networks。Wrap Networks是从eBox科技分离出去的以开源项目为主导的软件公司。他其他方面的兴趣是人工智能和自然语言处理。
John D. Cook是一位应用数学家。从得克萨斯大学获得博士学位后，他在Vanderbilt大学教授数学。后来，他离开学术界，作为一名软件开发人员和咨询师进入企业工作。他目前在M.D.Anderson 癌症中心任研究统计员一职。他的职业生涯融合了大量的研究、软件开发、咨询和管理。他研究领域的应用范围很广，从寻找油田到寻求癌症治疗的方法。他现在和他的妻子以及四个女儿住在休斯敦。
Lisa Crispin是一位敏捷测试教练和从业者。她和Janet Gregory合作编写了《Agile Testing:A Practical Guide for Testers and Agile Teams》。她在Ultimate软件公司担任敏捷软件开发的主管。Lisa的专长是向测试者和敏捷团队展示测试者是如何增加其价值的，以及企业面对考验时如何发展。她的使命是将敏捷测试中的欢乐带到软件测试世界中并将测试的乐趣带入到敏捷开发世界中。Lisa在2000年第一次加入敏捷团队，在这么多年里，愉快地获得了程序员、分析师、测试者和QA主管的工作经验。2003年—2009年，她在ePlan Services公司的Scrum/XP团队中担任测试者职位。她经常在北美和欧洲一些会议中对敏捷测试做指导或举办讲习班。Lisa定期向刊物上发表关于敏捷测试的文章，如：《Better Software》杂志、《IEEE Software》和《Methods and Tools》杂志等。她还与Tip House合作了《Testing Extreme Programming》 (Addison-Wesley) 一书。
Adam Goucher拥有十年以上的软件专业测试经验。那段时期，他在新创的公司、大型跨国企业，以及在二者之间的企业中都工作过。他能适应传统和敏捷测试环境。作为一名大小思想交流中的信徒，他经常在多伦多地区的技术学院教授测试技巧。在业余时间里，他既能自己玩曲棍球，又能指导别人，并能迅速地将所学的经验教训运用到测试中去。他也是软件测试协会的一名活跃的成员。
Matthew Heusser是Socialtext的一名技术员工（QA组长），将他成年生活都用在了开发、测试和管理软件项目上了。除了在Socialtext工作，Matthew 还是《Software Test and Performance》杂志的特邀编辑和加尔文大学计算机科学系的兼职讲师。他是Great Lakes软件卓越会议和技术债务会议的主要组织者。Matthew的博客（创造性的混沌）创意十足，在开发人员和开发经理博客中一直排名前100位，在软件自动化测试中排名前10位。同样重要的是，Matthew拥有整个完美的人生工作经验。从一名学员到官员，在民航巡逻队中拿到驾照之前，Matthew就在塞纳斯公司驾驶172轻型飞机单飞表演。他目前和家人住在密歇根的Allegan，并作为为人所知的足球教练。
Karen N. Johnson是一位伊利诺斯州芝加哥的独立软件测试顾问。她把软件测试当做智力挑战，并且倾向于以内容为导向的测试。她教授并且咨询软件测试的多种课题，并时常在软件测试会议上发表讲话。她已经在《Better Software》和《Software Test and Performance》杂志上以及网上发表了文章。她也是WREST（关于正规软件测试的工作室）的共建人。Karen同时也是Tech Target网站上的重要软件测试专家。
Kamran Khan贡献了一系列的开源办公软件工程，包括AbiWord(一个文字处理程序)、Gnumeric（一个表单处理程序）、libwpd和libwpg（WordPerfect库），还有libgoffice和libgsf（通用Office库）。他有过5年的办公软件测试经验，主要精力集中在寻找那些影响可靠性和稳定性的缺陷上。
Tomasz Kojm是Clam AntiVirus（一个反病毒解决方案的公开资源）的最初作者。ClamAV 在 GNU 一般大众许可下是可以免费获得的。在2009年，在超过两百万的计算机系统（主要是邮件网关）上已经安装了它。从2002年开始，Tomasz和他的团队一直在研究和部署反病毒测试技术，目的是为了使软件能满足关键任务的可靠性和可利用性的要求。
Michelle Levesque是Google广告UI的技术负责人。她通过Google 在搜索结果的网页上制作漂亮实用的广告。同时她也撰写和指导内部教育碟片，教授Python课程，引导可读性队伍，帮助整理 Google 回收站（装满提升测试的月传单）里的大量海报，面试有潜力的厨师长和女按摩师。
Chris McMahon是一位专门的敏捷测试师和使用网络的工作者。他积累了相当多的专业经验（不仅仅是指从远距离工作到社会网络、从COBOL到Ruby的一系列测试）。他曾三次大学辍学，做过专业音乐家、图书管理员、侍者，这些经历使得Chris成为一个软件测试家的时间比别人稍微晚了些，但是他独特而又丰富的工作背景赋予了他一种工作上的成熟性（很少人具有这种成熟性）。他住在Colorado 西南部的郊区，同时也在许多杂志和邮件列表上投稿，他甚至是一本关于软件测试书上的主人公。
Murali Nandigama是一位专业质量顾问并且在各种机构（包括TCS Sun Oracle和Mozilla）里有超过15年的工作经验。Murali是权威的软件质量分析师、六西格玛领导人、IEEE的首席成员。在先进软件测试方法论领域，他的几个软件专利获得嘉奖。并且他在国际期刊上发表了文章，这些文章也在许多会议上得到使用。Murali在印度海德拉巴德大学获得了博士学位。
Brian Nitz自从1988年就是一位软件工程师。他致力于研究软件生命周期的各个方面（从设计和开发到QA和支持）。他的成就包括：开发基于数据流的可视化编译器，支持放射学工作站、QA、性能、服务生产率工具，以及在一家大型银行成功部署7000多个Linux桌面。他与妻子、两个孩子住在爱尔兰，在那里他喜欢旅游、航行和摄影。
Neal Norwitz是Google的软件开发者，也是Python的用户。他研究Google和Python测试的许多方面，包括引导Google上的测试群，设置和维持Python的许多测试基础设施。当他了解到自己的代码存在很多问题时，他就开始深深着迷于测试。
Alan Page在1993年开始他的测试者职业生涯。他在1995年加入微软，现在是微软卓越测试团队的总监，他监督测试人员的技术训练项目和关于提高测试人员水平、测试本身和测试工具的其他活动。Alan在博客上写了关于测试的文章，并且是《微软的软件测试之道》的主要作者。
Tim Riley是Mozilla浏览器的质量保证负责人。他开始测试软件已经18年了，测试的东西包罗万象，包括航天器的模拟器、地面控制系统、高级安全操作系统、语言平台、应用程序服务器、主控服务和开源网络应用程序。他成功创办了公司的软件测试团队，从起步到大部门一步步形成，由原来的3个人到后来的120个人，并横跨6个国家。他拥有一个测试执行框架的软件专利，该框架把测试套件和可用的测试系统相匹配。他很乐意做Independence的Canine Companions的管理员，并且也乐意成为现场和工作棚里的声效工程师。
Martin Schr&ouml;der在德国Würzburg大学学习了计算机科学课程，并且2009年在此大学获得了硕士学位。在校期间，他在2006年就开始在以社区为导向的Mozilla Calendar 项目里做志愿者。自从2007年中期开始，他已经开始协调QA志愿者团队。围绕公开资源软件项目（包括开发、质量保证、社区建设）的工作是他的兴趣所在。
David Schuler是德国萨尔州大学软件工程师主席的研究助手。他的研究兴趣包括变异测试和动态项目分析，主要关注检测同等变异体的项目运行技术。为了完成此研究，他开发了Javalanche变异测试框架，它允许有效地测试变异和评估变异影响。
Clint Talbert从事软件工程师的职业已经超过10年了，主要是测试和开发已有的公司和刚起步的公司。他的成就包括从事对等网络数据库的复制引擎的工作，设计一个能使应用程序得到时区数据的合理方式，召集全世界的人们从事测试项目。最近，他引导Mozilla Test Development的团队集中精力于Gecko计算机平台的质量保证，这一平台是Firefox 和其他应用程序的基层。同时他是一位雄心壮志的科幻小说作家。当不从事测试或写作工作时，他喜欢在所有地方（从奥斯丁、得克萨斯到加利福利亚的大洋海滩）攀岩和冲浪。
Remko Troncon是XMPP Standards Foundation理事会的一位成员，也是几个XMPP协议扩展的合著者、前任Psi的主要开发者、Swift Jabber/ XMPP项目的开发者、《XMPP: The Definitive Guide》(O'Reilly) 书的合著者。他在Katholieke Universiteit Leuven大学获得工程学（计算机科学）博士学位。
Linda Wilinson是一位有超过25年软件测试经历的QA经理。她在非盈利机构、银行、保险公司、电信公司、零售公司、州和联邦政府、旅游和航空领域工作。
Jeffrey Yasskin是Google的软件开发者，也是Python的管理者。他从事Unladen Swallow项目，此项目欲尝试通过编译常见功能到机器代码中和利用过去30年里的虚拟机研究来大幅度提高Python的性能。当他注意到此项目是如何减少了能改变安全系数的知识时候，他开始从事测试工作。
Andreas Zeller是德国Saarland大学里软件工程专业的教授。他的研究主要关于程序员的生产力——具体来说，是关于发现和修改代码和开发流程。他以GNU DDD（数据显示调试器）和Delta Debugging而闻名于世。GNU DDD是Linux和UNIX上的可视化调试器，Delta Debugging是一项自动为计算机程序分析出失败原因的技术。他还从事一些公司（Microsoft、IBM、SAP）的软件知识库的挖掘工作。他最近主要从事评估和提高测试套件（尤其是变异测试）的质量。