软件测试方法和技术docx文档格式.docx
《软件测试方法和技术docx文档格式.docx》由会员分享,可在线阅读,更多相关《软件测试方法和技术docx文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
有效等价类
渤等价类
标识砂
1个
(1),多个⑵
Of(3)
标识符字符数
1〜8个⑷
。
个(5),>
8个(6)>
>
80个(7)
标识符组成
字母(8),数字(9)
非字母数字字符(10),保留字(11)
第」个字符
字母(12)
非字母(13)
标识符使用
先说明后使用(14)
未说明已使用(15)
划分好等价类测试:
防止遗漏测试案例。
边界值分析法
例子:
排序程序,边界条件有:
□序列为空;
□序列仅有一个数据;
□序列为满,用猜错法补充一下测试用例;
□序列已经按要求排好序;
□序列的顺序与要求的顺序恰好相反;
□序列中的所有数据全部相等。
75
Exam<
0O<
=Exam<
=76Exam>
因为错误最容易发生在边界值附近,所以边界值分析法对于多变量函数的测试很有效,尤其是对于像C/C++数据类型要求不是很严格的语言有利。
Houoydaypcuuratnivr»
.[S3
Pleoseseethereadmetxlfilefoev«
yiroportanHrMc<
mabononthememwy
ovdilablememory(inMB)
Migh<
trfteovoUobksrocmay(inf/8)
OK
Cancel
Ddytrrtebooing(7:
30AM—end兔p1:
30PM
CPUIrMocrndbon
AMDAiHorX»
/n)64FX<
53PfOcma「ccIa
CPU2399.97MHsCO°
1a
CPUlecturesRDTSCZCMOVZPREFETCH,MMX,SSE.SSE2LIc^cheviee.64KB
L2coc.hc沁:
1024KB
错误推测法
国;
;
myo*<
U4rvitia»
^ing6dOKFFTlength.Jng640KFFTlength.Ung6£
0KFFTlength.
Jng16KFFTlength.;
ing16KFFTlength,ung16KFFTlength.Jug16KFFTlength.»
ing16KFTTlength.
r.com
ung20KFFTlendny20KFFTlen;
ing20KFTTlength.
Ung20KFFIlengtli.Trying20KFFTlength.
Self-test20Kpassed!
Test1.9000LucasLchmcriterationsofM0716289using448KFFTlength・Iest2“9UU0Lucos-lchmcritcrMionsofMB/1620/using44”KIfIlength・Icst3,9000IucasInhmeriterationsntMH516?
89tiding448KFFTlength.Selftest448Kpassed!
lest1,11UUULucosLchmcriterationsofM/4/1105using3U4KFFIlength.Self-teat3H4Kpassed!
Ie»
t1“210000lucas-LehmeriterationsofM501041using24KFFTlength・Icst2,210000Lucas-LchmcriterationsofM496943using24KFFTlength・lest3,21UUOOLucaoLchmcriterationsofM487423using24KFFTlength・Icot4,210000Lucas-LehmcriterationsotM471041using24KFFTlength・Icet5,210000LucasLehmeriterationsofM466943using24KFFTlength・Selftest24Kpaeocdl
180000Lucas-LchmcriterationsolM5806/3usingZ8KFFTlength・18UUUULucas-LehmeriterationsofMb/3441usingZ8KFFT180000LucasLchmcriterationsofM&
6524Zusing28KFFT180000Lucas-LchmcriterationsofM55Z0S/using28KFFT18UUUULucao-LehmeriterationsotM544/6/usingZ8KFFISelftest28Kpassed!
Test1,13000LucasLchmcrIterationsofM6225921using320KFFTlength.Self-test320Kpasuedl
lect1,1/UUULucac-LehmeriterationcotMblZU/3/ucingZb6Kbt-llength.Self-test266Kpascedl
TestETect2,Tect3,Test心Test5“
37K
Test1Z120000Lucac-LehmerIterationsofM827279using40KFFTlength・Self-test”0Kpassedl
Te«
t1“19000IUCHK-I.ehrneriter^tion^ofMd5011>
15UKiny7?
4KFFTlength.SelMe^t224Kpas^edl
Test1“22000Iucas-LehmeriterationsofM3835553using192KFFTlength.Self-test192Kpassedl
TestT,1nnOOOIucnK-lehrncritKmtinnKnfM9fi30d1tj«
ing4BKFFTlength.TortureTestran11hours,9mhiutes-0errorsz0warnings.
rxecutlonhalted.
ng517KFFTlength.
这个错误到底在哪?
lestElest乙lest3,lestA,lest5“
length,length,length,length.
160000Lucas-LehmeriterationsofM662593using32KFFTlength.160000Luc^s-LehrnerKcrationuofM659457uuiny32KFFTlength.
160000Lucac-LehmerKerationvofM655359u^ing32KFFTlength.160000Lucas-LehmeriterationsofM644399using32KFFTlength.
160000Luc»
s-LehmeriterationsofM638977using32KFFTlength.
因果图法
编号
原因(条件)
结果(动作)
1
第一列字符是A
21
修改文件
2
第一列字符是E;
22
给出信息L
3
第二列字符是一个数字
23
给出信息M
11
中间原因
E:
约束
||:
或
&
!
与
:
非
组合分析法
组合分析是一种基于每对参数组合的测试技术,主要考虑参数之间的影响是主要的错误来源和大多数的错误起源于简单的参数组合。
口压力测试(Stresstest)
□容量测试(Capacitytest)
□性能测试(Performancetest)□安全测试(Securitytest)
□容错测试(Recoverytest)
回归测试的目的
所做的修改达到了预定的目的,如错误得到了改正,
新功能得到了实现,能够适应新的运行环境等;
不影响软件原有功能的正确性。
回归测试的方法
再测试全部用例基于风险选择测试基于操作剖面选择测试再测试修改的部分
Planning/FeedbackLoops
OneDay
Code
——UnitTest
Minutes
ReleasePlan
制onths11%.
IterationPlan
Weeks
StandUpMeeting
PairNegotiation
Hours
PairProgrammin§
性能测试通常会使用特定的测试工具,来模拟超常的数据量.负载等,
监测系统的各项性能指标,如CPU和内存的使用情况.响应时间.反应速度等。
»
麟書髀聲験髓翳员的经验来设井各项测战指标。
(需求+经验)
□测试环境应尽量与产品运行环境保持一致,
应单独运行尽量避免与其他软件同时使用。
□性能测试一般使用测试工具和测试人员编制测试脚本乘完成。
□性能测试的重点在于前期数据的设计与后期数据的分析。
□性能测试的用例主要涉及到整个系统架构的问题,所以测试用例一旦生成,改动一般不大”所以做性能测试的重复使用率一般比较高。
性能测试的方法和技巧
两种负载类型
hflat”测试>
ramp-up测试
对于企业级的系统,性能测试的方法主要有:
A性能规划测试
A渗入测试
A峰谷测试
・■Flatt營坯-Bssil浣讪就国汛S3
rJumbffBXniBeii
Ramp-up测试:
用户是交错上升的(每几秒增加一些新甬户)。
ramp-up测试不能产生精确和可重现的平均值,这是因为由于用户的增加是每次_部分,系统的负载在不断地变化。
其优点是,
性能规划测试
性能规划类型的测试其目标是找出在特定的环境下,给定应用程序的性能可以达到何种程度。
例
如,如果要以5秒或更少的响应时间支持8,000个
当前用户,需要多少个服务器?
要确定系统的容量,需要考虑几个因素:
■用户中有多少是并发与服务器通信的。
•每个用户的请求间时间间隔是多少。
性能规划测试
(2)
如何加载用户以模拟负载状态?
麴的方法是模拟高峰时间用户与服务器通信的
•聖鬣脅有霍益後喬用fla香遢翼嚮黑驪寸加载到服务器
什么是确定容量的最好方法?
结合两种负载类型的优点,并运行一系列的测试
渗入测试
渗入测试是一种比较简单的性能测试。
渗入测试所需时间较长,它使用固定数目的并发用户测试系统的总体健壮性。
这些测试将会通过内存泄漏、增加的垃圾收集(GC)或系统的其他问题,显示因长时间运行而出现的任何性能降低。
建议运行两次测试•—一次使用较低的用户负载
(要在系统容量之下,以便不会出现执行队列),一次使用较高的负载(以便出现积极的执行队列)。
峰谷测试
兼有容量规划TaiJip-up测试和渗入测试的特征,
目标是确定从高负载(例如系统高峰时间的负
载)恢寡、转次几平牢闲、然后再攀升到高负
WebLoglc(JMX)
性能测试的过程
符合所有的标准
故障转移测试
>
Failover测试:
故障转移(Failover)和故障恢复(Fallback).
>服务器的Failover测试的目的:
检查系统是否具备某种灾难性恢复的手段.当系统局部或全部出错时,能否在指定时间内修正错误.具有良好故障恢复的系统,当遇到软件原因或无法克服的自然原因时,能够进行故障的转移与恢复.使用户最低限度的感受到故障的发生.
>在服务器的FaHover测试中,将包括多种情况,如:
■客户机或服务器掉电;
■客户机与服务器网络中断;
-服务器相关的程序CRASH;
Failover测试的方法和技巧
□将测试系统全部对象描绘岀来-系统结构图
□对图中的所有可能发生的故障点设计测试用例.
在一种需要反常(如长时间的峰值)数量、频率或资源的方式下,执行可重复的负载测试,以检查程序对异常情况的抵抗能力,找出性能瓶颈。
从本质上来说,测试者是想要破坏程序。
步骤:
•测试压力估算
•测试环境准备
•问题的分析
试试这个游戏站点的承受力
•并发性能测试(重点)
•疲劳强度测试
•大数据量测试
并发性能测试
考察客户端应用的性能,测试的入口是客户端
异发性能测试的过程,是一个负载测试和压力测试的过程。
即逐渐增加并发虚拟用户数负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标、资源监控指标等来确定系统并发性能的过程。
并发性能测试是负载压力测试中的重要内容。
疲劳强度测试
通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。
疲劳强度测试案例制定的原则是保证系统长期不间断运行的业务量z并且应该尽量去满足该条件。
大数据量测试
•独立的数据量测试
肆譬蠶罐'
传输'
统计'
查询等业务进行
•综合数据量测试
和压力性能测试、负载性能测试、并发性能测试、疲劳性能测试相结合的综合测试方案
交易的响应时间如果很长,远远超过系统性能需芬,表示耗费CPU的数据库操作,例如排序,执行aggregatefunctions(例女口sum、min、max>
count)等较多,可考虑是否有索引以及索引建立的是否合理;
尽量使用简单的表联接;
水平分割大表格等方法来降低该值。
UNIX资源监控(NT操作系统同理)中指标内存页交换速率(Pagingrate),如果该值偶尔走高,表明当时有线程竞争内存。
如果持续很高,则内存可能是瓶颈。
也可能是内存访问命中率低。
“Swapinrate"
和“Swapoutrate”也有类似的解释。
UNIX资源监控(NT操作系统同理)中指标CPU占用率(CPUutilization),如果该值持续超过95%,表明瓶颈是CPUo可以考虑增加一个处理器或换一个更快的处理器。
合理使用的范围在60%至70%o
UNIX资源监控(NT操作系统同理)中指
标磁盘交换率(Diskrate),如果该参数
值一直很高,表明I/O有问题。
可考虑更换
更快的硬盘系统、重新部署业务逻辑等,另外设fiTempdbinRAM,减^"
maxasync10”,"
maxlazywriter10”等措施都会降低该值。
6安全性测试,可靠性和容错性测试
安全性测试、可靠性测试和容错性测试的测试目的不同,其手段和方法也不同,但都属于系统测试的范畴,有_定的联系,如软件可靠性要求通常包括了安全性的要求。
安全性测试、可靠性测试和容错性测试的技术比较深、实施比较难,但在应用系统中越来越重要。
根据CMMI3的定义,安全性是“使伤害或损害的风险限制在可接受的水平内”。
安全性测试是检查系统对非法侵入的防范能力。
安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。
例如:
想方设法截取或破译口令;
专门开发软件来破坏系统的保护机制;
故意导致系统失败,企图趁恢复之机非法进入;
试图通过浏览非保密数据,推导所需信息等等。
理论上讲,只要有足够的时间和资源,没有不可进入的系统。
因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值,此时非法侵入者已无利可图。
可靠性测试
可靠性(Reliability)是产品在规定的条件下和规定的时间内完成规定功能的能力,它的概率度量称为可靠度。
软件可靠性是软件系统的固有特性之一,它表明了一个软件系统按照用户的要求和设计的目标,执行其功能的可靠程度。
软件可靠性与软件缺陷有关,也与系统输入和系统使用有关。
理论上说,可靠的软件系统应该是正确、完整、一致和健壮的。
•规定的时间•规定的环境条件
•规定的功能
可靠性测试结果的评估
成熟性度量可以通过错误发现率DDP(DefectDetectionPercentage)来表现。
在测试中查找岀来的错误越多,实际应用中出错的机会就越小,软件也就越成熟。
DDP二测试发现的错误数量/已知的全部错误数量
已知的全部错误数量是测试已发现的错误数量加上可能会发现的错误数量之和。
容错性测试
容错性测试是检查软件在异常条件下自身是否具有防护性的措施或者某种灾难性恢复的手段。
如当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。
容错性测试包括两个方面:
•输入异常数据或进行异常操作<
以检验系统的保护性。
如果系统的容错性好的话,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。
•灾难恢复性测试。
通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失、系统和数据是否能尽快恢复。
从质量三个纬度看系统测试
质量维度
测试类型
可靠性
完整性测试:
侧重于评估测试对象的强壮性(防止失败的能力),语言、语法的技术兼容性以及资源利用率的测试。
该测试针对不同的测试对象实施和执行,包括单元和已集成单元。
结构孤!
|试:
侧重于评估测试目标是否符合其设计和构造的测试。
通常对基于Web的应用程序执行该测试,以确保所有链接都已连接、显示正确的内容以及没有孤立的内容。
功能
配置孤!
1试:
侧重于确保测试对象在不同的硬件和/或软件配置上按预期运行的测试。
该测试还可以作为系统性能测试来实施。
功自铉测1试:
侧重于核实测试对象按计划运行,提供需求的服务、方法或用例的测试。
该测试针对不同的测试对象实施和执行,包括单元、已集成单元、应用程序和系统。
从质量三个纬度看系统测试
(2)
质量维度
容量测试:
侧重于核实测试对象对于大量数据(输入和输岀或驻留在数据库内)的处理能力的测试。
容量测试包括多种测试策略,如创建返回整个数据库内容的查询;
或者对查询设置很多限制,以至不返回数据;
或者返回每个字段中最大数据量的数据条目。
性能
基准测试:
一种性能测试,该测试将比较(新的或未知的)测试对象与已知的参照负载和系统的性能。
竞争测试:
侧重于核实测试对象对于多个主角对相同资源(数据记录、内存等)的请求的处理是否可以接受的测试。
负载测试:
一种性能测试,用于在测试的系统保持不变的情况下,核实和评估系统在不同负载下操作极限的可接受性。
评测包括负载和响应时间的特征。
如果系统结合了分布式构架或负载平衡方法,将执行特殊的测试以确保分布和负载平衡方法能th〔営彳乍°
性能曲线:
在该测试中,将监测测试对象的计时配置文件,包括执行流、数据访问、函数和系统调用,以确定并解决性能瓶颈
7.1验收测试的过程和主要内容
7.2产品规格说明书的验证
7.3用户界面和可用性测试
7.4兼容性测试
7.5可安装性和可恢复性测试
7.6验收测试报告和用户验收测试
什么是验收测试
验收测试(AcceptanceTest):
在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动它是技术测试的最后一个阶段,也称为交付测试。
前提:
系统或软件产品已通过了系统测试的软件系统。
测试内容:
验证系统是否达到了用户需求规格说明书(可能包括项目或产品验收准则)中的要求,测试试图尽可能地发现软件中存留的缺陷,从而为软件进一步改善提供帮助,并保证系统或软件产品最终被用户接受。
主要包括易用性测试、兼容性测试、安装测试、文档(如用户手册、操作手册等)测试等几个方面的内容。
测试步骤
・制定测试计划,测试项,测试策略及验收通过准则,并经过客户参与的计划评审。
・建立测试环境,设计测试用例,并经过评审。
根据验收通过准则分析测试结
•准备测试数据,执行测试用例,记录测试结果。
・分析测试结果,
果,作出验收是否通过及测试评价。
•测试项目通过;
测试项目没有通过,并且不存在变通方法,需要很大的修改;
测试项目没有通过,但存在变通方法,在维护后期或下一个版本改
进;
•测试项目无法评估或者无法给出完整的评估。
此时必须给出原因。
如果是因为该测试项目没有说明清楚,应该修改测试计划。
验收标准和注意事项
验收测试完成标准:
■完全执行了验收测试计划中的每个测试用例。
■在验收测试中发现的错误已经得到修改并且通过了
测试或者经过评估留待下一版本中修改。
■完成软件验收测试报告。
注意事项:
■必须编写正式的、单独的验收测试报告
■验收测试必须在实际用户运行环境中进行
■由用户和测试部门共同执行。
如公司自开发产品,应由测试人员,产品设计部门,市场部门等共同进行。
产口规格说明书的审核
■从客户的角度和立场进行审核工作。
■检验套用标准的正确性,不要和行业规范相抵触。
■审查、研究同类产品。
■验证产品规格说明书的完整性、准确性、一致性、合理性等特性。
产口规格说明书的验证
■已经实现的特性标识为通过。
■特性没有实现,报告bug并在报告中体现。
■特性基本实现,但与产品说明书内容不一致,报bug并在报告中体现。
■特性基本实现,但存在一些问题或错误。
什么是