软件测试第5章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第五章系统测试[本章要点]•系统测试的定义;•系统测试的组织与分工;•系统测试的类型;•系统测试的测试用例设计方法;•系统测试的案例分析。[本章目标]进一步理解系统测试和集成测试的区别;掌握系统测试的概念;熟悉主要的系统测试类型及其特点;了解系统测试的过程;重点理解如何把黑盒测试技术运用到系统测试中。5.1系统测试概述系统测试的根本任务就是要证明被测系统的功能和结构的稳定性;还要有一些非功能测试:性能测试、压力测试、可靠性测试等等。最终目的是为了确保软件产品能够被用户或操作者接受。测试的主要目标不再是找出缺陷,而是证明其性能。系统测试属于黑盒测试范畴,不再对软件的源代码进行分析和测试。5.1.1什么是系统测试系统测试就是将已经集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义比较,检查软件是否存在与系统定义不符合或与之矛盾的地方,以验证软件系统的功能和性能等满足其规约所指定的要求。5.1.2系统测试的组织和分工测试组组长:组织测试;测试分析员:负责设计和实现测试脚本和测试用例;测试者:负责执行测试脚本中记录的测试用例。同时可以邀请客户代表参与系统测试,可以与客户建立一个良好的平台,并且得到反馈信息。过程:搭建好系统测试的软、硬件平台制定软件测试计划(与开发人员多多沟通)系统测试提交系统测试的大量输出的拷贝文档(包括测试结果记录表格、系统测试日志和全面的系统测试总结报告)。5.2如何进行系统测试系统测试过程要经历以下几个阶段:制定系统测试计划、设计系统测试、实施系统测试、执行系统测试和评估系统测试。(如图5-1所示)制定系统测试计划设计系统测试实施系统测试执行系统测试评估系统测试图5-1系统测试过程与之对应的是如下的几个阶段:一、计划阶段:制定测试计划二、设计阶段:对系统进行详细的测试分析,然后设计一些典型的,满足测试需求的测试用例;同时给出系统测试的大致过程。三、实施阶段:使用当前的软件版本进行测试脚本的录制工作,确定软件的基线。四、执行阶段:根据系统测试计划和事先设计好的系统测试用例,以及一定测试规程进行测试脚本的回放。五、评估阶段:进行评估,以确定系统测试是否通过。5.2.1系统测试分析测试人员在做系统测试分析时,不妨分别从用户层、应用层、功能层、子系统层、协议层等几个层次入手:1)用户层用户层的测试核心应该围绕用户界面的规范性、友好性、可操作性,系统对用户支持的情况,以及数据的安全性等方面展开;还应该注意可维护性测试和安全性测试。2)应用层主要是针对产品工程应用或行业应用的测试。从系统应用的角度:对系统的兼容性、可靠性、性能等进行的测试。对整个系统的应用层测试:包含并发性能测试、负载测试、压力测试、强度测试、破坏性测试。3)功能层测试是否已经实现需求规格说明中定义的功能,以及系统功能间是否存在类似共享资源访问冲突。4)子系统层针对产品内部结构性能的测试。关注子系统内部的性能,子系统间接口的瓶颈。5)协议/指标层针对系统所支持的协议,进行协议一致性测试和协议互通测试。5.2.2系统测试环境软件测试环境构建的是否合理、稳定和具有代表性,将直接影响到软件测试结果的真实性、可靠性和正确性,现阶段,应该构件效率高、灵活性好、可复用性强的可“复用”的测试环境。测试前要保证测试软件的可靠性;保证系统软件、数据库、应用软件的可靠性和安全性;并且尽量减少镜像文件的大小。5.2.3系统测试类型介绍17类系统测试类型。一、功能测试(FunctionalTest)功能测试属于黑盒测试技术范畴,是系统测试中要进行的最基本的测试,它不用考虑软件内部的具体实现过程。主要是根据产品的需求规格说明书和测试需求列表,验证产品是否符合产品的需求规格。需求规格说明是功能测试的基本输入。因此先对需求规格进行分析,明确功能测试的重点。可按照如下步骤进行:①为所有的功能需求(其中包括隐含的功能需求)加以标识;②为所有可能出现的功能异常进行分类分析并加以标识;③对前面表示的功能需求确定优先级。④对每个功能进行测试分析,分析其是否可测、采用何种测试方法、测试的入口条件、可能的输入、预期输出等等。⑤是否需要开发脚本或借助工具录制脚本。⑥确定要对哪些测试使用自动化测试,对哪些测试使用手工测试。功能测试用例是功能测试工作的核心,常见的设计方法有如下几种:1规范导出法2等价类划分法3边界值分析法4因果图5判定表6正交实验设计7基于风险的测试8错误猜测法经常进行的功能测试项目如下:1.页面链接检查2.相关性检查3.检查按钮的功能是否正确4.字符串长度检查5.字符类型检查6.标点符号检查7.中文字符处理8.检查带出信息的完整性9.信息重复10.检查删除功能11.检查添加和修改是否一致12.检查修改重名13.重复提交表单14.检查多次使用back键的情况15.search检查16.输入信息位置17.上传下载文件检查18.必填项检查19.快捷键检查20.回车键检查二、协议一致性测试(ProtocolConformanceTesting)分布式系统中,很多计算功能的完成需要由分布式系统内的多台计算机相互进行通信、交换信息、协调合作来完成的,必须遵循一定的规则(协议)。所以要进行协议测试。通常包括如下几种类型的协议测试:1、协议一致性测试:检查所实现的系统是否与标准协议符合;2、协议性能测试:检查协议实体的各种性能指标(如:数据传输率、连接时间、执行速度);3、协议互操作性测试:验证相同协议在不同实现的环境中的相容性;4、协议健壮性测试:用来考验系统在外界因素下抗干扰的能力,例如通信中止、人为破坏等等。三、性能测试(PerformanceTest)性能测试在软件的质量保证中起着重要的作用。可从三个方面进行性能测试:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。1、应用在客户端性能的测试目的是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。并发性能测试的目的主要体现在三个方面:以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题。例如:在每月20日左右是电话交费的高峰期,几千个收费网点同时启动。收费过程一般分为两步,首先要根据用户提出的电话号码来查询出其当月产生费用,然后收取现金并将此用户修改为已交费状态。一个用户看起来简单的两个步骤,但当成百上千的终端,同时执行这样的操作时,情况就大不一样了,如此众多的交易同时发生,对应用程序本身、操作系统、中心数据库服务器、中间件服务器、网络设备的承受力都是一个严峻的考验。这种问题在软件测试阶段就应该得到解决。①并发性能测试前的准备工作测试环境;测试工具:并发性能测试工具有QALoad、LoadRunner、BenchmarkFactory和Webstress等;测试数据;②并发性能测试的种类与指标并发性能测试的种类取决于并发性能测试工具监控的对象,以QALoad自动化负载测试工具为例。软件针对各种测试目标提供了DB2、DCOM、ODBC、ORACLE、NETLoad、Corba、QARun、SAP、SQLServer、Sybase、Telnet、TUXEDO、UNIFACE、WinSock、、JavaScript等不同的监控对象,支持Windows和UNIX测试环境。主要的测试指标包括交易处理性能指标和UNIX资源监控。③疲劳强度与大数据量测试疲劳测试是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。大数据量测试可以分为两种类型:针对某些系统存储、传输、统计、查询等业务进行大数据量的独立数据量测试;与压力性能测试、负载性能测试、疲劳性能测试相结合的综合数据量测试方案。大数据量测试的关键是测试数据的准备,可以依靠工具准备测试数据。2、应用在网络上性能的测试该测试重点是利用成熟先进的自动化技术进行网络应用性能监控、网络应用性能分析和网络预测。下面我们分别从三个方面来阐述。①网络应用性能分析目的就是准确展示网络带宽、延迟、负载和TCP端口的变化是如何影响用户的响应时间的。②网络应用性能监控主要用来分析关键应用程序的性能,定位问题的根源是在客户端、服务器、应用程序还是网络。③网络预测从网络管理软件获取网络拓扑结构、从现有的流量监控软件获取流量信息,这样可以得到现有网络的基本结构,并进行流量分析和冲突检测。3、应用在服务器上性能的测试采用工具监控资源使用情况。实施测试的目的是实现服务器设备、服务器操作系统、数据库系统、应用在服务器上性能的全面监控,测试原理如图5-2。文件服务器数据库服务器应用服务器其他服务器测试主控台系统资源信息控制信息图5-2应用服务器上的性能测试原理图对于安装UNIX操作系统的服务器来说,有如下资源监控指标:•平均负载:系统正常状态下,最后60秒同步进程的平均个数•冲突率:在以太网上监测到的每秒冲突数•进程/线程交换率:进程和线程之间每秒交换次数•CPU利用率:CPU占用率(%)•磁盘交换率:磁盘交换速率•接收包错误率:接收以太网数据包时每秒错误数•包输入率:每秒输入的以太网数据包数目•中断速率:CPU每秒处理的中断数•输出包错误率:发送以太网数据包时每秒错误数•包输入率:每秒输出的以太网数据包数目•读入内存页速率:物理内存中每秒读入内存页的数目•写出内存页速率:每秒从物理内存中写到页文件中的内存页数目或者从物理内存中删掉的内存页数目•内存页交换速率:每秒写入内存页和从物理内存中读出页的个数•进程入交换率:交换区输入的进程数目•进程出交换率:交换区输出的进程数目•系统CPU利用率:系统的CPU占用率(%)•用户CPU利用率:用户模式下的CPU占用率(%)•磁盘阻塞:磁盘每秒阻塞的字节数四、压力测试压力测试又称强度测试,是在各种资源超负荷情况下观察系统的运行情况。在压力测试过程中,测试人员主要关注的是非正常资源占用的情况下系统的处理时间。注意:区分压力测试和容量测试五、容量测试容量测试是面向数据的,在系统正常运行的范围内测试并确定系统能够处理的数据容量。也就是观察系统承受超额的数据容量的能力。六、安全性测试要验证系统内的保护机制能否抵御入侵者的攻击。所谓的系统安全性就是让系统非法入侵者花费更多的时间、付出更大的代价来交换其所获得的系统信息,即让非法者获得的一切信息内容贬值。评价标准:有效性;生存性;精确性;出错反应时间;吞吐量七、恢复性测试恢复性测试的目标就是验证系统从软件或者硬件失败中恢复的能力。在测试过程中会采取各种人工干预方式使软件出错,而不能正常工作,进而检验系统的恢复能力。在进行恢复性测试时,同样首先要进行恢复性测试分析,经常要考虑的主要问题有如下几个:1)恢复期间的安全性过程;2)恢复处理日志方面的能力;3)当出现供电问题时的恢复能力;4)恢复操作后系统性能是否下降。八、备份测试备份测试为了验证系统在软件或者硬件失败的事件中备份其数据的能力,它属于恢复性测试的一个部分。九、GUI测试GUI(GraphicUserInterface)即图形化用户接口,GUI测试只是软件产品界面测试的一部分,GUI测试分为两个部分,一方面要能使得界面实现与最初设计的情况相符合;另一方面

1 / 51
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功