软件工程及软件方法学
-
用户故事与敏捷方法(美)科恩 著,石永超,张博超 译,李国彪,滕振宇 审校《用户故事与敏捷方法》详细介绍了用户故事与敏捷开发方法的结合,诠释了用户故事的重要价值,用户故事的实践过程,良好用户故事编写准则,如何搜集和整理用户故事,如何排列用户故事的优先级,进而澄清真正适合用户需求的、有价值的功能需求。《用户故事与敏捷方法》对于软件开发人员、测试人员、需求分析师和管理者,具有实际的指导意义和重要的参考价值。 -
探索式软件测试(美)惠特克 著,方敏,张胜,钟颂东 等译谈论软件质量的方法有很多,感兴趣的听众也有很多。本书是为软件测试人员而写的,写的是一种我认为比其他任何缺陷都重要的特殊缺陷:即逃过所有各种检测手段而最终存在于发布产品中的缺陷。 任何一个软件公司发布的产品都有缺陷。缺陷是怎么引入的?为什么没有在代码审核、单元测试、静态分析或其他面向开发人员的活动中把它们找出来?为什么自动化测试没有找出它们?那些缺陷有些什么特质使其能逃过手工测试? 什么是找出产品缺陷的最好方法? 本书针对的正是最后一个问题。在第2章“手工测试”中,我提出了一个观点:因为用户是在使用软件过程中找到这些缺陷的,所以我们的测试人员也应该通过使用软件来找到它们。无论使用自动化测试和单元测试,还是其他一些手段,都难以接触到这些缺陷。无论测试人员怎么实现自动化测试,即使全部都自动化,这些缺陷还是会处处作怪,并在产品中屡屡重现从而伤害最终用户。 问题在于很多现代化手工测试实践都缺乏目的性,随机性强且重复性强。有些人可能还会加上一条:手工测试无聊透顶。本书试图为手工测试流程提供一些指导、技术和规划。 在第3章“局部探索式测试法”中,针对测试人员在运行任何一个测试用例时都需要做出很多细微的战术层面决定,我给出了详尽的指导建议。测试人员必须决定对于某个特定的输入字段应该使用什么输入值,或者给应用程序使用的文件提供什么数据。在测试过程中,必须做出许多这样的小决定。在缺乏指导的情况下,这些决定常常是未经分析且不是最优化的。在向一个文本框内输入一个数时,选择整数4难道就胜过整数400么?应该用长度为32字节的字符串还是长度为256字节的字符串?选择一个而不选另一个是有一定道理的,这一切都取决于处理该输入的软件的具体情况。鉴于测试人员每天都要做出数百次这样的小决定,在这里提供有效的指导建议显得至关重要。 在第4章“全局探索式测试法”中,针对测试人员在编制测试计划和测试用例设计时需要考虑哪些广泛的战略性问题,我也给出了一些指导建议。这些技术都基于“漫游测试”(tour)概念,如同一个导游带领旅游团队参观大都市中一系列著名景点一样,这种漫游测试法指出的路线可以指导测试人员如何探索软件的方方面面。这里的探索并不一定是随机的或者漫无目的的。本书所记录的方法已经成为微软和谷歌的许多测试人员日常工作的一部分。诸如“地标测试法”(landmark tour)和“极限测试法”(intellectual’s tour)等词汇已经列入了手工测试人员的标准词汇表中。测试技术以前确实被称作“漫游”,但是用整个旅游业来隐喻软件测试,并在测试实际发布的应用程序时,大规模使用这些隐喻的名称,还属于本书的一个创举。 全局探索式测试法对于制定完整的测试策略给出了指导建议。例如,如何创建一组特性覆盖率(feature coverage)较高的测试用例?如何确定是否要在一个单独的测试用例中使用多个特性?如何创建一个完整的测试用例套件(test case suite),从而使软件尽可能地满负荷工作以便能找到更多重要的缺陷?这些都是设计测试用例和保证测试套件质量时必须解决的重大问题。 在第5章“混合探索测试技术”中,通过把探索式测试和传统的脚本或基于场景的测试技术相结合,进一步扩展了漫游的概念。我们将讨论如何修改各种端到端场景(end-to-end scenario)、测试脚本(test script)或用户故事(user story),来创造更多的变化情况,以激发传统静态测试技术查找缺陷的潜力。 在第6章“探索式测试的实际应用”中,来自微软不同产品组的五位客串作者提供了他们使用漫游技术后得到的经验报告。这些作者和他们的团队在真实的开发环境中,把漫游方法应用在真实的软件上。他们记录了各自是如何使用漫游、修改漫游甚至创建自己的漫游的。这些内容来自于使用漫游法测试重要的关键软件产品的测试人员,属于真正的第一手资料。 最后,我用两章内容总结前面各章所讨论的内容。在第7章“漫游测试的棘手问题”中,描述了我认为的测试中最困难的几个问题,以及如何将那些具有高度针对性的探索式测试方法融入一个更广泛的解决方案中。在第8章“软件测试的未来”中,我更进一步讨论在未来几年中,诸如虚拟化、可视化甚至电视游戏之类的技术将如何改变测试的面貌。附录包括我对测试职业生涯的看法,收集了我以前一些深受读者喜爱的文章(加入了一些新的注解),其中一些文章已经无法在其他地方看到了。 写这本书对我来说是一种享受,我希望你阅读本书也是一种享受。 -
领域驱动设计(美)埃文斯 著领域模型使开发人员可以表达丰富的软件功能需求,由此实现的软件可以满足用户真正的需要,因此被公认为是软件设计的关键所在,其重要性显而易见。但讲述如何将领域模型用于软件开发过程的优秀实用资料却不多见。本书正是这一领域最著名的作品,受到众多业界大师的赞美和推介,广受读者好评。要通过创建领域模型来加速复杂的软件开发,就需要利用大量最佳实践和标准模式在开发团队中形成统一的交流语言;不仅重构代码,而且要重构代码底层的模型;同时采取反复迭代的敏捷开发方法,深入理解领域特点,促进领域专家与程序员的良好沟通。针对这些内容,本书结合真实项目,系统地介绍了领域驱动开发的目标、意义和方法,充分讨论了复杂系统的建模与设计问题。本书将指导面向对象开发人员、系统分析人员和设计人员合理地组织工作,各有侧重、彼此协作,有条不紊地进行复杂系统的开发,帮助他们建立丰富而实用的领域模型,并由此创建长期适用的优质软件。 -
架构实战—软件架构设计的过程(英)伊乐斯,克里普斯 著,蔡黄辉,马文涛 译本书从基本原理入手,介绍软件架构设计过程中涉及的一些概念、流程、方法、用到的工作产品及可重用的资源,从第6章开始,通过介绍一个具体的案例来阐述如何定义需求、创建逻辑架构、创建物理架构。在第10章“进阶”中,作者补充说明了架构师和软件开发项目其他方面的关系,后面又说明了各种软件开发项目可能存在的困难及相应的处理方法。本书理论结合实践,介绍了一些可以应用到整个或部分的架构设计流程中的最佳方法。不管你是一位资深的架构师还是一位有志于成为架构师的初级使用者,通过阅读本书都能从中获益。 -
软件自动化测试成功之道陈能技 编著自动化功能测试是目前测试领域的发展方向,自动化功能测试能有效地降低测试成本、提高测试效率和测试覆盖面。《软件自动化测试成功之道:典型工具·脚本开发·测试框架和项目实战》结合项目实践全过程,对自动化测试前期准备阶段、测试框架搭建方法、自动化测试的过程管理进行了详细讲解,并介绍了各种自动化测试技巧,包括GUI控件的测试技巧、自动化脚本编写技巧等,以便让读者更好地学以致用。《软件自动化测试成功之道:典型工具·脚本开发·测试框架和项目实战》分成两篇,第一篇是项目实践篇,主要介绍如何借助测试工具有效地开展功能自动化测试项目,包括自动化测试的计划、设计、脚本开发和维护的全过程管理。第二篇是实用技巧篇,主要介绍如何基于流行的自动化测试工具QTP设计测试框架,除介绍几个常用的框架外,还将重点介绍笔者设计的自动化测试框架QTestWare。《软件自动化测试成功之道:典型工具·脚本开发·测试框架和项目实战》适合自动化测试工程师、自动化测试项目管理者、项目经理、希望从事自动化测试工作的测试人员,以及希望了解自动化测试框架搭建技术的测试人员阅读。 -
软件工程初级教程陶华亭 主编《软件工程初级教程》汇总了作者多本教材的精华,融入了多年的教学经验,吸收了软件工程学科较新内容编写而成。在内容和体系结构上都有了新的调整和补充,不失为一本实用教材。软件工程内容分为软件工程管理和软件工程技术两大部分。传统的教材把理论部分放在前面,工程技术部分放在中间,最后介绍软件工程管理内容,这样往往在教学中会忽略软件工程管理部分的内容,使教学过程不好安排。本教材在体系上做了一些调整,将软件工程理论和软件工程管理部分的内容放在前面,逐步由理论深入到实践,连贯性较强; 避免了进入软件工程技术甚至实践部分以后,再回头讲软件工程管理内容时,教学过程不易组织。本教材在介绍了软件工程基本概念和原理的基础上,着重对从结构化方法到面向对象方法的过渡进行了合理安排,强调从方法论和软件工程思想的角度理解这种过渡,指出了结构化方法的优点、缺陷和面向对象方法的优势,并从内容上加大了面向对象方法的比重。书中安排了贯穿全程的实例,通过面向对象的建模过程实践,使得针对面向对象的方法的教学过程更具有可操作性。课程进行到后半学期,对于面向对象的部分可以安排适当的上机实践,本教材对这一部分提供了较详细的建模操作实例。《软件工程初级教程》实例丰富,注重对学生实践能力的培养,对初次开设软件工程课程的计算机及相关专业本科层次、大专层次都适用。 -
实训教程·常用工具软件实训教程部绍海,黄琼,刘忠云 主编本书主要面向职业技术院校,并被列入全国职业教育“十一五”规划教材。全书共15章,首先介绍了常用工具软件的下载、安装、汉化和卸载,然后分别介绍了文件处理工具、个性化电脑工具、图像处理工具、多媒体播放和修复工具、多媒体制作和编辑工具、网络浏览和传输工具、网络通信工具、电子书阅读和制作工具、翻译与英语学习工具、光盘刻录与虚拟光驱工具、电脑安全防护工具、系统测试与优化工具、磁盘管理工具,以及行业管理软件的使用方法。本书具有如下特点:(1)满足社会实际就业需要。对传统教材的知识点进行增、删、改,让学生能真正学到满足就业要求的知识。(2)增强学生的学习兴趣。从传统的偏重知识的传授转为培养学生的实际操作技能,让学生有兴趣学习。(3)让学生能轻松学习。用实例(实训)讲解相关应用和知识点,边练边学,从而避开枯燥的讲解,让学生能轻松学习,教师也教得愉快。(4)包含大量实用技巧和练习,网上提供课件下载。本书可作为中、高等职业技术院校,以及各类计算机教育培训机构的专用教材,也可供广大初、中级电脑爱好者自学使用。 -
工程师突击唐骏华 编著《工程师突击:SAPABAP实用程序开发攻略》根据国内外实施SAP系统的企业对专业员工的培训步骤及技能要求编写,以介绍SAP R3 ABAP/4开发技术为重点,内容涵盖SAP基础知识、ABAP语法详解、ABAP中高级专业开发工具的使用等。通过《工程师突击:SAPABAP实用程序开发攻略》的学习,读者能够逐步深入SAP编程并掌握SAP开发技能,快速成长为SAP实用型人才。《工程师突击:SAPABAP实用程序开发攻略》以实例讲解为主,包括具体的需求分析、程序执行效果展示、完整代码解析等。这些实例均为SAP商务应用开发中的常用实例,既可作为入门起步之用,又可作为高级进阶的参考。《工程师突击:SAPABAP实用程序开发攻略》不但适合于SAP初学者、SAP中高级开发工程师及咨询顾问,也可作为企业及学校SAP培训参考图书。 -
软件维护中风险分析与故障管理策略研究毛澄映 著《软件维护中风险分析与故障管理策略研究》在广泛调研软件维护活动中现有管理策略和方法等研究成果的基础上,在软件变更管理和风险分析方面开展研究,以软件需求变更和代码模块变更为切人点,综合运用人工神经网络、矩阵数值分析等手段量化地评估变更给系统带来的影响;在软件故障管理方面,运用Rough集推理技术和灰色系统理论实现对故障的有效定位和故障数目的预估计。《软件维护中风险分析与故障管理策略研究》可以作为软件工程、计算机科学与技术等信息类学科的研究生教材,也可供有关科研人员和工程技术人员参考。 -
软件质量保障原理与实践(印)戈德博尔 著,周颖 等译软件质量保障作为一种专业技术已经变得越来越重要。《软件质量保障原理与实践》从实际的角度深入分析了软件质量保障的各个主题,详细讨论了软件质量保障在信息技术领域的重要作用,起关键作用的各种软件质量保障技术(例如,技术评审、验证和确认技术、测试和度量技术等),软件质量管理系统的实现,企业中成功进行软件质量保障需要的关键技术,存在的问题以及人员的组织和安排等一系列的问题。总之,《软件质量保障原理与实践》不但比较清晰地阐述了SQA的基本原理和概念,而且把这些与企业的实际例子结合起来阐述,起到了很好的效果。《软件质量保障原理与实践》是迄今为止关于SQA主题的比较完整和全面的书籍,可供软件工程师、IT专业人员、质量保障管理人员、质量认证人员以及计算机科学与技术、软件工程等相关专业的研究生和本科生学习参考。
