1软件测试技术2第四章执行测试4.1测试执行概述4.2执行系统测试4.3执行单元测试4.4执行集成测试34.1测试执行概述测试执行过程建立测试环境执行测试用例记录测试结果管理软件错误报告测试结果44.2执行系统测试系统测试是针对整个产品系统进行的测试。系统测试的目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。系统测试的对象不仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。7测试人员如何熟悉被测软件?学习已有的测试指南阅读已有的工程文档请专业人员演示应用程序输入随机数据和命令执行所有操作选项尝试程序的运行状态8软件运行存在三种环境:开发环境、测试环境、用户环境。开发环境往往与用户环境有所差别。一个规划良好的测试环境总很接近于用户环境。测试环境在测试计划和测试用例中事先定义和规划。4.2.2建立系统测试环境9建立系统测试环境建立测试环境包括:硬件环境和软件环境。硬件环境指测试必需的服务器、客户端、网络连接设备,以及打印机/扫描仪等辅助硬件设备所构成的环境;软件环境指被测软件运行时的操作系统、数据库及其他应用软件构成的环境。测试环境如何规划?分析用户环境中哪些配置可能对软件有所影响,在此基础上建立测试环境。10某软件是一个运行在Windows下的桌面应用软件,可以完成数据文件备份与恢复功能。该软件支持Windows98及以上的各个Windows版本,可以将文件备份到CD刻录机、DVD刻录机、USB移动硬盘。建立系统测试环境11建立系统测试环境软件环境操作系统:不同版本的Windows系统,例如包括Windows98,Windows98SE,WindowsME,Windows2000Professional,Windows2000Server,WindowsXPHomeEdition,WindowsXPProfessional等。其中,WindowsXPHomeEdition、Windows2000Professional包括了英文和简体中文版本。硬件环境多种CD、DVD刻录机。如三种CD刻录机(IDE接口内置式,SCSI接口内置式,USB接口外置式),带有CD刻录功能的DVD-Combo,DVD刻录机Usb移动硬盘12建立系统测试环境建立测试环境需要考虑:计算机平台操作系统浏览器软件支持平台外围设备网络环境数据环境其他专用环境13计算机平台计算机平台可以考虑:CPU速度、内容容量、硬盘、显示卡等。一般在软件需求中列出软件对平台的最低配置要求。在搭建测试平台时,一般需要考虑:最低配置常见配置理想配置14操作系统软件一般都声明支持的操作系统Windows平台本身有多个版本,而每个版本都包括了几个系列,以及不同语言。一般在某个版本中等级低的系列上能够通过测试的软件,能够通过高级别系列的测试。测试人员需要了解不同版本操作系统之间的差异。Linux平台有不同公司开发的更多的版本。测试时首先关注软件所要求的Linux核心版本。其他可能的操作系统:Unix、MacOS、嵌入式操作系统。15浏览器基于Web的应用系统,需对各种流行的浏览器环境进行测试。不同的操作系统下,浏览器有不同选择。Windows平台下常用:IE、FireFox、谷歌浏览器等Linux平台下Opera、netscape、Mozilla等16软件支持平台典型的支持平台主要包括:Java虚拟机、数据库、应用服务器、第三方控件、浏览器插件。一般需要测试没有安装软件要求的第三方控件和浏览器插件,软件的表现。用户环境中某软件与被测试系统不兼容;或该软件与被测试系统软件不兼容。17外围设备不同的软件系统需要不同的外围设备。在多种外围设备上进行测试,需要大量的时间和费用。一般选择设备的几款主流型号进行测试。网络环境网络访问方式网络速度防火墙19如何配置测试环境?搭建测试环境,需考虑配置的优先级使用的频度或范围失效的可能性能最大限度模拟真实环境20建立测试环境的步骤安装应用程序安装和开发测试工具(如果需要)设置专用文件,包括将这些文件与测试所需的数据相对应建立与应用程序通信的实用程序配备适当的硬件以及必要的设备21测试执行过程建立测试环境执行测试用例记录测试结果管理软件错误报告测试结果22一旦测试人员遇到软件存在的问题,应马上填写错误报告单。4.2.3报告测试结果好的错误报告应该具有以下特征:书面的已编号的简单的、易于理解的可重现的具有合适的分类信息23一、错误的分类错误可以按照不同的方式进行分类:按照错误等级分类按照错误处理优先级分类按照错误原因分类24软件错误等级按照错误的严重程度、影响程度的不同,软件错误可以被分为不同的等级,也可称为“错误严重程度”、“错误严重等级”。所谓“严重性”指的是一个错误在系统中的影响,主要包括以下五种:致命错误:影响全局的死机、通信中断、重要业务不能完成。严重错误:规定的功能没有实现或不完整或产生错误结果;设计不合理造成性能低下,影响系统的运营;使系统不稳定、或破坏数据等。一般错误:不影响主要功能使用,或者有替代的方式完成用户需要的功能。轻微错误:通常指界面拼写错误或用户使用不方便等小问题或需要完善的问题。改进建议:改进建议一般指软件中值得改良的地方。25程序员在面对一系列错误的时候,一般情况下,需要先修改错误等级高的,但并不都如此。优先级与严重程度有一定关系,但也不完全相同。有可能某个严重错误的修复优先级是低,也有可能某个轻微错误的修复优先级是高。“优先级”抓住了在严重程度中没有考虑的重要程度因素。严重性等级由测试人员决定,而优先级则由项目经理设置。错误处理优先级26错误处理优先级别一般分为:立即解决:要求开发人员立即修复。此错误阻止进一步测试,需要立即修复。高优先级:此错误在产品发布前必须修复,否则会影响软件的发布和使用正常排队:应该修复。如果时间允许,应该修复此错误低优先级:考虑修复。此错误即使不修复,也可以发布。27根据错误发生的原因对错误进行分类可以帮助软件项目开发组总结开发过程的薄弱环节,给今后的软件项目开发提供经验数据。软件错误产生的原因主要包括:需求分析不完善造成软件不满足用户要求软件设计错误造成运行错误程序员编写代码过程中引入错误错误原因28还可以按照错误的发生位置进行分类。便于识别出经常出问题的软件模块,确定责任人。通过错误发生位置的统计可以帮助软件项目组进行软件质量分析,便于今后进一步的质量改进。错误严重性与数量的关系2930二、错误报告的内容对错误的描述主要包含以下内容:错误报告基本信息错误描述测试环境说明其它附件31错误报告基本信息主要包括:错误编号(每个软件错误都需要有一个唯一的编号)软件名称和版本号(错误所属的软件名称、版本号)错误的严重程度(用1~5或者公司规定的其他形式)错误概要(描述错误的标题)报告人发现错误的时间承办人(由项目经理指定相关程序员修改错误)错误的优先级(一般由项目经理来指定)错误状态(描述错误所处的处理状态)注释32错误编号:B1.1.1程序名:测试管理工具TMT版本标识:V1.0严重性:严重错误概要:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx错误描述:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx报告人:xxxx报告日期:2005-04-18承办人:xxxx处理日期:2005-04-20优先级:1状态:开放注释:错误报告实例33错误报告中的常见问题:在报告中说“不好用”所报告内容毫无意义在报告中用户没有提供足够的信息在报告中提供了虚假信息所报告的问题是由于用户的过失而产生的所报告的问题是由于其他程序的错误而产生的所报告的问题是由于网络错误而产生的34报告软件错误的基本要求是准确、简洁、完整、规范。三、报告错误的技巧编写高效的报告,需要做到以下几点:要重点说明让问题重现的步骤和方法分析错误,用最少的步骤描述写出的报告应该完备、易读而且没有敌意不要轻易猜测错误的原因进行演示和使用文件附件立即记录错误不要遗漏35如何描述软件错误?36在错误报告中,核心的内容是“错误描述”。优秀的错误描述主要由三个基本部分组成:摘要、重建步骤和隔离。“摘要”又叫主题或标题,是关于错误的一两句话的描述,强调它对顾客或系统用户的影响。“重建步骤”提供了如何重复这个失败的精确描述。“隔离”是指测试人员收集的结果和信息,以确认错误确实是一个问题,并标识那些影响到错误表现的要素。37测试人员在报告错误时需注意以下方面:描述清楚、精确、简洁内容详细描述事实而不是推测报告错误如何重现妥善处理间歇性错误在递交前检查38其它需要注意的方面:每一个步骤中,尽量只记录一个操作,这样将容易重复操作步骤。根据错误类型,选择图像捕捉的方式。为了直观的观察错误现象,通常可以附加提供错误出现的界面。附加必要的特殊文档。如果打开某个特殊的文档而产生的错误,则必须附加该文档,以再现错误。当一个错误发生的时候,测试人员应立刻停止正在做的任何操作并记录39错误报告分析(一)错误ID:B1.1.1程序名:文本编辑工具Note版本标识:V1.0严重性:一般错误概要:在Solaris、Windows98和Mac上运行Note,一些数据在设置成某种格式时会出现显示异常。错误描述:重建步骤:1)我在Windows98下打开Note程序,编辑一个已存在的文件,该文件有多行,且包括多种字体格式;2)我选择文件打印,工作正常;3)我新建并打印一个包含图形的文件,工作正常;4)我新建一个新文件;5)接着我输入一连串随机文本;6)高亮选中几行文本,选择右键弹出菜单中Font选项,并选择Arial字体;7)文本显示变得异常;8)我试着运行了三次,每一次都出现同样问题;9)我在Solaris上运行了6次,没有看到任何问题;10)我在Mac上运行了6次,没有看到任何问题;隔离:1)我尝试选择其他字体形式,但只有Arial有这个问题出现。然而,该问题可能仍然在我没有测试的其他字体下出现。报告人:xxxx报告日期:2005-01-18承办人:xxxx处理日期:2005-01-20优先级:3状态:开放注释:40错误报告分析(二)错误ID:B1.1.1程序名:文本编辑工具Note版本标识:V1.0严重性:一般错误概要:Note程序在使用Arial字体时出问题错误描述:重建步骤:1)打开Note程序;2)键入一些文本;3)选择Arial字体;4)文本显示异常。报告人:xxxx报告日期:2005-01-18承办人:xxxx处理日期:2005-01-20优先级:3状态:开放注释:41错误报告分析(三)错误ID:B1.1.1程序名:文本编辑工具Note版本标识:V1.0严重性:一般错误概要:Windows98下Note在新建文件中选择设置Arial字体时出现乱码。错误描述:重建步骤:1)打开Note创建一个新文件;2)随意输入两行或多行文本;3)选中一段文本,在右键弹出菜单中选中格式选项,选择Arial;4)文本被改变成无意义的乱写的符号;5)尝试了三次该步骤,同样的问题出现了三次。隔离:1)保存新建文件,关闭Note,重新打开该文件,问题仍然存在;2)如果在把文本改成Arial字体前保存文件,该错误不会出现;3)该错误只存在于新建文件时,不出现在已存在的文件;4)该现象只在Windows98下出现;5)该错误不会出现在其他字体改变中。报告人:xxxx报告日期:2005-01-18承办人:xxxx处理日期:2005-01-20优先级:3状态:开放注释:42报告中需要重现错误吗?43四、错误的重现为什么需要重现错误?如果不能重现错误,程序员可能不能理解到底发生了什么。程序员需要知道错误发生的步骤,对程序进行动态调试,以修复问题。如果程序员不能亲眼看到问题,有时候程序员会对软件错误报告置之不理。44所有的错误都能重现吗?45当测试人员发现一个错误时,他所看到的只是现象,并不是根源。当所发现的错误不能被重现时,测试人员应重复发现错误时的操作环境和操作