每天,Google都要测试和发布数百万个源文件、亿万行的代码。数以亿计的构建动作会触发几百万次的自动化测试,并在好几十万个浏览器实例上执行。面对这些看似不可能完成的任务,谷歌是如何测试的呢? 《Google软件测试之道》从内部视角告诉你这个世界上知名的互联网公司是如何应对21世纪软件测试的独特挑战的。《Google软件测试之道》抓住了Google做测试的本质,抓住了Google测试这个时代最复杂软件的精华。《Google软件测试之道》描述了测试解决方案,揭示了测试架构是如何设计、实现和运行的,介绍了软件测试工程师的角色;讲解了技术测试人员应该具有的技术技能;阐述了测试工程师在产品生命周期中的职责;讲述了测试管理及在Google的测试历史或在主要产品上发挥了重要作用的工程师的访谈,这对那些试图建立类似Google的测试流程或团队的人受益很
本书正文共13章,章是概述,第2章至第8章顺序讲述软件生命周期各阶段的任务、过程、结构化方法和工具,第9章至2章分别讲述面向对象方法学引论、面向对象分析、面向对象设计和面向对象实现,3章介绍软件项目管理。
详述用于估算和计划任何敏捷项目的行之有效的技巧 《敏捷软件开发实践估算与计划 为对敏捷项目进行估算和计划提供了紧贴实用的指导方针。在本书中,敏捷联盟联合创始人Mike Cohn讨论了敏捷估算与计划背后的哲学思想,并通过列举现实世界的例子和项目案例具体展示了如何完成工作。本书是你开发工具箱中必不可少的敏捷估算“利器”。 本书清晰地阐述了相关概念,并引导读者逐步找到下列问题的答案:将构建什么产品?产品规模多大?需要在何时完成?到那时我们到底能完成多少?你首先会认识到的计划由哪些要素组成,接着会了解到如何才能使计划敏捷化。 采用本书中讲述的方法,你将获得敏捷估算工具,帮助你从始至终保持敏捷、节省时间、充分利用资源并且完成更多工作。本书要点如下: 为什么传统的指令性计划会失败而敏捷计划会取得成功 如何
本书阐述了国际化软件测试的根本问题,深入剖析了如何有效进行软件国际化测试和软件本地化测试,旨在帮助读者学习和掌握国际化软件测试的概念、技术、流程、方法和市场状况,分享业界同行的实践。 国际化软件测试主要包括软件国际化测试和软件本地化两个阶段。本书将围绕这两个主题深入、详细的进行论述。软件外包测试与国际化软件测试紧密相关,本书最后将对其进行简要介绍。 全书分为三个部分:国际化软件基础,国际化软件测试,软件外包测试展望。每一部分根据内容的逻辑性和重要性分多章分别论述一个主题,每章以概述开始,随后重点阐述专题内容,最后进行本章小结。
《软件定义数据中心:技术与实践》从与软件定义数据中心有关的基本概念入手,通过实例介绍软件定义数据中心涉及的技术、应用、前景。在此基础上,深入介绍构建软件定义数据中心的计算、网络、存储、安全、自动化管理和高可用性等基本技术,并辅以解决方案和大型实例,力求使读者全面了解当前软件定义数据中心的技术动态和发展趋势,为实际构建软件定义数据中心提供必要的技术指导。 《软件定义数据中心:技术与实践》适于作为数据中心分析、设计、研发、管理工程师的技术普及读物,亦可作为高等学校相关专业课程的教材或参考书。
OpenCV是一个开源的计算机视觉库,在计算机视觉的开发中扮演着重要的角色。它为计算机视觉应用开发提供了灵活、功能强大的开发接口,使其成为计算机视觉专业人员所依赖的重要开发工具。本书系统地介绍如何使用OpenCV来构建与计算机视觉相关的应用,如增强现实、车牌识别、人脸检测等。每章都会介绍一个典型的计算机视觉应用问题,并并提供相关的背景介绍及源代码,为快速解决实际计算机视觉项目遇到的问题提供系统实用指南。 全书共9章:章介绍Android系统上的卡通化和皮肤变换;第2章讲解如何针对iPhone或iPad设备来构建基于标记的增强现实(AR)应用;第3章讲解怎样开发无标记增强现实桌面应用;第4章介绍如何从2D图像重构3D几何结构,以及如何估计摄像机位置;第5章讲解如何通过模式识别算法来判断一幅图像是否为车牌;第6章构建一个动态人脸跟
任何持续发展的公司,最终都需要考虑如何扩展它的系统、组织和流程。这不仅仅是技术问题,还涉及组织、流程、架构等方方面面。扩展组织、流程和系统使之相互支持,达到良性循环,也不仅仅是门科学,还是一门艺术。《可扩展的艺术——现代企业的Web架构、流程及组织》正是对此提供了全面的、实践证明确实有效的解决思路和实用技巧。 对于负责非技术类业务的执行主管或产品经理来说,《可扩展的艺术——现代企业的Web架构、流程及组织》会帮助你明确地提出正确的可扩展性问题,分析并做出正确的决策。而对于技术主管和工程师来说,《可扩展的艺术——现代企业的Web架构、流程及组织》会帮助你解决对扩展造成负面影响的组织和流程方面的问题,并为构建具有更高可扩展性的平台提供了技术模型和建议。
本书介绍大型软件系统的开发技术,主要是目前软件界最为流行,也较实用的结构化方法,包括支持这一方法的工具和环境,还简述了其他一些方法和技术,如Jackson方法、面向对象的软件开发方法、测试和维护技术以及数据库设计等,使材料更系统化,并有所比较。 本书可用作高等院校计算机或计算机专业本科高年级的教材,也可作软件实际工作者的参考书。
本书系统地讲述软件测试的基本概念、理论和方法,及其在工程实践中的应用。本书中,软件测试的概念作为软件开发过程中每个阶段的一个有机组成部分进行讲述,而不是像传统方式那样把软件测试作为独立的、位于软件实现之后的一项活动。书中每一章的开始都给出一组预期要达到的目标,以方便读者阅读;每一章的结尾都给出相关的参考文献,以方便读者进行深入学习。 本书适用于高等院校的计算机专业本科及硕士生阅读,可作为软件测试课程教材。书中阐述了软件测试研究和实践领域的实用内容,可供软件测试领域的研究者和工程实践人员阅读参考。
经典案例学习,是一种直接而有效的学习方法。了解全球IT公司的软件案例,从中得到借鉴和启发,这样的机会不可多得! 本书案例来源于全球软件案例研究峰会。所有案例均来自一线研发团队带头人,代表了中国IT界在这一年间的“呕心沥血”。 本书选取案例遵循软件研发中心的产品创新/用户体验、团队管理/组织发展、架构设计/技术战略、设计匠艺/流程再造、测试管理/质量平台五个维度,对应软件研发过程中涉及的五个角色(产品经理、团队经理、架构师、项目经理、测试经理),方便读者对号入座,找到自己的案例。
本书针对软件开发,提出了一些相当棘手和敏感的问题,并给出了颇具争议性的结论:从一个数百年来一直兴旺发达的系统——工艺学中获得启示,寻找答案。 本书用5个部分共19章的篇幅,系统地阐述作者的观点,并试图回答一直困扰着软件行业的难题——我们应该如何重组软件构造的过程,使其能够如我们所愿地有效运转?部分共4章,对传统的观点提出质疑——软件工程真的是解决软件开发问题的灵丹妙药吗?第2部分共2章,这一部分提出了本书的观点,即以软件工艺的视角看待软件开发。第3部分以7章的篇幅,从不同的角度全面地展现了软件工艺理论所带来的主要变化,以及如何实践这个观念。第4部分共3章,对比了软件工艺与软件工程,并为各自适用的范畴重新划定了界限。第5部分共3章,分别讨论软件开发中的权宜之计和长期问题。 本书荣获2002年度Jo
《项目经理应该知道的97件事》是集体智慧的结晶,是来自世界各地的具有成功项目管理经验的项目经理、软件开发人员和其他职业领域的专家集体创作的。书中,这个领域里活跃分子分享了他们多年来积累的经验和秘诀,作者将诸多成功项目经理的经验提炼为97个方法,读者可以随意捡起其中一个急需的方法。 《项目经理应该知道的97件事》是一本项目经理的实战宝典,项目开发人员、软件经理等项目相关人员也能从中获得有益的指导。
本书是讲解如何利用敏捷开发方法构建高价值软件的实用指南,描述了什么是敏捷开发,以及它能帮助软件项目获得成功的原因。该书还将开发者、项目经理、测试者和客户所需信息整合在一起,以便直接运用。 《敏捷开发艺术》展现了敏捷过程的完整视图,基于作者多年的极限编程(XP)经验,直截了当地提出关于计划、开发、交付和管理等多方面实施的建议。它为开发者和测试者提供实用的技术练习,同样也为非技术背景读者提供了充分的信息。作者还介绍了如何处理敏捷开发中的棘手问题:建立团队成员之间的协作和信任关系。 《敏捷开发艺术》针对下列问题给出明确的答案: 如何采用敏捷开发? 我们是否真的需要结对编程? 应该基于何种度量(metrics)报告? 如何让我们的客户共同参与项目? 我们应该撰写多少文档? 何
本书主要介绍软件测试理论知识和测试技术,并从工程角度展开和贯彻软件测试的技术及其应用的策略方法。全书共分9章:软件测试概述,软件测试策略与过程,黑盒测试与白盒测试的测试用例设计,软件特定环境及应用系统的测试,软件自动化测试基础,软件项目的单元测试、功能测试及性能测试,软件测试管理,基本涵盖了软件测试的全貌。本书突出软件测试基本知识的阐述和技术理论的解析,内容全面,层次清晰,论述简明,反映软件测试的发展脉络及成果和工程运用,把握软件测试学科基础与技术运用的深度和广度,注意将软件测试理论知识、技术与工程实践密切结合,使本书使用者能较快学习到软件测试知识,并掌握实际的软件测试技术工程方法。本书适用于高等院校、高职高专院校、示范性软件学院的软件技术、软件测试专业及计算机相关专业使用,
本书逐步引导你学习一种可重用的、适合任何开发环境的自动化测试工具的创建方法,同时,还为你合理部署工程提供了专家级的指导。本书前两章简述了软件测试技术和当前测试工具存在的缺点,并提出了避免这些缺点需要进行的工作。紧接着进入对自动化测试工具所用的.NET编程技术的讨论,然后,使用这些技术完成了能够自动生成测试脚本以进行单元测试、集成测试以及回归测试的自动化测试工具的开发。在对.NET的介绍中,主要涉及了命名空间、类、Reflection、CodeDom以及与Excel, XML相结合的应用技术,并提供了大量的开发例程,供读者学习和练习。
本书由Docker 公司前服务与支持副总裁James Turnbull 编写,是的Docker 开发指南。本书会指导读者完成Docker 的安装、部署、管理和扩展,带领读者经历从测试到生产的整个开发生命周期,让读者了解Docker 适用于什么场景。书中先介绍Docker 及其组件的基础知识,然后用Docker 构建容器和服务来完成各种任务:利用Docker 为新项目建立测试环境,演示如何使用持续集成的工作流集成Docker,如何构建应用程序服务和平台,如何使用Docker 的API,如何扩展Docker。 本书适合对Docker 或容器开发感兴趣的系统管理员、运维人员和开发人员阅读。
计算广告是一项新兴的研究课题,它涉及大规模搜索和文本分析、信息获取、统计模型、机器学习、分类、优化以及微观经济学等诸多领域的知识。本书从实践出发,系统地介绍计算广告的产品、问题、系统和算法,并且从工业界的视角对这一领域具体技术的深入剖析。 《计算广告:互联网商业变现的市场与技术》立足于广告市场的根本问题,从计算广告各个阶段所遇到的市场挑战出发,以广告系统业务形态的需求和变化为主线,依次介绍合约广告系统、竞价广告系统、程序化交易市场等重要课题,并对计算广告涉及的关键技术和算法做深入的探讨。 无论是互联网公司商业化部门的产品技术人员,还是对个性化系统、大数据变现或交易有兴趣的产品技术人员,传统企业互联网化进程的决策者,传统广告业务的从业者,互联网创业者,计算机相关专业研究
软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。作者邹欣有长达20年的一线软件开发经验,他利用业余时间在数所高校进行了长达6年的软件工程教学实践,总结出了在16周的时间内让同学们通过 “做中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划,并得到高校师生的积极反馈。在此基础上,作者对软件工程的各个知识点和技能要求进行了系统性整理,形成教材。 本书共分17章,对照美国ACM/IEEE2013年新出版的计算机科学教学指导(Computer ScienceCurricula 2013)中的软件工程相关部分,这本教材覆盖了其中大多数Core-Tier1和Core-Tier2的内容。可以说,全书对软件工程内容的覆盖不逊于任何一本现行的教材,同时讲述了业界实践方法。
本书在介绍软件性能测试概念的基础上,结合对实际测试案例的剖析,重点讲解了性能测试实战技术、LoadRunner工具的使用技巧和实践工作中的问题解答。 全书分为4个部分。部分为“基础篇”,介绍了软件测试的基础知识,描述了软件测试中典型的性能测试场景、工具的安装、性能测试的基础概念,介绍了脚本的调试技术,并以典型的B/S、C/S实例讲解了多个协议、事务、集合点、检查点、思考时间、关联、IP欺骗、多机联合测试等技术在工具中的应用。第二部分为“提高篇”,则分别讲解了测试人员最关心的数据库、邮件协议(SMTP)、文件传输协议(FTP)脚本、Sockets协议脚本、RTE协议脚本的开发,为大家提供了广阔的性能测试思路。同时还为.NET平台的测试人员提供了另一种面向代码进行性能测试的手段,详细讲解了.NET插件的应用,并就大家经常遇到的问题提供了几
《Python基础教程(第2版)》包括Python程序设计的方方面面,首先从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句。然后循序渐进地介绍了一些相对高级的主题,包括抽象、异常、魔法方法、属性、迭代器。此后探讨了如何将Python与数据库、网络、C语言等工具结合使用,从而发挥出Python的强大功能,同时介绍了Python程序测试、打包、发布等知识。最后,作者结合前面讲述的内容,按照实际项目开发的步骤向读者介绍了几个具有实际意义的Python项目的开发过程。
《软件开发方法学精选系列:软件工艺》针对软件开发,提出了一些相当棘手和敏感的问题,并给出了颇具争议性的结论:从一个数百年来一直兴旺发达的系统——工艺学中获得启示,寻找答案。 《软件开发方法学精选系列:软件工艺》用5个部分共19章的篇幅,系统地阐述作者的观点,并试图回答一直困扰着软件行业的难题——我们应该如何重组软件构造的过程,使其能够如我们所愿地有效运转?部分共4章,对传统的观点提出质疑——软件工程真的是解决软件开发问题的灵丹妙药吗?第2部分共2章,这一部分提出了本书的观点,即以软件工艺的视角看待软件开发。第3部分以7章的篇幅,从不同的角度全面地展现了软件工艺理论所带来的主要变化,以及如何实践这个观念。第4部分共3章,对比了软件工艺与软件工程,并为各自适用的范畴重新划定了界限。第5部分
本书通过Eiffel和Java实例,阐述了"契约式设计(Design by Contract)"的思想原则和应用方法,帮助读者掌握如何在面向对象软件设计过程中应用契约。 全书分为12章。通过实例探讨了DbC的基本概念,引入了DbC的六大原则和六大准则,展示了六大原则的应用,分析了DbC和继承的关系,介绍了框定规则、DbC的好处和限制、观察者框架中的契约和先验条件检验;最后给出了一个Java范例,并探讨了契约在分析模型中的应用。附录部分是译者专门为C/C 程序员撰写的,提供用C/C 进行契约式设计的指导和建议。 本书适合面向对象软件工程师和面向对象语言程序员阅读。
本书是一本实用的教程,使读者可以按照书中所说的方法,通过多个阶段的演进,来迭代式地构建出软件的架构。书中指出了各种架构工件的运用方式,使人可以把这些清晰、简明、精准而且易懂的工件,恰到好处地运用在实际的应用场景之中。本书简单、明确、易于理解、便于描述,而且足够实用,能够加以执行。可给IT工作者和软件工程专业的学生带来较大的帮助,使他们明白怎样对软件系统进行架构。