配色: 字号:
系统测试
2022-05-18 | 阅:  转:  |  分享 
  
软件测试方法和技术第6章系统测试第6章系统测试6.1系统测试概述6.2功能测试6.3回归测试6.4性能测试6.5其它非功能性
测试6.1系统测试概述系统测试是经过集成测试之后的软件,作为计算机系统的一个部分,与计算机硬件、某些支持的软件、数据和平台等系
统元素结合起来,在真实运行环境下对计算机系统进行的一系列的严格有效的测试来发现软件潜在的问题,保证系统正常运行。6.1系统测试概
述(1)是否能正常工作并完成所赋予的任务?(2)在大量用户使用的情况下,能否经得住考验?(3)系统出错了,能否很快恢复过来或者将故
障转移出去?(4)是否能长期地、稳定地运行下去?功能测试性能测试安全测试容错测试兼容性测试第6章系统测试6.1系统测试概述6.
2功能测试6.3回归测试6.4性能测试6.5其它非功能性测试6.2功能测试功能测试是对软件需求规格说明中的功能需求逐
项进行的测试,以验证其功能是否满足要求。不同的应用系统,其测试内容差异很大,但都可归为界面、数据、操作、逻辑、接口等几个方面。(1
)程序安装、启动正常,有相应的提示框、错误提示等;(2)每项功能符合实际要求;(3)系统的界面清晰美观;(4)菜单按钮操作正常灵活
,能处理一些异常操作;6.2功能测试(5)能接受正确的数据输入,对异常数据的输入可以进行提示容错处理。(6)数据的输出结果准确
,格式清晰,可以保存和读取。(7)功能逻辑清楚,符合使用者习惯。(8)系统的各种状态按照业务流程而变化,并保持稳定。(9)支持各种
应用环境。(10)能配合多种硬件周边设备。(11)软件升级后,能继续支持旧版本数据。(12)与外部应用接口的数据有效。客户需求为导
向,全面理解功能特性功能测试的整体思路客户需求为导向需求测试用例6.2功能测试Web功能测试1.页面链接测试需要验证的问题2
.Web图形测试3.表单测试4.Web服务器的功能测试(1)HTTP相关功能验证(2)SSL和TLS相关功能验证(3)CGI、Ja
vaServlets、Proxy、Caching、URL重定向等功能6.2功能测试第6章系统测试6.1系统测试概述6.2
功能测试6.3回归测试6.4性能测试6.5其它非功能性测试6.3回归测试一旦程序某些区域被修改了,就可能影响其它区域,
导致受影响的区域出现新的缺陷(回归缺陷)。如果这时没有回归测试,产品就带着这样的回归缺陷被发布出去了,造成严重后果。回归测试就是为
了发现回归缺陷而进行的测试。回归测试的目的所做的修改达到了预定的目的,如错误得到了改正,新功能得到了实现,能够适应新的运行环境
等;不影响软件原有功能的正确性。6.3回归测试回归测试的方法被测系统修改修改直接影响区域新增加的代码修改间接影响区域回归测试
方法(1)识别出软件被修改的部分。(2)从原基线测试用例库T中,排除所有不再适用的测试用例,确定那些对新的软件版本依然有效的测试
用例,其结果是建立一个新的基线测试用例库T0。(3)依据一定的策略从T0中选择测试用例测试被修改的软件。(4)如果回归测试包不能达
到所需的覆盖要求,必须补充新的测试用例使覆盖率达到规定的要求,生成新的测试用例集T1,用于测试T0无法充分测试的软件部分。(5)用
T1执行修改后的软件。回归测试策略再测试全部用例 基于风险选择测试基于操作剖面选择测试 再测试修改的部分更智能的选择方法第6章系
统测试6.1系统测试概述6.2功能测试6.3回归测试6.4性能测试6.5其它非功能性测试6.4性能测试6.4.1
什么是性能测试?性能测试(performancetest)就是为了发现系统性能问题或获取系统性能相关指标而进行的测试。一般在真实
环境、特定负载条件下,通过工具模拟实际软件系统的运行及其操作,同时监控性能各项指标,最后对测试结果进行分析来确定系统的性能状况。一
些常见的性能问题启动系统、打开页面越来越慢查询数据,很长时间才显示列表网络下载速度很低,如5k/s资源耗尽,如CPU使用率达
到100%资源泄漏,如内存泄漏,最终会导致资源耗尽资源瓶颈,如线程、DB连接等资源变得稀缺6.4.2性能测试指标系统性能指标
分为两方面内容:系统资源的使用率和系统行为表现。CPU、内存使用率请求响应时间:提交一个请求收到响应的时间间隔事务响应时间:事务由
一系列请求组成,事务的响应时间就是这些请求处理完所花费的时间。数据吞吐量:单位时间内客户端和服务器之间网络上传输的数据量。性能的具
体指标数据传输的吞吐量(Transactions)数据处理效率(Transactionspersecond)数据请求的响应时间
(Responsetime)内存和CPU使用率连接时间(ConnectTime)、发送时间(SentTime)处理时间(Pr
ocessTime)、页面下载时间第一次缓冲时间每秒(SSL)连接数每秒事务总数、每秒下载页面数每秒点击次数、每秒HTTP响应
数每秒重试次数6.4.3性能测试类型性能验证测试,验证系统是否达到事先已定义的系统性能指标、能否满足系统的性能需求性能基准测试,
在系统标准配置下获得有关的性能指标数据,作为将来性能改进的基准线性能规划测试,在多种特定的环境下,获得不同配置的系统的性能指标,从
而决定在系统部署时采用什么样的软、硬件配置容量测试可以看作性能的测试一种,因为系统的容量可以看作是系统性能指标之一。压力测试,长时
间的高负载测试,虽然可以发现系统性能问题,更多是为了进行系统稳定性和可靠性测试。压力测试常用方式负载测试,是一种测试手段或测试方法
应用于性能测试或稳定性测试之中。采用系统稳定运行情况下能够支持的最大负载,持续长时间运行,以发现性能问题。渗入测试(soakte
st),通过长时间运行,使问题逐渐渗透出来,从而发现内存泄漏、垃圾收集(GC)或系统的其他问题,以检验系统的健壮性峰谷测试(pe
ak-resttest),采用高低突变加载方式进行,先加载到高水平的负载,然后急剧降低负载,稍微平息一段时间,再加载到高水平的负
载,重复这样过程,容易发现问题的蛛丝马迹,最终找到问题的根源6.4.4系统负载及其模式系统负载:并发用户并发数量+思考时间+每次
请求发送数据量+负载模式(1)在线用户:通过浏览器访问登录Web应用系统。(2)虚拟用户:模拟浏览器向Web服务器发送请求并接收响
应的一个进程或线程。(3)并发用户:严格意义上说,这些用户在同一时刻做同一件事情或同样的操作。不严格的说,并发用户同时在线并操作系
统,但可以是不相同的操作。(4)用户并发数量:上述并发用户数量,可以近似于同时在线用户数量,但不一定等于在线用户数量。(5)思考时
间:浏览器在收到响应后到提交下一个请求之间的间隔时间。6.4.4系统负载及其模式(6)负载模式:加载方式如逐步加载、平均加载、随
机加载、峰谷交替加载。6.4.5性能测试的基本过程阶段3阶段4阶段5阶段1阶段2系统性能调优创建虚拟用户设计测试场景执行场景分析
测试结果制定压力测试方案(1)确定性能需求,包括确定哪些性能指标要度量,以及系统会承受哪些负载。(2)根据测试需求,选择测试工具和
开发相应的测试脚本。(3)建立性能测试负载模型,就是确定并发虚拟用户数量、每次请求的数据量、思考时间、加载方式和持续加载的时间。(
4)执行性能测试。(5)提交性能测试报告,包括性能测试方法、负载模型和实际执行的性能测试、性能测试结果及其分析等。6.4.6性能
测试结果分析在测试过程中要善于捕捉被监控的数据曲线发生突变的地方---拐点,这一点就是饱和点或性能瓶颈。6.4.7Web性能测试
Web性能测试关键是确定测试需求。一般有两种方式来描述Web的性能测试需求。(1)企业内部Web应用系统,负载数据明确。通常使用在
线用户和响应时间来度量系统性能。(2)Web应用上线后所支持的用户无法确定,使用吞吐量和响应时间来度量系统性能。关于Web性能指标
,可以参考标准性能评估公司(StandardPerformanceEvaluationCorporation,SPEC)网站
:http://www.spec.org/benchmarks.html#web6.4.8压力测试压力测试也称为强度测试、负载测
试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定
性等。压力测试的目的就是软件投入使用以前或软件负载达到极限以前,通过执行可重复的负载测试,了解系统可靠性、性能瓶颈等,以提高软件系
统的可靠性、稳定性,减少系统的宕机时间和因此带来的损失。6.4.8压力测试压力测试总是怕迫使系统在异常的资源配置下运行。例如:(1
)当中断正常频率为每秒一或两个时,运行每秒产生10个中断的测试用例;(2)定量地增长数据输入频率,检查对数据处理的反应能力;(3)
运行需要最大存储空间(或其他资源)的测试用例;(4)运行可能导致虚拟操作系统崩溃或大量数据对磁盘进行存取操作的测试用例。6.4.8
压力测试压力测试的要点:1.测试压力估算根据产品说明书的设计要求或以往版本的实际运行经验对测试压力进行估算,给出合理的估算结果。例
:单台服务器实际使用时一般只有100个并发用户,但在某一时间段的用户峰值可达到500个。预测要求压力值应为500个用户的1.5~2
倍。如果产品说明书已说明最大设计容量,则最大设计容量为最大压力值。6.4.8压力测试压力测试的要点:2.测试环境准备测试环境包括硬
件环境、网络环境、测试程序、数据准备等。分析压力测试中系统容易出现瓶颈的地方,从而有目的地调整测试策略或测试环境使压力测试结果真实
反映出软件性能。6.4.8压力测试压力测试的注意事项:3.问题分析(1)查看服务器上的进程及相应的日志文件可能立刻找到问题关键。(
2)查看监视系统性能的日志文件可能立刻找到问题的关键。好的程序员会给程序加上保护、跟踪机制及错误处理机制,备份日志文件以供参考。6
.4.8压力测试压力测试的要点:3.问题分析(3)检查运行参数,进行适当调整重新测试,看看能否再现问题(4)对问题进行分析,屏蔽某
些因素或功能,试着重现问题4.累积效应系统短时间运行有些问题表现不明显,但日积月累就会造成严重问题,特别是服务器。压力测试时尽量不
要重启系统。6.4.9容量测试容量测试:预先分析或确定反映软件系统应用特征的某项指标的极限值(最大并发用户数、数据库记录数等)。
容量测试验证系统是否符合产品说明书明确的容量限制,或确定保证系统正常运行某项指标的极限值。容量测试不能在单一条件下测试,不能简单
地说在某一标准配置服务器上运行某个软件的容量是多少。在复杂的系统内,需要分多种情况提供相应的容量参考。第6章系统测试6.1系统
测试概述6.2功能测试6.3回归测试6.4性能测试6.5其它非功能性测试6.5.1安全测试根据ISO8402的定义,安全
性是“使伤害或损害的风险限制在可接受的水平内”。6.5.1安全性测试安全性测试就是全面检验软件在需求规格说明中规定的防止危
险状态措施的有效性和在每一个危险状态下的反应,对软件设计中用于提高安全性的结构、算法、容错、冗余、中断处理等方案进行针对性测试,并
对安全性关键的软件单元和软件部件,单独进行加强的测试,以确认其满足安全性需求。(1)安全功能测试:数据机密性、完整性、可用性、不可
否认性、身份认证、授权、访问控制、审计跟踪、委托、隐私保护、安全管理等。(2)安全漏洞测试:从攻击者角度,以发现软件的安全漏洞为目
的。安全漏洞是指系统在设计、实现、操作、管理上存在的可被利用的缺陷和弱点。6.5.1安全性测试1.两种级别的安全性安全性分为两
个层次,即应用程序级别的安全性和系统级别的安全性。(1)应用级别的安全性,包括对数据或业务功能的访问;系统级别的安全性,包括对系统
的登录或远程访问。(2)应用程序级别的安全性可确保在预期的安全性情况下,操作者只能访问特定的功能或用例,或者只能访问有限的数据。(
3)系统级别的安全性可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。6.5.1安全性测试2.
安全性测试目标安全性测试目标可参考相关国家标准,根据相应标准,确定系统安全性处在下列级别中的哪个级别。(1)用户自主保护级;(2)
系统审计保护级;(3)安全标记保护级;(4)结构化保护级;(5)访问验证保护级。6.5.1安全性测试2.安全性测试目标然后根
据相应标准,确定测试的目标,完成各个级别所需要进行的测试项。(1)风险分析和安全需求测试;(2)应用软件系统安全方案测试;(3)应
用软件系统环境安全测试;(4)应用软件系统业务连续性测试;(5)应用软件系统及相关信息系统安全等级划分测试。6.5.1安全
性测试3.安全性测试内容(1)对安全性关键的软件部件,必须单独测试安全性需求;(2)在测试中全面检验防止危险状态措施的有效性和每
个危险状态下的反应;(3)对设计中用于提高安全性的结构、算法、容错、冗余及中断处理等方案,必须进行针对性测试;(4)对软件处于标准
配置下其处理和保护能力的测试。(5)应进行对异常条件下系统/软件的处理和保护能力的测试;(6)对输入故障模式的测试;(7)必须包含
边界、界外及边界结合部的测试;(8)对安全性关键的操作错误的测试;(9)对具有防止非法进入软件并保护软件的数据完整性能力的测试;(
10)对重要数据的抗非法访问能力的测试。6.5.1安全性测试4.安全性测试方法(1)静态代码分析方法;(2)动态的渗透测试;
还可以把安全测试方法分为以下两种:(1)基于漏洞的方法,从软件内部考虑软件安全性,识别软件安全漏洞(2)基于威胁的方法,从软件外部
考察软件的安全性,识别软件面临的安全威胁并测试其是否能够发生。6.5.1安全性测试5.Web安全测试(1)数据加密;(2)登
录或身份验证;(3)输入验证;(4)SQL注入;(5)超时限制;(6)目录;(7)操作留痕。6.5.2容错性测试容错性测试主
要检查系统的容错能力,检查软件在异常条件下自身是否具有防护性的措施或者某种灾难性恢复的手段。容错性测试包括以下两个方面:(1)输入
异常数据或进行异常操作,以检验系统的保护性。(2)灾难恢复性测试。通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数
据是否丢失、系统和数据是否能尽快恢复。6.5.2容错性测试容错性测试的要点(1)故障转移与数据恢复故障转移时确保测试对象在出现
故障时能成功完成故障转移,并能从导致意外数据损失或数据完整性破坏的各种硬件、软件和网络故障中恢复。(2)测试目标确保恢复进程将数据
库、应用程序和系统正确地恢复到预期的已知状态。6.5.2容错性测试容错性测试的要点(3)完成标准应用程序、数据库和系统应该在恢
复过程完成时立即返回到一个已知的预期状态。(4)需要考虑的特殊事项恢复测试会给其他操作带来许多麻烦,需要采用其他方法,如诊断性软件
工具。并需要相对独立的测试环境。6.5.3兼容性测试兼容性测试包括软件兼容性测试、数据共享兼容性、硬件兼容性三个方面。1.软
件兼容性测试软件兼容性测试是指验证软件之间是否正确地交互和共享信息,包括同步共享,还包括异步共享,本地交互、远程通信交互。软件兼
容性测试主要考虑以下问题:(1)软件设计要求与何种平台和应用软件保持兼容?(2)如果被测软件本身就是一个平台,那么设计要求哪些应用
程序可以在其上运行?6.5.3兼容性测试1.软件兼容性测试(3)应该遵守何种软件之间的标准和规范?(4)软件使用何种数据与其他
平台进行交互、共享信息?2.数据共享兼容性测试为了获得良好的兼容性,软件必须遵守公开的标准和某些约定,允许与其他软件传输、共享数据
。主要表现为:(1)剪切、复制和粘贴;(2)文件的存取;(3)文件的导入和导出。6.5.3兼容性测试3.硬件兼容性测试硬件兼容
性测试也就是硬件配置测试。(1)配置测试的必要性计算机配置复杂多样。主板、显卡、声卡、网卡、硬盘等组件可以是数百厂家生产,驱动各异。另外计算机外设种类多样,接口多样。因此,有必要进行硬件配置测试。6.5.3兼容性测试3.硬件兼容性测试(2)配置测试的基本方法常用替换法以及采用等价类划分方法,从一大堆设备中选择出需要测试的设备的清单,判断以下情况:可能多种配置中都会出现缺陷可能只在某种特殊配置中出现的缺陷硬件设备或者设备驱动程序可能包含仅由软件揭示的缺陷硬件设备或者其设备驱动程序可能包含仅由软件揭示的缺陷CGI:公共网关接口,外部扩展应用程序与web服务器交互的标准接口。Proxcy:代理服务器SSL:安全套接字协议,为网络通信提供安全及数据完整性的协议,TLS在SSL与应用层之间,提供连接的保密性和安全性。基于风险的测试用例:首先测试发生问题几率大且影响大的测试用例基于操作剖面选择测试用例:原本测试用例设计就是依据用户操作设计,在测试用例集中选择风险较高的先测再i测试修改部分:比较自信的做法,软件原有功能测试充分,且非常了解,才能选用
献花(0)
+1
(本文系太好学原创)