软件测试验收测试.ppt
软件测试方法和技术 - Ch.7验收测试,主讲教师:郭晓燕,第六章回顾,系统集成的模式和方法 功能测试 回归测试 非功能性测试压力测试、容量测试和性能测试安全性、可靠性和容错性测试,第七章 验收测试,7.1 验收测试的过程和主要内容7.2 产品规格说明书的验证7.3 用户界面和可用性测试7.4 兼容性测试7.5 可安装性和可恢复性测试7.6 文档测试7.7 验收测试报告和用户验收测试,什么是验收测试,验收测试(Acceptance Test):在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动它是技术测试的最后一个阶段,也称为交付测试。,7.1 验收测试的过程和主要内容,前提: 系统或软件产品已通过了系统测试的软件系统。测试内容:验证系统是否达到了用户需求规格说明书(可能包括项目或产品验收准则)中的要求,测试试图尽可能地发现软件中存留的缺陷,从而为软件进一步改善提供帮助,并保证系统或软件产品最终被用户接受。主要包括易用性测试、兼容性测试、安装测试、文档(如用户手册、操作手册等)测试等几个方面的内容。,测试步骤,制定测试计划,测试项,测试策略及验收通过准则,并经过客户参与的计划评审。建立测试环境,设计测试用例,并经过评审。准备测试数据,执行测试用例,记录测试结果。分析测试结果,根据验收通过准则分析测试结果,作出验收是否通过及测试评价。测试项目通过;测试项目没有通过,并且不存在变通方法,需要很大的修改;测试项目没有通过,但存在变通方法,在维护后期或下一个版本改进;测试项目无法评估或者无法给出完整的评估。此时必须给出原因。如果是因为该测试项目没有说明清楚,应该修改测试计划。 提交测试报告,验收标准和注意事项,验收测试完成标准:完全执行了验收测试计划中的每个测试用例。在验收测试中发现的错误已经得到修改并且通过了测试或者经过评估留待下一版本中修改。 完成软件验收测试报告。注意事项:必须编写正式的、单独的验收测试报告验收测试必须在实际用户运行环境中进行由用户和测试部门共同执行。如公司自开发产品,应由测试人员,产品设计部门,市场部门等共同进行。,7.2 产品规格说明书的验证,产口规格说明书的审核 从客户的角度和立场进行审核工作。 检验套用标准的正确性,不要和行业规范相抵触。 审查、研究同类产品。 验证产品规格说明书的完整性、准确性、一致性、合理性等特性。产口规格说明书的验证 已经实现的特性标识为通过。 特性没有实现,报告bug并在报告中体现。 特性基本实现,但与产品说明书内容不一致,报bug并在报告中体现。 特性基本实现,但存在一些问题或错误。,什么是适用性( usability)?,Easy to discover Easy to learn Easy to use Availability,Microsoft的适用性测试,180 适用性测试工程师 25 适用性测试实验室,7.3 用户界面和可用性测试,用户界面的7个要素: 符合标准和规范。 直观性。 一致性。 灵活性。 舒适性。 正确性。 实用性。易用性测试没有具体量化的指标,主观性较强。,符合标准和规范,通常标准是已经确立的,多数用户已经熟悉并接受了这些标准和规范、或已经认同了这些信息所代表的意义。例:如果软件在某一个平台上运行,就需要把该平台的标准和规范作为产品规格说明书的补充内容,在建立测试案例时和产品规格说明书一样作为依据,直观性和一致性,直观性:- 首先了解所需的功能或期待的响应应该明显,并在预期的地方出现。- 其次要考虑用户界面的组织和布局是否合理。一致性:- 包括软件本身的一致性,以及软件与其他软件的一致性。,灵活性,用户喜欢可以灵活选择的软件,软件可以选择不同的状态和方式,完成相应的功能。但灵活性也可能发展为复杂性,太多的状态和方式的选择增加的不仅仅是用户理解和掌握的困难程度。多种状态之间的转换,增加了编程的难度,更增加了软件测试人员的工作量。例:,舒适性、正确性、实用性,舒适性: 恰当的表现、合理的安排、必要的提示或更正能力等是要考虑的因素,包括容错处理和性能。正确性: 正确性的问题一般都很明显,比较容易发现。 实用性: 实用性不是指的是软件本身是否实用,而仅仅指的是具体特性是否实用。大型软件的开发或周期较长经过几次反复的软件开发中容易产生一些没有实用性的功能。,舒适性例子,简单性,1-click Next Next Next ,7.4 兼容性测试,兼容性包括:硬件兼容(配置测试)软件之间兼容 数据之间兼容,举例,7.4 配置测试,硬件个人计算机部件外设接口可选项和内存设备驱动程序理想情况是所有生产厂家都严格遵照一套标准来设计硬件,那么使用这些硬件的软件就会毫无疑问地正常运行。但遗憾的是,标准并没有被严格遵守。有时,标准是相当松散的称为规范。如果开始准备进行软件的配置测试,就要考虑哪些配置与程序的关系最密切。,7.4 配置测试,判断缺陷是配置问题而不仅仅是普通缺陷最可靠的方法在另外一台有完全不同配置的计算机上一步步执行导致问题的相同操作,如果缺陷没有产生,就极有可能是特定的配置问题,在独特的硬件配置下才会暴露出来。,7.4 配置测试,谁来修复配置缺陷要找出问题所在(1)软件可能包含在多种配置中都会出现的缺陷。(2)软件可能只包含在某一个特殊配置中出现的缺陷。(3)硬件设备或者其设备驱动程序可能包含仅由软件揭示的缺陷。(4)硬件设备或者其设备驱动程序可能包含一个借助许多其它软件才能看出来的缺陷尽管它可能对测试的软件特别明显。无论问题出在哪里,解决问题都是开发小组的责任。,7.4 配置测试,配置测试工作量可能非常巨大。假设我们有一种新的3D游戏,画面、音效,、联机对战,还可以打印游戏细节。需要考虑各种图形卡、声卡、网卡和打印机进行配置测试。市场上大致有336种显卡,210种声卡,1500种网卡,1200种打印机。则测试组合的数目就是336×210×1500×1200,总计上亿种。减少麻烦的答案是等价类划分。需要找出一个方法把巨大无比的配置可能性减少到尽可能控制的范围。由于没有完全测试,因此存在一定的风险,但这正是软件测试的特点。,7.4 配置测试,配置测试具体步骤1、确定所需的硬件类型;联机注册:调制解调器和网络通信2、确定有哪些厂商的硬件、型号和驱动程序可用;流行度、等价类划分驱动程序:操作系统附带的、硬件附带的、硬件或操作系统公司网站上提供的最新的3、确定可能的硬件特性,模式和选项4、将确定后的硬件配置缩减为可控制的范围一种方法是把所有配置信息放在电子表格中,列出生产厂商、型号、驱动程序版本和可选项。软件测试员和开发小组可以审查这张表,确定要测试哪些配置。,7.4 配置测试,5、明确与硬件配置有关的软件唯一特性弄清楚软件中哪些功能与硬件配置密切相关6、设计在每一种配置中执行的测试用例:以测试打印功能,针对打印机为例从清单中选择并建立一个测试配置;启动软件;打开文件configtest.doc;确认显示出来的文件正确无误;打印文档;确认没有错误提示信息,而且打印的文档符合标准;将任何不符之处作为软件缺陷记录下来。7、在每种配置中执行测试仔细记录并向开发小组报告结果,必要时还要向硬件生产厂商报告。8、反复测试直到小组对结果满意为止,7.4 配置测试,购买硬件:购买每一样硬件则费用很高昂。(1)只买可以或者将会经常使用的配置;(2)与硬件厂商联系,看能否租借甚至赠送某些硬件;(3)向全公司的人询问其家里是否有硬件。明确硬件标准了解硬件说明书的一些细节,有助于做出更多清晰的等价划分决定。对其它硬件进行配置测试根据从设备使用者、项目经理或者销售人员那里获得的信息来建立硬件的等价划分;开发测试用例;收集所选硬件;执行测试;,7.4 配置测试,小结进行配置测试是软件测试新手经常被指派的工作,因为它容易定义,是基本组织技能和等价划分技术的入门;是与其它项目小组成员合作的任务;是经理快速验证结果的手段。缺点是有可能很繁杂。,7.4 兼容性测试,软件兼容性测试是指验证软件之间是否正确地交互和共享信息。要考虑的几个问题:软件涉及要求与何种平台(操作系统、Web浏览器或操作环境)和应用软件保持兼容?如果要测试的软件是一个平台,那么设计要求什么应用程序在其上运行?遵守何种定义软件交互间的标准或规范?软件使用何种数据与其他平台和软件交互信息? 从项目管理的角度出发,使平台清单在满足客户要求的前提下尽可能的小是十分重要的,否则将会给编码和测试带来巨大的工作量。,29,7.4 兼容性测试,操作系统测试软件在不同操作系统下是否能够正确显示与运行。市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。用户究竟使用哪一种操作系统,取决于用户系统的配置。兼容性问题:同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。 如:在Windows的不同版本下, JAVA跨越的不同平台下等。,30,7.4 兼容性测试,浏览器测试测试软件在不同厂商的浏览器(不同版本下)下是否能够正确显示与运行;浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、JavaScript、 ActiveX、 plug-ins或不同的HTML规格有不同的支持。ActiveX是Microsoft的产品,是为Internet Explorer而设计的,JavaScript是Netscape的产品,Java是Sun的产品等等。框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。,例: 设计测试矩阵表,每一个浏览器和版本支持的特性上都有细微的差别,在不同的操作系统上表现也有所不同。,7.4 兼容性测试,数据兼容性软件使用何种数据与其他平台和软件交互和共享信息 在应用程序间共享数据有利于增强软件的功能。兼容性好的产品应该可以支持并遵守公开标准;运行用户与其他软件传输数据例子文件保存和读取:文件格式文件的导入和导出:格式转换剪切、复制和粘贴:与剪切板的数据DDE、COM和OLE,7.4 配置测试,考虑软件与硬件之间的兼容性测试对象在于硬件,考虑的内容计算机(品牌机),各个厂家的品牌机的配置是千差万别的配件,在兼容机大行其道的今天,我们不得不考虑各种配置的问题,这要比仅仅考虑计算机来得更加麻烦,这个时候得靠等价类划分来考虑这些问题了接口 USB,PCI,ISA这些都属于考虑范围外部设备 打印机等等设备驱动程序实际工作中根据软件的属性和质量要求来选择其中的某些来测试,向前和向后兼容,向后兼容是指可以使用软件的以前版本。 向前兼容指的是可以使用软件的未来版本。,Backward & forward compatible,Must do,Had better design,Load old dataImport old dataExchange new data,多版本的测试,一个庞大而又艰巨的任务,需要对所有可能的软件组合等价分配,验证软件之间正确交互的最小有效集合。 通常我们的做法是: 将软件分类。例如:字处理,电子表格,数据库,图形处理,游戏等。从每种类型中选择部分测试软件。 按软件的流行程度选择较流行的软件。 按年份,选取一定年份内的程序和版本。,Impact of testing Multiple versions,Popularity: Top 100 or 1000 based on sales dadaAge: <3-year oldType: break into types: DB, Word, Graph, Manufacturer,Criteria to Choose programs,7.5 可安装性和可恢复性测试,可安装性测试: 系统软件安装 应用软件安装 服务器的安装 客户端的安装 产品升级安装,可安装性测试,安装测试注意事项: 是否需要专业人员安装。 安装说明书有无对安装环境做限制和要求。 过程是否简单、易掌握。 过程中是否有明显的、合理的提示信息。 是否会出现不可预见或不可修复的错误。 安装程序是否占用系统资源与原系统冲突,是否会影响原系统安全性。 软件安装的完整性和灵活性。 许可证号码与注册号码的验证。 升级安装后原有程序是否可正常运行。 卸载测试。,可恢复性测试,恢复测试主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误或重新启动系统。 恢复测试首先要通过各种手段,让软件强制性地发生故障,然后验证系统是否能尽快恢复。 对于自动恢复需验证重新初始化、检查点、数据恢复和重新启动等机制的正确性; 对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。,7.6 文档测试,软件文档已成为软件的一个重要组成部分,而且种类繁多,对文档的测试也变得必不可少。 文档的种类。 联机帮助文档或用户手册; 指南和向导; 安装、设置指南; 示例及模板; 错误提示信息; 用于演示的图像和声音; 授权/注册登记表及用户许可协议; 软件的包装、广告宣传材料; 等等。,怎样进行文档测试,好的文档能达到提高易用性、提高可靠性、降低技术支持的费用的目的,从而提高了产品的整体质量。 非代码的文档测试主要检查文档的正确性、完备性和可理解性。验证正确性验证完备性验证可理解性软件驱动的文档还得像程序一样运行起来测试。,7.7 验收测试报告和用户验收测试,测试是指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为版本)进行测试,试图发现错误并修正。经过测试调整的软件产品称为版本。紧随其后的测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用版本,并要求用户报告异常情况、提出批评意见。然后软件开发公司再对版本进行改错和完善。验收测试报告,也称为发布报告(Release Report),Q & A,