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