软件测试培训教程.ppt
《软件测试培训教程.ppt》由会员分享,可在线阅读,更多相关《软件测试培训教程.ppt(193页珍藏版)》请在课桌文档上搜索。
1、软件测试培训教程,培训内容,软件测试理论基础软件测试流程软件项目运作流程软件测试工作流程软件测试用例设计方法软件缺陷测试的技巧测试工具的选择软件的测试整个过程,软件测试理论基础,测试行业简介,软件测试在软件生命周期中占据重要作用。软件生命周期的每个阶段都应该包含测试从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正。由于测试的重要性和复杂度,它慢慢的独立发展成为一个行业,并且在迅猛发展。在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的 40 以上。而在软件开发的总成本中,用在测试上的开销要占 30 到 50,软件测试概论(概述),1975年,“测试数据选择的原理
2、”(Toward a theory of Test Data)的文章,软件测试才被确定为一种研究方向。1979年,“软件测试时为发现错误而执行一个程序或者系统的过程”1983年,“测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的一种度量”。2002年,“测试是为了度量和提高被测试软件的质量,对测试软件进行工程设计、实施、维护的的整个生命周期过程”。,软件测试概论(行情),国外:A、软件测试在软件公司中占有重要的地位B、软件测试理论研究蓬勃发展,引领软件测试理论研究的国际潮流C、软件测试市场繁荣国内:1、我国著名的软件公司都已经或者正在建立独立的专职软件测试队伍2、国家开
3、始对软件测试职业高度重视和认可(软考中级资格中增加软件评测师),软件测试概论(行情),3、用户对软件质量要求越来越高,通过第三方测试机构的严格测试来判定4、市场需求量不断增大,软件测试工程师的待遇也在不断提高。北京地区的薪资趋势大致如图1-1所示。,图1-1 薪资趋势图,测试工程师的职业发展,软件测试工程师一般有几个方向可走,如图1-2所示。一个理想的测试工程师应该有开发经验,至少要有开发的概念。仅仅发现Bug是测试的初步,而分析出根本原因,却要有很深的功底。,企业需要怎样的测试人才?,一年以上软件测试经验计算机相关专业大专以上学历了解软件工程,熟悉软件测试过程和标准,熟悉配置管理技术和工具能
4、够编制测试计划、设计测试用例、编写Bug报告和测试总结报告、使用测试工具、开发测试脚本熟练使用Windows或Unix或Linux操作系统,企业需要怎样的测试人才?,熟练C、C+、Java、VB、Delphi、C#中的一种以上熟练使用SQL Server或Oracle数据库了解业务领域(ERP、OA、电子商务、税务系统、电信计费系统)熟练掌握至少一种以上的测试工具,如TestDirector、QTP、LoadRunner、Robot进取、合作、表达、沟通、责任心、耐心、认真程度,测试学习路线,对于软件测试初学者,我们要切合实际、循序渐进的学习,在学习中可参考图1-3所示的软件测试学习路线图,从
5、软件测试的理论基础,到项目实战,逐步学习,掌握技术技能,最终胜任软件测试工作。,软件测试由来,调试 在已知错误的情况下,对软件程序代码做出的一系列检查,校正的过程。测试 在未知错误的情况下,检查程序代码是否有问题的过程。区分:软件测试从软件质量保证的角度来检查程序代码是否有误,而调试是为了解决当前已知的错误,调试活动无法替代软件测试活动。,软件测试定义,定义:软件测试就是为了发现错误而审查软件文档、检查软件数据和执行程序代码的过程。软件测试应该是对软件形成过程的文档,数据以及程序进行的测试,而不仅是对程序进行的测试。60%以上的软件错误并不是程序错误,而是分析和设计的错误,提倡软件全生命周期测
6、试的理念。,什么是软件质量,1991年国际标准ISO 9126中定义为:软件满足规定或潜在用户需求的总和。1999年国际标准ISO 14598中定义为:软件特性的总和,软件满足规定或潜在用户需求的能力。2001年国际标准ISO 9126中定义为:软件满足规定用户或潜在用户需求的能力,要从软件在内部,外部和使用过程中的表现来衡量,包含内部质量、外部质量、和使用质量。,软件测试与质量保证的区别,软件质量保证和软件测试是软件质量工程中两个不同层面的工作。质量保证(QA):质量保证的重要工作通过预防,检查与改进来保证软件质量(所关注的是软件质量的检查与测量,着眼于软件开发的过程,步骤和产物)。软件测试
7、:测试过程虽然与开发过程紧密相关但,关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。,软件测试的目的和原则,基于不同的立场,存在着两种完全不同的测试目的:用户角度:希望软件测试暴露软件中隐藏的错误和缺陷,已考虑是否接受产品。软件开发者角度:希望测试成为表明软件产品中不存在错误的过程,验证被测软件已正确的实现了用户的需求,确立人们对软件质量的信心。,软件测试的目的和原则,换言之,测试的目的是:想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。实施测试收集到
8、的测试结果数据为可靠性分析提供了依据测试不能表明软件中不存在错误,它只能说明软件中存在错误,软件测试的目的和原则,软件测试的原则:所有的软件测试都应追溯到用户需求。应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。完全测试是不可能的,测试需要终止。测试无法显示软件潜在的缺陷。也就是说测试只能证明软件存在错误而不能证明软件没有错误。,软件测试的对象,根据软件定义,软件包括程序,数据和文档,所以软件测试并不仅仅是程序测试,软件测试应该贯穿整个软件生命周期中。需求分析,概要设计,详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明,概要设计规格说明,详细设计规格说明以及源程序。,软件
9、测试的对象,为了把握各个环节的正确性,人们需要进行各种验证和确认工作:验证(verification):是保证软件正确实现特定功能的一系统活动和过程,目的是保证软件生命周期中的每一个阶段的成果满足上一个阶段所设定的目标。确认(validation):是保证软件满足用户需求的一系列的活动和过程,目的是在软件开发完成后保证软件,用户需求相符合。,软件测试的对象,软件测试分类,一般的,我们将软件测试活动分为以下几类:黑盒测试、白盒测试、灰盒测试、静态测试、动态测试、手动测试、自动测试,软件测试分类黑盒测试,黑盒测试又叫功能测试、数据驱动测试或基于需求规格说明书的功能测试。该测试类别注重于测试软件的功
10、能性需求。测试工程师无需了解程序代码的内部构造,完全模拟软件产品的最终端用户使用该软件,检查软件产品是否达到了用户的需求。如图1-4所示为黑盒测试实例图。黑盒测试能更好的从用户角度来考察被测系统的功能性需求实现情况。,软件测试分类白盒测试,白盒测试又称结构测试、逻辑驱动测试或基于程序代码内部构成的测试。白盒测试需要测试工程师深入考查程序代码的内部结构、逻辑设计等。就像前面的例子,我们拆开手机,观察手机电路板的设计,液晶屏的构成等。对于白盒测试工程师来说,软件产品的内部结构是敞开的。如图1-5所示是白盒测试示例图。,软件测试分类灰盒测试,灰盒测试介于白盒和黑盒测试之间。灰盒测试一方面考虑程序代码
11、的功能性表现,另一方面,又需要考虑程序代码的内部结构。通俗地讲,灰盒测试就是白加黑。像我们的性能测试,自动化功能测试就是采用了灰盒测试的方法。图1-6是灰盒测试的示例图。,软件测试分类静态测试,定义:静态的、不执行被测对象程序代码而寻找缺陷的过程。在进行静态测试时可采用一些代码走查工具,如QAC+、C+Test等。,软件测试分类动态测试,实际的执行被测对象的程序代码,输入实现设计好的测试用例,检查程序代码运行得到的结果与测试用力中设计的预期结果之间是否有差异,判定实际结果与预测结果是否一致。动态测试有四部分组成:设计测试用例、执行测试用例、分析比较输出结果、输出测试报告。动态测试有三种主要方法
12、:黑盒测试、白盒测试和灰盒测试,软件测试分类手动测试,它是测试人员设计测试用例并执行测试用例,然后根据实际的结果去和预期的结果相比较并记录测试结果,最终输出测试报告的测试活动。可充分发挥测试工程师的主观能动性,将其智力体现在测试工作中,能发现许多的缺陷,但同时又有一定的局限性和单调枯燥性。,软件测试分类自动化测试,定义利用测试工具,模拟用户业务使用流程,让他们自动运行来查找缺陷。优点 快、广泛、可重复性工作缺点只可检查比较主要的问题,如崩溃、死机,无法发现一般的日常错误。编写脚本工作量 也很大,有时会超过手动测试时间。我们要根据实际情况选择或者不选择测试工具,选择使用何种测试工具,不能为了实用
13、工具而可以的去使用工具。,软件测试人员职业要求,从个人素质角度要求测试工程师需要具备以下6种素质:责任心沟通能力团队合作精神耐心、细心和信心时时保持怀疑态度、并且有缺陷预防的意识不断学习的能力,软件测试流程,软件测试流程图,软件测试虽然是软件生存周期的一个独立阶段,但测试工作却渗透到从分析、设计直到编程的各个阶段中(1-7是软件测试所经阶段的一般流程)。需求测试、单元测试、集成测试、系统测试、性能测试、用户测试、回归测试,需求测试,要从以下几个方面考虑需求测试:完整性 正确性一致性 可行性无二义性 健壮性必要性 可测试性可修改性,单元测试,又称模块测试,就是对程序代码中最小的涉及模块单元进行测
14、试。在单元测试中我们主要采用静态测试与动态测试相结合的办法。单元测试要求需要几年的代码编写经验,并且要十分熟悉当前的被测系统,以及该系统是否与其他系统的接口关联情况。单元测试在编码阶段占据非常重要的地位。可以降低编码的错误率,提高编码质量,集成测试,又称组装测试,是将软件产品各个模块组装起来,检查接口是否存在问题,以及组装后的整体功能、性能表现。一般可采用非增式集成方法、增式集成方法(自底向上集成、自顶向下集成、组合方式集成)等策略进行测试,利用一黑盒测试为主,白盒测试为辅的测试方法进行测试。主要解决各个组成但源代码是否符合开发规范、接口是否存在问题,整体功能有无错误、界面是否符合设计规范、性
15、能是否满足用户需求等。,系统测试,将通过集成测试的软件部署到某种较为复杂的计算机永华环境进行测试。目的:通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。这个阶段主要进行的是安装卸载测试、兼容性测试、功能确认测试、安全测试等。采用黑盒测试法,主要考察被测软件的功能与性能表现。,性能测试,性能测试要求被测软件在业务处理速度、处理能力和所耗用的硬件系统资源比率满足用户的需求。不要尝试用手动方式进行性能测试,应当编写一段相应的程序或者使用专门的工具进行,如利用LoadRunner自动化性能测试工具。性能测试相对难度较大,要求测试人员掌握编程语言,精通业务流程,拥有深厚的项目经验
16、。,用户测试,可称为用户确认测试。正式验收前,需要用户对本系统做出一个评价,用户可对交付的系统做测试,并将测试结果反馈回来,进行修改、分析。用户测试环节是被测试软件首次作为正式的系统交友用户使用,用户会根据他们的实际使用情况进行测试、使用,并提出实际使用过程中的问题。用户测试是软件生产流程中的最后质检关。,回归测试,回归测试是经过一段时间以后再回过头来对以前修复过的Bug重新进行测试,看该Bug是否会重新出现。有些时候可采用自动化测试工具来进行回归测试,如利用QTP一般情况下,都由测试工程师手动的执行一千的测试用例。来检查用例通过情况。,软件项目运作流程,软件项目运作图,市场调研,1、主动模式
17、将公司或者企业作为需求接收的被动方,而需求的提出作为主动方。2、被动模式在没有明确的需求提出者时,有公司或企业主动提出给特定使用用户群提供某种产品的模式。市场调研主体:市场人员、销售人员调研方式:客户走访,市场观察,报刊媒体等输出文件:XXX项目市场调研分析报告,可行性研究,以预测为前提,以投资效果为目的,从技术上、管理上进行全面综合分析研究的方法。基本任务:对新开发产品或升级产品从技术经济角度进行全面的分析研究,并对其投产后的经济效益进行预测,在既定的范围内进行方案论证的选择,以便最合理的利用资源,达到预定的社会效益和经济效益。主体:市场人员、销售人员对象:在市场调研阶段产生的XXX项目市场
18、调研分析报告输出文件:XXX项目可行性分析报告,产品立项,在前期的市场调研、可行性研究经过评审可行后,则由需求调研人员牵头,进行产品立项,并进行产品小组的建立,同时制定产品的运作计划,如需求调研、产品设计、产品测试、产品发布等一系列的工作步骤及时间点。立项负责人:市场调研人员工作内容:提交产品立项申请,审批通过后,指定产品计划书,确定产品各个阶段的工作流程及时间进度表。,需求调研,1、主动模式2、被动模式需求调研参与人员:市场人员、开发人员、测试人员等调研对象:客户或假象客户(广泛应用群)输出:需求规格说明书,设计开发,由系统架构师进行系统的概要设计,主要从稳定性、安全性、扩展性、可维持性等方
19、面进行设计。设计人员:系统架构师、项目开发小组输出:项目开发计划、概要设计文档、详细设计文档、数据库文档等,系统测试,按照前期的测试计划,利用测试用例进行系统的功能、性能测试。在经过多次版本的迭代后,完成系统测试,输出测试报告。测试人员:项目测试小组输出:测试计划、测试方案、测试用例、功能测试报告、性能测试报告等,产品发布,经过开发部门、测试部门和其他部门的努力,产品在预定的日期完成,有项目组择日发布。发布人员:项目实施人员、市场部等输出:客户现场项目实施报告等,产品维护,交付使用后,需根据需求调研阶段协议,制定产品维护流程,出现问题需及时解决,直到产品使用废弃或升级,进入新的生命周期。,产品
20、升级,在软件产品使用到一定期限后,可以根据先前的约定进行升级,或根据客户新的需求,再次进行新需求的调研开发等。,软件测试工作流程,测试部门组织结构,1、人员构成 测试主管、测试组长、环境保障人员、配置管理员、测试设计人员、测试工程师,测试部门组织结构,2、测试主管负责测试部门日常管理工作。3、测试组长测试主管根据项目情况,指派合适的测试人员但当测试组长。4、环境保障人员维护整个项目过程中的系统环境,如硬件、软件方便的。由测试人员兼任。5、配置管理员是软件开发过程中的一个重要工作流程面对需求变更、版本迭代、文档审核起到相当大的作用。,测试部门组织结构,6、测试设计人员一般由高级测试工程师担当,负
21、责测试方法设计、测试用例设计及功能测试、性能测试的步骤、流程设计。7、测试工程师执行测试用例,进行系统的功能测试,经过多次版本迭代,完成系统测试。8、技术构成白盒测试技术、黑盒测试技术、自动化测试技术人员、项目管理技术人员,图1-10 测试部技术构成图,测试部门组织结构,9、白盒测试技术人员该职位测试人员需要精通软件开发语言,要有几年的开发经验,能进行底层的代码review,测试桩设计等,同时能够食用百合测试工具对系统的最小功能单元进行测试,找出代码、系统架构方面的缺陷。10、黑盒测试技术人员要求测试人员有一定的软件工程理论、软件质量保证知识。11、自动化测试人员需测试人员掌握软件开发的知识,
22、系统的调优,自动化测试工具,如QuickTest Professional LaodRunner。,测试部门组织结构,12、项目管理技术人员要求掌握一般的项目管理知识,如配置管理、版本控制、评审管理、项目实施与进度控制等。13、资源构成14、硬件资源需要齐备的测试环境,如测试PC机、测试服务器、测试芯片、测试手机等。,测试部门组织结构,15、软件资源测试需要的操作系统、应用软件、管理软件等。如Windows、Linux等操作系统,SQL Server、Oracle等数据库软件,QuickTest Professional LaodRunner等自动化测试工具。16、技术支持当测试人元遇到问题不
23、能解决时,可由兄弟部门给予支持。确保在一个团队合作的环境下,更高效的完成测试工作。,测试工作流程,测试工作流程,1、测试准备阶段测试计划制定测试小组建立,测试工作流程,需求测试启动测试需求提取,测试工作流程,测试用例编写,测试工作流程,2、测试开展阶段搭建测试环境测试组长,可根据说明说中的软件产品运行环境配置要求搭建。测试环境最好与开发环境分开文档引入工作日报、功能测试报告、性能测试报告等模板执行测试根据项目的Bug管理流程,经过多次的版本迭代,完成测试工作。,测试工作流程,3、测试输出阶段测试计划测试方案测试用例测试工程师的工作日报功能测试报告性能测试报告,思考与练习,1、软件测试共有几种模
24、型?具体的内容是什么?相互之间有什么区别与联系?2、简要描述同行评审与阶段评审的区别。3、软件测试与软件开发的关系是什么?4、什么叫软件测试?软件测试的目的是什么?,思考与练习,5、软件测试的一般工作流程是什么?6、软件测试的测试流程是什么?各阶段的工作内容重点是什么?7、当你接到一个测试任务后,你如何开展测试工作?,软件测试用例设计方法,什么是测试用例,测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。,测试用例包含要素,每个具体测试用例都将包括下列详细信
25、息:编制人、审定人、编制日期、版本、用例类型、设计说明书编号、用例编号、用例名称、输入说明、期望结果(含判断标准)、环境要求、备注等。具体可以参考建行测试用例模板,黑盒测试案例设计技术,测试用例设计:将软件测试的行为活动,作为一个科学化的组织归纳。测试用例:设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的执行结果。因为我们不可能进行穷举测试,为了节省时间和资源、提供测试效率,必须从数量极大的可用测试数据精心挑选出具有代表性或者特殊性的测试数据来进行测试。,测试测试用例的好处,在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。测试用例的使用令软件测试的实施
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 培训 教程
链接地址:https://www.desk33.com/p-263295.html