软件测试实用教程-方法与实践(第2版)课件 ch09系统测试_第1页
软件测试实用教程-方法与实践(第2版)课件 ch09系统测试_第2页
软件测试实用教程-方法与实践(第2版)课件 ch09系统测试_第3页
软件测试实用教程-方法与实践(第2版)课件 ch09系统测试_第4页
软件测试实用教程-方法与实践(第2版)课件 ch09系统测试_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章系统测试高等学校计算机类系列教材软件测试实用教程——方法与实践01概述集成测试的定义单元测试和集成测试主要是针对软件系统的一部分(如某个函数单元、某个类或某个接口)展开测试,但软件只是计算机系统中的组成部分之一,计算机硬件、外围设备、操作系统、网络等共同构成了软件运行的环境,因此,在将软件正式交付给用户使用之前,必须对以上内容进行测试,确保它们在实际运行时能相互配合并正常工作。系统测试就是将经过良好的集成测试的软件系统,作为整个计算机系统的一部分,与计算机硬件、外部设备、支持软件、数据及人员等其他系统元素结合在一起,在实际使用(运行)环境下对计算机系统进行一系列的严格测试来发现软件中的潜在缺陷,保证系统交付给用户之后能够正常使用。集成测试的定义系统测试与单元测试和集成测试的主要区别在于如下两方面:(1)系统测试不仅限于软件。为保证交付给用户的软件产品能够在实际的用户使用环境下运行正常,系统测试是涉及软件、硬件、网络等多方面因素的过程,而单元测试和集成测试主要针对软件进行测试。(2)系统测试不能省略。一般地,对于开发人员来说,系统测试是产品交付给用户前的最后一个测试环节,占有重要的地位。当面临紧迫的交付压力时,单元测试和集成测试很可能被取消,但系统测试只能被压缩,不可能完全不做系统测试。系统测试主要是针对需求规格说明中所描述的系统功能和非功能需求进行测试,对应的测试活动包括功能测试、性能测试、安全性测试、兼容性测试等,下面分别展开讨论。02功能测试这类系统的核心是数据处理,可从实体关系模型和对数据的操作这两方面展开功能测试。(1)从实体关系模型设计测试系统的实体关系模型中明确描述了系统的所有实体及各实体间的逻辑关系,分析如下:①1对1:此时仅需一类测试用例,创建1对1的对象实例即可;②1对多:可结合边界值和等价类测试,分别创建1对1、1对2、1对多这三类对象实例;③多对1:与1对多相似,分别创建1对1、2对1、多对1这三类对象实例;④多对多:应参照1对1、1对多、多对1这三种情况分别创建对象实例。以数据为中心的系统(2)从对数据的操作设计测试对数据的操作主要分为四类:增加(Add)、删除(Delete)、查找(Search)和修改(Modify),对应的测试用例设计策略各有不同。针对增加操作,应从如下方面展开测试:①是否能够正常实现增加操作;②针对唯一性字段,测试输入重复的情况,判断系统是否会报错,并特别注意大小写和输入内容包含空格的情况;③针对必填项,测试是否有提示信息;④测试增加成功后能否方便地看到增加的结果;⑤测试增加一项或一组数据是否对其他数据产生影响,以及该影响是否符合用户需求。以数据为中心的系统针对删除操作,应从如下方面展开测试:①针对一项或一组对象的删除操作能否正常实现;②测试是否会错误地删除不存在的对象,或未选中的对象;③测试删除之前是否有提示信息,以及删除成功后能否方便地看到删除的结果;④测试删除一项或一组数据是否对其他数据产生影响,以及该影响是否符合用户需求。以数据为中心的系统针对查找操作,应从如下方面展开测试:①测试系统能否支持简单查询和高级查询;②测试系统是否针对存在和不存在的内容均给出正确的查找结果;③测试系统能否针对合理和不合理的条件进行正确的处理;④测试系统能否将查找结果与删除、修改等操作方便地结合起来。针对修改操作,应从如下方面展开测试:①测试是否会错误地修改不存在的对象,或未选中的对象;②测试通过明确修改某些信息后能否确保所有隐含信息得到正确的修改;③参照增加操作需测试的各个方面展开测试。以活动序列为中心的系统这类系统的核心是活动序列,包括系统输入、输出、状态及触发状态变迁的事件,可结合黑盒测试和白盒测试的思想设计测试。(1)结合黑盒测试的思想设计测试针对系统输入和输出,考虑对所有输入和输出的覆盖测试,具体内容包括:①测试所有可以接收输入和进行输出的硬件设备;②测试所有的软件输入条件和输出结果;③测试输入(输出)条件的边界情况④测试输入(输出)条件的典型情况⑤测试所有不合理的输入情况。以活动序列为中心的系统(2)结合白盒测试的思想设计测试针对系统状态和触发状态变迁的事件,可考虑对所有状态及事件的覆盖测试,可采用高层设计模型描述系统状态,包括有限状态机、对系统主业务分析所得的业务流程图等。而针对系统状态,可采用场景法,或借鉴独立路径测试方法,使用各种覆盖指标展开测试,例如:①状态覆盖(即语句覆盖)。每个状态对应一条“语句”,测试至少应覆盖到每个状态。②状态变换覆盖(即判定覆盖)。触发事件的发生引发状态变迁,对应“语句”执行,功能测试应覆盖到每次状态变迁。③触发事件覆盖(即条件覆盖)。每个状态的变迁可能由多个触发事件满足某个组合条件时所引起,功能测试应覆盖到每个触发事件的产生。④业务覆盖(即路径覆盖)。从初始状态开始,多个状态变迁将形成不同路径,功能测试应覆盖所有从初始状态到终止状态的业务执行路径。03性能测试性能测试(PerformanceTesting)就是对软件的运行性能指标进行测试,判断系统集成之后在实际的使用环境下能否稳定、可靠地运行。软件性能主要考虑系统的时间和空间性能。其中,时间主要指软件的一个具体事务的响应时间。性能测试性能测试的目标是判断被测系统是否满足预期的性能需求,以及寻找可能存在的软件性能问题,定位性能瓶颈并解决问题。围绕上述目标,性能测试的主要内容包括常规性能测试、压力测试、负载测试、可靠性测试、大数据量测试等。(1)常规性能测试常规性能测试是指软件在正常的软、硬件环境下运行,不向其施加任何压力的性能测试。这里所说的正常环境通常指用户实际使用的一般环境,并模拟生产运行的业务压力。(2)压力测试压力测试(StressTesting)是指持续不断地给被测系统增加压力,直至被测系统被压垮,以确定系统能承受的最大压力。压力测试应注意累积效应问题。(3)负载测试负载测试(LoadTesting)通常是让被测系统在其能忍受的压力极限范围内(或临界状态下)连续运行,来测试系统的稳定性。其目的是找到系统的处理极限,为系统调优提供依据。但负载测试侧重于压力持续的时间,压力测试则更加强调施加压力的大小。性能测试(4)可靠性测试可靠性测试(ReliabilityTesting)是在给被测系统加载一定业务压力的情况下,使系统运行一段时间,以此来测试系统是否稳定。进行可靠性测试通常采用24×7(24小时×7天)的方式来连续运行系统,一般采用平均错误时间间隔(MeanTimeBetweenFailure,MTBF)来衡量被测系统的可靠性。该值越大,系统越稳定。(5)大数据量测试大数据量测试可分为两种:①针对某些系统存储、传输、统计、查询等业务进行大数据量的独立数据量测试;②与压力测试、负载测试、疲劳测试等并发测试相结合的极限状态下的综合数据量测试。04安全性测试安全性测试(SecurityTesting)用于检验系统对非法侵入的防范能力。在安全性测试的过程中,测试人员扮演非法入侵者的角色,采用各种方法试图突破系统的安全防线。常见的手段包括:尝试通过外部手段截获或破译系统口令,使用甚至专门开发能够瓦解防守的客户软件来攻击系统,试图破坏系统的保护机制,故意引发系统错误,导致系统失败,企图趁系统恢复的时候侵入系统等。安全性测试根据安全性的不同级别,安全性测试的目标可分为应用程序级别和系统级别的安全性测试。主要应考虑的内容包括:(1)资源,即业务功能或数据。应列出所有应被保护的业务功能和数据,确定各种功能及数据对合法用户和潜在侵入者具有的不同价值,并分析对其进行利用的非法方法。(2)风险,即可能导致损失或伤害的事件。应列出所有可能的风险,并区分意外风险、自然风险和人为风险,并分析风险的发生概率和导致的严重后果。(3)安全性控制,即针对风险的保护措施。应针对所有风险给出保护性方案,重点关注人为风险和偶然的系统误操作。围绕上述内容,典型的安全性测试方法包括:(1)功能验证。对涉及安全的软件功能,如权限管理、系统加密和认证等进行测试,验证这些功能是否有效。安全性测试(2)程序数据扫描。通过内存测试发现诸如缓冲区溢出之类的漏洞。该法用于确保软件在运行过程中数据不会遭到破坏,否则容易导致缓冲区溢出类型的攻击。(3)静态测试。对源代码进行安全扫描,根据程序中的数据流、控制流等信息,将之与特有的软件安全规则库进行匹配,找出代码中的潜在安全漏洞。该法可在编码阶段找出可能存在安全风险的代码,便于早期解决潜在安全问题。(4)动态测试。以人工方式或通过使用自动化工具模拟黑客对应用系统进行攻击性测试,找出运行时所存在的安全漏洞。该法真实有效,可找到更加严重的系统安全漏洞。05兼容性测试与硬件的兼容性测试对于项目软件而言,其对应的软、硬件环境相对固定,仅需在最终用户的使用环境下测试即可,一般不需要特别地考虑与硬件的兼容性测试。而对于面向一般用户的通用软件来说,与硬件的兼容性不可忽略。理论上被测软件应与硬件广泛兼容,但受到成本的限制,仅需重点支持部分硬件设备。RonPatton给出了一般性的建议:(1)确定所需的硬件类型。若需要网络应用,则应考虑对多种网络配置的测试。若是图形应用程序,则应考虑对各种显示器、显卡和声卡的测试,虽然现在的显卡和声卡多直接集成在主板上,但这丝毫不会降低对其进行测试的必要性。(2)确定可用的硬件型号和驱动程序。针对每种硬件类型,选择当前主流型号。对于驱动程序,考虑操作系统自带的驱动程序、硬件自带的驱动程序,以及网站上提供的驱动程序。与硬件的兼容性测试(3)确定可能的硬件特性、模式和选项。每种硬件都有多种模式和选项,应针对每种选项,测试最低配置选项和推荐配置选项。(4)将明确后的硬件配置缩减到可控范围内。主要考虑当前流行的、推出时间最新、最有实力的生产厂商等因素。(5)明确使用硬件配置的软件唯一特性。充分利用等价划分方法,按照与硬件的交互方式将软件特性进行等价类划分,针对每类特性测试与硬件的兼容情况。(6)为每种硬件配置设计并执行测试用例。(7)重复配置测试直至达到规定的标准。与其他软件平台和应用程序的兼容性测试与软件的兼容性测试可从两方面来考虑。(1)向前和向后兼容。向后兼容指软件应与其以前的版本兼容。例如,采用旧版本所做的模型或保存的数据,在新版本中必须能正常打开。特别是数据应能在不同版本间方便地转换。当然,仅考虑对最近几个版本向后兼容即可。(2)多个应用程序的测试。被测软件应与其他应用程序具有广泛兼容性。一般地,可利用等价划分方法,按照软件的种类、推出年份、流行程度等因素,选择与被测软件关系最密切、最重要的应用程序,并选择不同版本组合展开兼容性测试。例如,采用B/S架构的Web应用应与当前市面上流行的多种网页浏览器软件的多个发布版本保持兼容,最典型的莫过于IE6、IE7、IE8。数据共享的兼容性测试被测软件应符合公开的标准和规范,允许其与其他相关应用程序之间方便地交换数据:(1)文件应能正常保存和读取数据,包括从硬盘、U盘等各种存储介质读取和存入;(2)文件应能正确导入和导出,包括Word、Pdf、XML等多种用户要求的格式;(3)能支持剪切、复制及粘贴操作;(4)支持软件不同版本间的数据转换,对转换前后的数据进行比较、分析,确保数据不改变业务需求,能处理数据中相互矛盾的地方,特别应支持数据转换不成功或意外情况下的回滚。06用户界面测试用户界面测试用户界面(UserInterface)是指提供给用户用于与软件进行交互的方式,即提供用户输入和系统输出。用户界面是软件与用户交互的最直接的层,界面质量决定了用户对软件的第二印象(安装是第一印象)。随着用户对软件的要求越来越高,用户界面设计越来越重要,而随着用户界面越来越复杂,用户界面测试也变得异常困难。RonPatton给出了优秀用户界面的基本构成标准,以此标准为基础,结合个人与其他测试工程师的经验体会,现总结出以下标准:(1)规范化标准和规范是经大量正式的测试、经验和错误所得到的方便用户的规则。部分典型要求如下:①第一次打开应用程序时应显示“关于系统”屏幕;②应有代表应用程序的正确图标;③所有屏幕、对话框应有与内容相对应的正确标题;④可在Windows的任务条和状态条中显示应用程序;⑤注意数据显示的规范性,如数据精度显示的统一、时间及日期显示格式的统一等。用户界面测试(2)灵活性灵活性主要针对熟练用户而言,如更换界面皮肤、变换界面字体等。但灵活性与稳定性往往相互矛盾。灵活性越大,输入、输出、状态越多,将增加用户理解软件的难度,并增大开发难度和工作量,降低软件稳定性。(3)正确性正确性是一个确定的条件。只要检查足够仔细,一般不难发现这类问题,内容包括:①界面显示内容的准确性。例如,对报表中的所有字段值都应有明确的定义,对无意义的字段值,不应显示空白,而应显示“-”或“/”,表示该字段值无意义。②界面显示及处理的正确性。例如,确保所有窗体中的对象状态正常,应符合相关的业务规则需要;各种对象访问方法(包括Tab键、鼠标移动和快捷键等)均可正常使用,且在一个激活的界面中快捷键不允许有重复。用户界面测试(4)直观性直观性反映用户学习掌握该软件所耗费的时间及在具体业务流程上的简化,即:①易见(EasytoDiscover):用户仅凭观察就知道设备的状态,以及提供可采取的行动。②易学(EasytoLearn):用户不查阅帮助就能对一个陌生的产品有清晰的认识。③易用(EasytoUse):用户不翻阅手册就能使用软件。典型的直观性标准包括:①界面布局整齐、合理、简洁,具有明显的响应;②按功能将界面分块,并应有功能说明或标题;③同一界面的控件数不超过10个,否则采用分页显示;④可写控件能自动获得输入焦点;⑤不应有用户不熟悉的术语,至少应有“帮助”功能及时发挥作用。用户界面测试(5)舒适性舒适性是个模糊的概念。典型的舒适性指标包括:①内容的友好性。②提示信息的指导性。③界面美观协调。④菜单及按钮中使用快捷方式。(6)实用性软件的特性应具有实用性,应在进行需求分析的时候明确了解哪些是用户关注的特性,哪些特性用户并不需要。没有必要将软件做得花里胡哨,能够满足用户的基本要求就行。相反,无用的特性越多,不仅不会讨好用户,还会增加无谓的复杂度,降低软件稳定性。例如,在第1章的软件缺陷定义中曾提到,用户认为系统交互界面只要符合公司统一的界面风格,系统模块分布简洁明了,用户无须花费长时间、无须思考就能找到所需功能模块即可,建模和数据分析的结果无须采用三维展示。用户界面测试(7)一致性一致性包括被测软件本身以及软件与其他软件的一致程度。重要的是遵循公开的标准和规范,就不会出错。例如,有多个系统展现同一数据源时,应保证其一致性。(8)帮助系统应提供详尽可靠的帮助文档,在用户不知该如何使用软件时通过帮助文件自主寻求解决方法。(9)独特性在界面基本框架符合标准和规范的基础上,应具有自己的独特风格,这对于商业软件尤其重要。典型的独特性细则如下:①安装界面上有公司介绍或产品介绍,并有本公司的图标;②主界面及大多数界面上有公司图标;③登录界面上有本产品标志,并包含公司图标;④帮助菜单的“关于”中有版权和产品信息;⑤公司的系列产品应保持一致的界面风格。用户界面测试(10)多窗口应用与系统资源设计良好的软件应尽可能占用最低限度的资源,要求包括:①在主界面载入完毕后自动卸出内存,让出所占用的Windows系统资源;②防止对系统的独占使用;③窗口被覆盖并重调用后,可以正确地再生;④显示多个窗口时,应将窗口名称适当表示出来;⑤适当加亮活动窗口。07可安装性测试可安装性测试可安装性测试(InstallationTesting)是指广义的安装测试,包括安装和卸载。狭义的安装测试是以安装手册为依据,对软件的安装过程进行测试的一项活动,目的是验证成功安装系统的能力。用户的第一次体验来自于安装软件的过程,安装程序制作的质量决定了用户对软件的第一印象,并将直接影响用户对软件使用的可接受程度。安装程序的一般流程为:(1)执行启动程序;(2)判断是否检测到以前版本,是,则继续执行,否,则先选择目标路径,然后继续执行;(3)选择安装选项,并开始安装;(4)判断是否重启,是,退出启动程序并重启,然后继续执行,否,则继续执行;(5)完成其他遗留的安装任务,并结束安装。可安装性测试安装测试的目标是确保安装程序能够正确运行,程序能正确安装,且安装后能正确运行。为此,可安装性测试应从如下方面展开测试。(1)安装前的测试重点①是否需要专业人员安装。若需专业人员安装,则安装对用户要求低,测试工作量较小。否则,应提供清晰简单的安装手册,并以之为基础展开安装测试。②确认打包程序的特性,确认对安装环境是否有限制和要求,不同的打包发布程序支持的系统不一样,且至少应在标准配置和最低配置条件下进行安装测试。特别注意开发和测试人员往往默认安装某些程序包,而用户往往是不预先安装这些程序包的。可安装性测试(2)安装过程中的测试重点对于正常安装,应关注以下方面:①安装过程与安装手册中描述的所有步骤保持一致,包括所有界面、提示信息等内容;②安装过程应符合一般的安装流程,否则应关注哪些步骤被省去,是否对应有默认设置,是否

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论