2000年刚建立测试团队时,测试和开发人员是一种对立的关系,开发人员觉得软件测试是挑他们的毛病、和他们过不去,有一个简单的故事可以说明这一点。当时,条件有限,测试人员和开发人员共享一台小型机服务器,测试人员发现了一个缺陷,告诉某个开发人员,而他趁测试人员不注意回到自己座位,偷偷地修改了代码、处理了那个缺陷,然后跑到测试人员身边,说“你把那个Bug再现给我看?”。结果,可想而知,这个测试人员无论如何也不能复现那个Bug(缺陷)。
几年以后,这种情况不会再出现了,不是因为条件好了,可以买很多服务器,将测试环境和开发环境分离开来,而是观念改变了。虽然也的确购买了几百台服务器(不用小型机,越来越多采用Linux系统),将测试环境和开发环境分离开来,在客观上避免那类“悲剧”的发生,但是观念远远比机器重要。拥有正确的观念,就比较容易创建良好的质量文化,开发人员的态度也随之发生变化,已经深深认识到:
- 软件测试是帮助自己,测试人员在是找产品定义、设计和实现的缺陷,不是找自己的缺陷,是对事、不是对人。
- 测试人员越快地发现缺陷,项目才能尽早一点结束。
- 测试人员尽可能地发现更多的Bug,遗留在产品中的Bug就会越少,产品的质量就会越高。
- 测试人员和自己(开发人员)的工作都是为了相同的目标——按时、高质量的发布产品。
- 水平越高的开发人员,所写的程序中的Bug越少,而不只是使用别人不知道的技巧。
现在,有的开发人员向我抱怨,是不是换了一个新人测试他写的模块?因为这个测试人员发现的缺陷比以前那个测试工程师发现的缺陷少多了。开发人员希望更多的缺陷被发现出来,绝不希望缺陷被客户发现。
今天,我们高兴看到开发人员和测试人员心往一处想。从项目启动的第一天起到需求和设计的评审阶段,从后期的缺陷修正到产品维护——在整个软件生命周期中,开发人员和测试人员愉快地合作、共同努力,将软件产品的开发效率和质量推到一个新的高度。一方面,开发人员主动介绍自己对产品特性是如何理解的、又如何实现这些特性,主动邀请测试人员参与代码的走查、对新发现的Bug快速响应。另一方面,测试人员提前将设计好的一些测试用例交给开发人员,让开发人员先根据这些测试用例验证正在开发的功能特性,测试人员还愉快地帮助开发人员再现某个缺陷。
所有这些,显示了软件测试在国内越来越受到重视,软件测试领域正迎来朝气蓬勃的新气象。当更多的人投入到测试行业时,需要一本实践性强、富有启发的专业书,指导大家如何进行测试,出色地完成测试任务。
这本新书《全程软件测试》就承载这样一个任务,从项目启动开始,一步一步地教会大家如何做好测试工作,包括建立测试组、计划测试、设计测试用例、选择测试工具、开发测试脚本、执行测试和编写测试报告等。这也是将多年来所积累的软件测试经验与技术实践,以及不断思考所获得的体会和升华,借此机会与大家分享。
为了写这本书,事先也做了一些尝试,尽量收集大家对软件测试内容需求的反馈,于是在CSDN的
个人博客 上演义了30回的软件测试 (
软件测试演义——中高级系列(序)),受到了大家的好评。也许就因为这个,在CSDN建博客不到8个月,就成为当年(2006年)十大最具价值的博客之一 (
迟到的感谢——2006最有价值博客的候选人(& 个人回顾), 新浪报道
CSDN最有价值博客TOP10 )。
此后,也和许多软件测试人员进行面对面的交流,如
技术布道——全程软件测试 <script src="http://blog.csdn.net/count.aspx?ID=1752666&amp;Type=Rank" type="text/javascript"></script>
此前,曾写过一本
《软件测试方法和技术》教材,在比较短的时间内印刷了好几次,也颇受欢迎。但那本书,在很大程度上是从理论、概念上讲解软件测试的方法和技术,适合在校学生使用。而这本书重实践、重应用,适合软件公司的测试经理、工程师和想进入这个软件测试行业的人员等学习。
全书共十二章,以两个案例为背景,以项目向前发展的实际过程为路线图,全面展开软件测试的思想、流程、方法、技术和最佳实践。全书力求做到方法有效、技术实用,
集中讲解实际测试工作,没有单纯的概念介绍,将概念准确穿插在测试进程活动之中。
- 第1章 介绍测试项目启动后要做好哪些准备、如何掌控项目背景和要素,为测试计划打下坚实的基础,包括了解软件的质量需求、深刻理解究竟什么是软件测试和测试过程和开发过程之间的关系,确定软件测试组长和制定测试规范。
- 第2章 测试计划是焦点,主要讨论了测试人员在需求评审的作用、确定软件功能和非功能性的系统测试测试需求、各个阶段的测试任务、测试范围分析和工作量估计、测试资源需求和团队组建、测试里程碑和进度安排,基于测试风险分析来制定有效的测试策略。
- 第3章 从系统架构的审查,然后深入到系统组件设计、设计规格说明书、界面设计和系统部署设计等一系列的审查。在系统部署设计中,详细讨论了系统部署逻辑设计、物理设计、可用性设计、可伸缩性设计和安全性设计的验证。
- 第4章 围绕测试设计展开讨论,先从测试用例框架的设计入手,然后逐步涉及测试用例的构成、设计方法、评审、功能测试用例和系统测试用例的设计,其中对各种功能设计方法、故障转移和系统安全性的测试用例设计做了更细的介绍。
- 第5章 测试工具的选择和脚本的开发是本章的主题。在这一章,对测试工具的优势、实现原理等进行了分析,介绍了测试工具选择的标准、评估报告和误区,给出了开源的或商业的测试工具的完整解决方案,包括详细介绍了Selenium和Jmeter的使用,最后说明如何进行测试脚本录制、回放、开发和重构。
- 第6章 展示测试和编程的交互过程,主要经历程序代码的审查、程序的动态测试两个环节。对于白盒测试方法及其应用、单元测试工具等,在这一章做了详细介绍。
- 第7章 开始进入功能测试的执行阶段,并着重自动化功能测试的执行、如何优化测试环境的组合、如何有效地创建测试套件和软件缺陷的报告,包括测试执行之前的准备、测试环境的建立和设置、UI测试、回归测试等。
- 第8章 介绍如何进行国际化测试和本地化测试,包括本地化的功能测试、数据格式验证、UI验证、配置和兼容性验证和翻译验证。
- 第9章 内容是围绕系统测试执行来展开,进一步了解系统测试,详细分析了负载测试的加载方式、负载参数、执行布局和结果报告,从而更好地理解如何做好性能测试,并相继介绍了Web安全性测试、容错性测试、兼容性测试、安装测试等。
- 第10章 内容相对简单,包括4个方面:验收测试、文档测试、α测试和β测试、产品后继版本的测试。
- 第11章 内容丰富,涉及测试管理的思想和系统、测试用例的管理、测试自动化的管理、缺陷跟踪和分析、测试进度和风险的控制、测试覆盖度和结果分析等。例如单就缺陷分析,缺陷生命周期、缺陷状态的跟踪、缺陷的分析、累计缺陷趋势分析等。
- 第12章 最后一章是总结和思考,认清现实、制定原则,然后用辨证统一的方法去看各种测试方法的对立统一体,如白盒测试方法和黑盒测试方法、静态测试和动态测试、手工测试和自动化测试、有计划测试和随机测试的等,从而真正悟出软件测试方法的应用之道。这章还分享了测试实践中所积累的、大量的最佳实践,并以实用的测试成熟度模型作为结尾。
分享到:
相关推荐
是德科技提供的解决方案和工具,如PathWave系统设计软件、电子系统级设计工具等,旨在帮助航天工程师在设计、仿真、生产、测试和运营等阶段提高效率,降低风险,确保卫星任务的顺利完成。这些工具支持高保真模型的...
系统测试计划是软件开发过程中的关键环节,它详细规划了对整个系统或系统模块...通过遵循这个计划,广东智冠信息技术股份有限公司能够更有效地管理和控制其系统的测试过程,确保最终交付的系统满足客户和业务的需求。
- **目的**:旨在通过规范化的流程,提升软件开发的可控性,确保高质量、高效率地完成软件产品的开发。这包括了对开发周期的严格控制,对软件质量的严格要求,以及对开发成本的有效管理。 - **对象**:涵盖了所有...
验收合格意味着软件项目正式完成,并且甲方满意地接收了软件产品。这标志着双方合作的圆满结束。 综上所述,计算机软件开发合同书是一个全面的技术法律文件,确保了软件开发项目在合作过程中的规范性、透明度和公正...
乙方作为软件开发的实施方,肩负着完成软件开发、提供源代码和技术资料、制定项目实施方案、处理技术问题、进行测试验证、编写技术文档、提供培训等多重责任。乙方必须确保项目经理和团队成员的稳定性,以避免对项目...
通过这样一份全面细致的合同,甲乙丙三方能够在接下来的项目实施过程中,面对可能出现的诸多挑战和困难时,有所依循,有序应对,最终确保浙江大学信息化试点示范项目软件开发活动的圆满完成,实现项目的价值目标。
林光耀担任软件测试的角色,对系统进行全面的功能验证;黎国明作为开发人员,参与实际代码编写;张欣专注于网页设计,提升用户体验;林东同样承担开发任务,与黎国明合作完成系统功能;方圆作为项目经理,协调团队...
在IT行业,项目验收确认书作为关键文件,起着记录和证明IT项目完结状况的作用。...在实际操作中,项目验收确认书应根据项目的具体需求和规模,制定详尽内容,并严格执行,以确保项目的顺利完成和圆满结束。
例如,教学软件需确保操作简单易懂,内容符合教育大纲,能够有效地辅助教学。 在实际应用中,项目团队应根据这个模板来定制适合自己项目的验收方案,确保所有关键点都得到了充分考虑。通过严谨的验收流程,可以降低...
学员可以在任何时间和地点利用软件进行学习,有效地利用碎片化时间进行备考。无论是通勤途中、等待朋友的闲暇时刻,还是下班后的休息时间,都可以变成学习的宝贵时刻。这种随时随地的学习方式,不仅让备考变得不再...
在项目管理领域,项目收尾阶段是整个项目生命周期中的关键一环。这个阶段,项目从筹划、执行进入到了完成和结束的环节,...通过周密的人员安排和未来发展建议,项目管理得以圆满完成,也为团队的长远发展奠定良好基石。
在进行计算机专业毕业设计与论文撰写时,学生们通常需要遵循一套严谨的规范和流程,以确保他们的研究成果...通过学习和参照合肥师范学院提供的资料,学生们可以更有效地完成这项挑战,为自己的大学生涯画上圆满的句号。
1. 需求分析:在进行管理得方法和手段方面,最有效得工具就是电脑管理了系统实现运动,会的信息记录和存储,进行全面自动管理,大幅度提高了信息管理得效率,使得运动会能够更加圆满得完成。 知识点:需求分析是...
只有在甲方书面确认验收合格后,才可视为乙方圆满完成了合同要求,从而甲方才会支付剩余款项。这种条款的设置,既保证了甲方的最终利益,也促使乙方在整个开发过程中持续关注项目质量。 三、合同金额与付款方式的...
在开发过程中,我遇到了很多技术问题,但通过查找专业的网站和论坛,终于解决了这些问题,并圆满完成了我的毕业设计。 医院门诊挂号系统的开发对社会的影响是非常大的,因为它可以提高用户的选择,方便对广大用户...
随着试用期的圆满结束,我深感荣幸有机会向公司管理层汇报本人在试用期间的工作情况及对未来的规划。以下是我个人转正述职报告的详尽内容。 首先,角色的转变意味着责任的加重。在试用期间,我从一名普通的班组骨干...
通过这一年的工作,我们不仅圆满完成了运维任务,而且积累了丰富的经验和知识,不断优化运维流程,提升了服务质量和团队的专业能力。这得益于信息技术部的指导,以及公司整体健康的发展环境。未来,我们将继续努力,...
最终,这些设计项目的完成不仅为学生个人的学术生涯画上了一个圆满的句号,也为他们即将开启的职场生涯打下了坚实的基础。同时,这些设计项目也为后来的研究者提供了宝贵的参考资料,推动了学术界的发展。在这个意义...
在这一年中,技术部与各个部门紧密协作,圆满完成了信息化建设、信息安全保障以及系统研发等关键任务,充分履行了技术支持的角色。 1. **工作展示**: - 技术支持:部门及时响应各部门的电脑软硬件、邮件、网络、...
基于机器学习的问答推荐算法正是解决这一问题的有效途径,它能通过对历史数据的学习,为用户提供个性化的、高匹配度的问题建议,提高信息检索效率。 二、研究目标 1. 设计并实现一个基于机器学习的模型,该模型...