资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件测试实用技术软件测试实用技术 与与编著人:编著人:编著人:编著人:李龙李龙李龙李龙 李向函李向函李向函李向函 冯海宁冯海宁冯海宁冯海宁 李向平李向平李向平李向平柴许伟柴许伟柴许伟柴许伟 王传康王传康王传康王传康 陈默涵陈默涵陈默涵陈默涵 韩晨晨韩晨晨韩晨晨韩晨晨 孙平平孙平平孙平平孙平平 软件测试技术研究组软件测试技术研究组 软件测试概述课件软件测试概述课件第第1章章 软件测试概述软件测试概述本章重点讨论以下内容: 软件的相关知识概述;软件的相关知识概述;软件测试的相关知识概述;软件测试的相关知识概述;测试的目的和原则;测试的目的和原则;软件测试的流程;软件测试的流程;软件测试人员的要求;软件测试人员的要求;软件测试的前景。软件测试的前景。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.1 软件的相关知识概述软件的相关知识概述做任何事,应从概念入手,才能少走弯路,才能对此概念相关的问题有一个正确的理解分析,最终解决问题。软件测试的对象就是软件,为了进行软件测试,我们应了解什么是软件?它的内容以及生命周期?软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.1.1 软件的定义软件的定义软件是计算机系统中与硬件相互依存的一软件是计算机系统中与硬件相互依存的一部分,它是包括程序、数据及其相关文档的完整部分,它是包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发,维护和使用息的数据结构;文档是与程序开发,维护和使用有关的图文材料。有关的图文材料。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.1.2 软件工程的内容软件工程的内容软件工程研究的主要内容是软件开发技术和软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。在软件开发技术中,主软件开发管理两个方面。在软件开发技术中,主要研究软件工程方法、软件工程过程、软件开发要研究软件工程方法、软件工程过程、软件开发工具和环境。工具和环境。 软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.1.3 软件的生存周期软件的生存周期软件生存周期概念的出现可以帮助我们较为全软件生存周期概念的出现可以帮助我们较为全面地认识软件开发。在面地认识软件开发。在19981998年制订和公布的国家标年制订和公布的国家标准准GB8566-88GB8566-88计算机软件开发规范中,将软件计算机软件开发规范中,将软件生存周期划分为八个阶段,即:可行性研究和计划、生存周期划分为八个阶段,即:可行性研究和计划、需求分析、概要设计、详细设计、实现、组装测试、需求分析、概要设计、详细设计、实现、组装测试、确认测试、使用和维护。该标准为每个阶段规定了确认测试、使用和维护。该标准为每个阶段规定了任务、实施步骤、实施要求以及完成的标志。对软任务、实施步骤、实施要求以及完成的标志。对软件生存期按此方式做八个阶段的划分大致符合也适件生存期按此方式做八个阶段的划分大致符合也适应瀑布模型。应瀑布模型。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件20世纪90年代初提出了软件工程过程的概念。软件工程过程规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。其目的是为各种人员提供一个公共的框架,以便用相同的语言进行交流。这框架由几个重要的过程组成,这些主要过程含有用来获取、供应、开发、操作和维护软件所用的基本的、一致的要求。该框架还有用来控制和管理软件过程。各种组织和开发机构可以根据具体情况进行选择和剪裁。可在一个机构的内部或外部实施。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.2 软件测试的相关知识概述软件测试的相关知识概述软件测试是软件质量保证的一种手段,测试软件测试是软件质量保证的一种手段,测试的目的就是发现错误以及避免这些错误的发生。的目的就是发现错误以及避免这些错误的发生。那么我们就应知道什么是软件测试、测试的对象那么我们就应知道什么是软件测试、测试的对象是什么以及用什么方法测试。是什么以及用什么方法测试。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.2.1 软件测试的概念软件测试的概念 软件测试是软件工程中的一个环节,是开发项目软件测试是软件工程中的一个环节,是开发项目整体的一部分。软件测试是有计划有组织的,是保证整体的一部分。软件测试是有计划有组织的,是保证软件质量的一种手段,它是软件工程中一个非常重要软件质量的一种手段,它是软件工程中一个非常重要的环节。因此,可以认为它是伴随软件工程的诞生而的环节。因此,可以认为它是伴随软件工程的诞生而诞生的,伴随着软件复杂程度的增加、规模的增大,诞生的,伴随着软件复杂程度的增加、规模的增大,软件测试作为一种能够保证软件质量的有效手段,越软件测试作为一种能够保证软件质量的有效手段,越来越受到人们的重视,软件测试最终目的是使产品达来越受到人们的重视,软件测试最终目的是使产品达到完美。到完美。软件测试方法没有完全标准化和统一化,因为软件产软件测试方法没有完全标准化和统一化,因为软件产业的产品到软件测试有各式各样的软件,这里介绍的业的产品到软件测试有各式各样的软件,这里介绍的软件测试方法可用于多数应用软件的测试。软件测试方法可用于多数应用软件的测试。软件测试不是万能的,不可能发现全部的软件缺陷,软件测试不是万能的,不可能发现全部的软件缺陷,而且软件的功能和性能不是由而且软件的功能和性能不是由软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件 测试决定的,软件测试是有局限性的。测试决定的,软件测试是有局限性的。软件测试是在完成程序设计阶段工作后,经软件测试是在完成程序设计阶段工作后,经程序编码员测试已初步奠定了基础,进一步完成程序编码员测试已初步奠定了基础,进一步完成的测试工作。我们都知道软件要投入运行是否正的测试工作。我们都知道软件要投入运行是否正确无误,这一点极其重要,所以软件要在投入运确无误,这一点极其重要,所以软件要在投入运行前施行测试。未经周密测试的软件贸然投入运行前施行测试。未经周密测试的软件贸然投入运行,将会造成难以想象的后果。行,将会造成难以想象的后果。尽管各个程序在设计完毕以后都一一作过调尽管各个程序在设计完毕以后都一一作过调试,但能否发挥整个系统的功能尚不清楚。例如:试,但能否发挥整个系统的功能尚不清楚。例如:某一程序运行与后续的程序运行是否矛盾?能否某一程序运行与后续的程序运行是否矛盾?能否顺利连续?整个系统的总测试要等全部程序设计顺利连续?整个系统的总测试要等全部程序设计结束且能连续测试时才可进行。结束且能连续测试时才可进行。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.2.2 软件测试的方法软件测试的方法软件的测试方法有3种,即用试题测试、用新旧两个系统作平行处理测试和软件测试自动化工具测试。1.1.用试题检查法用试题检查法2.2.用新旧两个系统作平行处理检查用新旧两个系统作平行处理检查3.3.软件测试自动化工具测试软件测试自动化工具测试软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.2.3 软件测试的任务软件测试的任务软件测试阶段有几方面的任务:(1)制定测试大纲;制定测试大纲;(2)制作测试数据;制作测试数据;(3)单元测试(程序测试);单元测试(程序测试);(4)功能测试;功能测试;(5)性能测试;性能测试;(6)集成测试(子系统测试);集成测试(子系统测试);(7)系统测试;系统测试;(8)验收测试验收测试;(9)写出测试报告书;写出测试报告书;(10)向下阶段工作提交系统运行、维护手册的草案。向下阶段工作提交系统运行、维护手册的草案。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.3 测试的目的和原则测试的目的和原则13.1 测试的目的测试的目的软件测试的目的决定了如何去组织测试。如软件测试的目的决定了如何去组织测试。如果测试的目的是为了尽可能多地找出错误,那么果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。如果测试目的是为了给最前出错比较多的位置。如果测试目的是为了给最终用户提供具有一定可信度的质量评价,那么测终用户提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的商试就应该直接针对在实际应用中会经常用到的商业假设。业假设。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.3.2 测试的原则测试的原则根据上述的测试目的,软件测试的原则应该是:(1)(1)应当把应当把“ “尽早地和不断地进行软件测试尽早地和不断地进行软件测试” ”作作为软件开发者的座右铭。为软件开发者的座右铭。(2)(2)测试用例应由测试输入数据和与之对应的预测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。期输出结果这两部分组成。(3)(3)程序员应避免检查自己的程序。程序员应避免检查自己的程序。(4)(4)在设计测试用例时,应当包括合理的输入条在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。件和不合理的输入条件。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件(5)(5)充分注意测试中的群集现象。充分注意测试中的群集现象。(6)(6)严格执行测试计划,排除测试的随意性。严格执行测试计划,排除测试的随意性。(7)(7)应当对每一个测试结果做全面检查。应当对每一个测试结果做全面检查。(8)(8)妥善保存测试计划,测试用例,出错统计和妥善保存测试计划,测试用例,出错统计和 最终分析报告,为维护提供方便。最终分析报告,为维护提供方便。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.4 软件测试的流程软件测试的流程软件测试的流程一般要考虑3点:软件测试工作总体流程图、软件测试流程关系图和软件测试活动分布图软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.4.1 软件测试工作总体流程图软件测试工作总体流程图软件测试的流程图分为软件测试工作总体流程图、需求阶段测试工作流程、设计与编码阶段测试工作流程、集成测试和系统测试阶段工作流程图。如图1-3,图1-4,图1-5,图1-6所示。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学图1-3软件测试工作总体流程图软件测试概述课件软件测试概述课件软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学图1-4需求阶段测试工作流程软件测试概述课件软件测试概述课件软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学图1-5设计与编码阶段测试工作流程软件测试概述课件软件测试概述课件软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学图1-6集成测试和系统测试阶段工作流程图软件测试概述课件软件测试概述课件1.4.2 软件测试活动分布图软件测试活动分布图软件测试活动分布在软件开发的各个阶段,具体如图1-7所示。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学图1-7软件测试活动分布图软件测试概述课件软件测试概述课件1.4.3 软件测试流程关系图软件测试流程关系图软件测试流程与各个阶段有着密切的联系,如图1-8所示。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学图1-8软件测试流程关系图软件测试概述课件软件测试概述课件1.5 软件测试组织结构和人员的要求软件测试组织结构和人员的要求软件测试是在有关测试组织领导下进行的具体工作,对组织结构和人员有具体的要求。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.5.1 组织结构的要求组织结构的要求软件测试是由组织和人员进行的测试工作,具体的组织结构如图1-9所示。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学图1-9 组织结构图图1-9 组织结构图图1-10软件测试人员的结构图软件测试概述课件软件测试概述课件1.5.2对人员的具体要求对人员的具体要求对人员的具体要求主要有如下几点:1.1.软件测试人员最好具有软件开发经验,理解软软件测试人员最好具有软件开发经验,理解软件工程的知识。件工程的知识。 2.2.软件测试人员需要的知识软件测试人员需要的知识 3.3.软件测试人员需要的素质软件测试人员需要的素质 软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6自动化测试概述自动化测试概述 自自动动化化测测试试是是人人们们在在测测试试工工作作的的过过程程中中,为为了了提提高高工工作作效效率率,不不断断的的对对操操作作方方法法测测试试技技术术及及测测试试工工具具进进行行改改进进,减减少少测测试试人人员员的的手手工工劳劳动动,节省时间和成本。节省时间和成本。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.1自动化测试自动化测试自动化的概念是人们在工业生产的过程中,为了提高工作效率,不断的对操作方法或者技术或者工具进行改进,减少人的手工劳动,节省时间和成本。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.2 自动化测试的过程自动化测试的过程(1)自动化测试需求分析(2)测试计划(3)自动化测试框架的搭建(4)测试用例设计编写测试用例或开发测试脚本,并文档化;(5)测试调试测试(针对自动化测试脚本);(6)评估评估测试结果并改进测试过程。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.3 自动化测试工具选型的原则自动化测试工具选型的原则实现自动化测试,测试工具的选择很重要,而目前还没有一个单一的测试工具能用来完成所有的测试需求。测试工具品种不一,功能性能各异。对自动测试工具的适当选择,很大程度上决定了该工具能否获得相应的投资回报软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.4 自动测试的优点自动测试的优点能执行更多更频繁的测试,使某些测试任务的执行比手动方式更高效,可以更快地将软件推向市场;能执行一些手动测试困难或不可能做的测试;更好地利用资源,利用晚上或周末空闲的设备执行自动化测试;将任务自动化,让测试人员投入更多的精力设计出更多更好的测试用例,提高测试准确性和测试人员的积极性;自动测试具有一致性和可重复性的特点,而且测试更客观,提高了软件的信任度。但自动化测试仍然存在着一定的局限性:不能取代手工测试,不可能自动化所有的测试。如测试只是偶尔执行,或待测系统经常变动、不稳定,测试需要大量的手工参与时,就不适宜采用自动测试。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件自动测试工具本身不具有想象力,只是按命令执行。而手工测试时测试执行者可以在测试中判断测试输出是否正确,以及改进测试,还可以处理意外事件。自动测试对测试质量的依赖性较大,在确保测试质量的前提下,实施自动化测试才有意义。自动测试在刚开始执行时,工作效率并不一定高于手动测试,只有当整个自动测试系统成熟,且测试工程师熟练掌握测试工具后,工作效率才会随着测试执行次数的增加而提高。自动测试的成本可能高于手工测试。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.5 自动化测试技术自动化测试技术(1)录制回放(2)脚本技术(3)数据驱动(datadriven)的自动化测试(4)关键字驱动(keyworddriven)的自动化测试(5)业务驱动软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.6 自动化测试技术的比较自动化测试技术的比较自动化测试技术的比较如表1-2所示。表1-2自动化测试技术的比较表软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.7 自动化测试的级别自动化测试的级别(1)级别1捕获和回放(2)级别2捕获、编辑和回放(3)级别3编程和回放(4)级别4数据驱动的测试(5)级别5使用动作词的测试自动化软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.8 自动化测试方案选择需要考虑自动化测试方案选择需要考虑的方面的方面1、项目的影响:自动化测试能否帮助你的项目进度、覆盖率、风险?2、复杂度:自动化是否容易实现,包括数据和其他环境的影响。3、时间:自动化测试的实现需要多少时间?4、早期需求和代码的稳定性:需求或早期的代码是否能证明是在范围内变化的?5、维护工作量:代码是否能长期保持相对稳定?功能特性是否会进化?6、覆盖率:自动化测试能否覆盖程序的关键特性和功能?7、资源:测试组是否拥有足够的人力资源、硬件资源和数据资源来运行自动化测试。8、自动化测试的执行:负责执行自动化测试的小组是否拥有足够的技能和时间去运行自动化测试?9自动化测试管理软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.9 自动化测试要点自动化测试要点1测试的范围2测试时间的准备工作3录制/回放4对测试脚本的维护软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.10 自动化测试适用测试阶段的自动化测试适用测试阶段的先决条件先决条件(1)自动化测试适用的测试阶段(2)自动化测试执行的先决条件。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.11 自动化测试工作中的重点自动化测试工作中的重点1.搭建测试环境、测试场景?2.测试用例3.测试结果验证4.自动化测试的基本流程软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.12自动化测试执行需要解决的问自动化测试执行需要解决的问题题(1)测试工具的选择(2)测试用例脚本编写(3)测试脚本的管理软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.6.13自动化测试工具简介自动化测试工具简介(1)测试管理类工具(3)功能测试工具(2)性能测试工具软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件1.7 软件测试的前景软件测试的前景1软件测试学科2软件测试工程师需求3软件测试工程师未来的发展空间软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件请您解答:1.软件具有几个特点,请详细说明。2软件的分类方法都有哪些?3.软件测试的概念4.软件测试的方法有哪些?5.请简要说明软件测试阶段的任务。6.说明软件测试人员需要的知识结构。7.软件测试人员需要的素质都有哪些?请简要说出。软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件谢谢 谢谢软件测试技术研究组软件测试技术研究组 中国信息大中国信息大学学软件测试概述课件软件测试概述课件
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号