版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章
基于状态的软件测试技术Tuesday,
December
10,1软件测试讲义主要内容状态转换图状态图Harel状态图的属性从状态图变换到STDUML状态图基于状态的测试测试步骤产生测试用例覆盖分析12/10/2019第八章基于状态的软件测试技术2回归测试简介12/10/2019第八章基于状态的软件测试技术3基于状态的软件测试技术是一种基于模型的测试技术(Model-Based
Testing,MBT)。MBT利用系统需求模型和特殊功能模型,自动生成有效的测试用例。一种定义明确的有限状态机常用来帮助描述系统的行为。从测试角度看,MBT技术带来的最大的好处是针对可用的有限状态机或变种,生成测试用例需要遍历状态机。MBT技术带来的所有益处都在一个假设条件
下,即所建立的被测系统的状态机“正确地”描述了系统的行为;换句话说,模型的质量决定着
MBT技术的成败。回归测试简介12/10/2019第八章基于状态的软件测试技术4状态转换图(StateTransitionDiagram,STD作为一种图形化标记用来描述计算机系统。20世纪50年代中期,G.H.Mealy和E.F.Moore同时引入了两种状态转换图的基本模型,这两种模型在硬件设计领域一直发挥着重要的作用。近些年来,两种模型得到广泛扩展,增加了对诸如层次结构(Hierarchy)、适时(Timing)和通信这些方面的表达能力,使得可以使用这两种模型对复杂的软件系统进行建模。8.1状态转换图12/10/2019第八章基于状态的软件测试技术51.Mealy自动机的定义Mealy和Moore奠定了有限自动机的理论。一个Mealy有限自动机是一个六元组(S,I,O,δr,s0),其中:√S—为有限状态集;√I—为有限输入字符表;√O—为有限输出字符表;√δ:S×I→S为状态转换函数;√r:S×I→O为输出函数;√s0
∈S为初始状态。8.1状态转换图12/10/2019第八章基于状态的软件测试技术61.Mealy自动机的定义Moore的有限自动机和Mealy有限自动机类似,只是输出函数r被r’:S→O所代替,也就是说,输出是和状态有关而不是和转换有关。从上述形式化定义,可以看到状态转换图(STD)是一个简单的有向图,其中节点表示状态,表示在不同时刻的不同输入值组合;标有触发事件和条件的箭头表示转换,转换是由输入引起的状态转换,状态转换图可以帮助理解系统的行为。8.1状态转换图12/10/2019第八章基于状态的软件测试技术72.自动售货机的例子在自动售货机中。Bill和Coin处可以投入纸币和
硬币;Display是一个液晶显示器,可以显示投入的金额或还须投入的金额;Button处是多个按钮,可以选择不同的饮料;Change处递出找回的零钱,而Dispenser处递出饮料。8.1状态转换图2.自动售货机的例子S1:Idel/Star
StateS5:Return
MoneyS3:Display
AmountNeededS4:Deliver
Soda,Return
ChangePower
off12/10/2019第八章基于状态的软件测试技术8Power
onMoney
InputCancelEnough
MoneyCancelEnough
MoneyFake
MoneyNot
EnoughMoneyS2:Display
Amount
Money
Not
Enough8.1状态转换图12/10/2019第八章基于状态的软件测试技术9自动售货机的例子S={S1,S2,S3,S4,S5}I={EM,NEM,CL,FM,ε}O={Soda,Change,FM}δ={δi|1≤i≤11}δ1(S1,EM)=S2,δ2(S1,NEM)=S2,δ3(S1,FM)=S5,δ4(S2,EM)=S4,δ5(S2,NEM)=S3,δ6(S2,CL)=S5,δ7(S3,EM)=S4,δ8(S3,NEM)=S3,δ9(S3,CL)=S5,δ10(S4
,ε)=S1,
δ11(S5,
ε)=S1r
={ri|1≤i≤11}r1(S1,FM)=FM,
r2(S2,EM)=Soda,
r3(S3,EM)=Soda,r4(S2,CL)=Change,
r5(S3,
CL)=ChangeS0
=Sb8.2状态图12/10/2019第八章基于状态的软件测试技术101.状态图的概念状态转换图是无层次结构,状态数目与转移数目随着系统复杂性的增加呈指数增长趋势,导致状态杂乱,难以理解。为了解决STD图的缺陷,Harel提出了状态图(Statechart),Harel的状态图是状态转换图、有限自动机的扩展。状态图表示系统行为,提供可视化形式,以模块化风格描述其状态和转移。状态图用来控制和组织详细信息,如果这些信息采用表格形式表示,则所能提供的清晰度将降低。8.2状态图1.状态图的概念STUEH/CG/AFE/BF状态转换图STUEH/CG/AE/BF12/10/2019第八章基于状态的软件测试技术11DH/C表示事件H触发,执行动作C。状态图D是由S和T合并而成的超级状态。8.2状态图2.Harel状态图的属性状态图提供层次结构可减少系统建模复杂性,支持内容抽象并发、正交性、全局通信机制、历史状态,具有简洁性、表达能力强、可进行状态分解。(1)“或(OR)”状态:一个超态可以分解为任意多个OR子状态,当一个对象处于超态时,它必须处于其中的一个或者是唯一的一个“或”子状态。UVt1t0S12/10/2019第八章基于状态的软件测试技术128.2状态图YSt1
t3t0
t1Zt22.Harel状态图的属性(2)“与(AND)”状态:一个超态可以分解为任意多个AND子状态,当一个对象处于超态时,它必须处于每一个活性的“与”子状态(对象正处于的状态称为活性状态)。CA
BX
R12/10/2019第八章基于状态的软件测试技术138.2状态图2.Harel状态图的属性(3)聚类与细化:聚类(Clustering)是自底向上的概念,而细化(Refining)是自顶向下的概念。二者都是描述一个状态和子状态的关系。聚类是减少状态图中转换的数量。为了看清状态转换内部的细节情况,超态可以按照需要分解,展开,这个过程称为细化。STUEH/CG/AE/BF12/10/2019第八章基于状态的软件测试技术14F8.2状态图STUEH/CG/AE/BFDUH/CF2.Harel状态图的属性DE12/10/2019第八章基于状态的软件测试技术15聚类后的状态图细化后的状态图8.2状态图12/10/2019第八章基于状态的软件测试技术162.Harel状态图的属性(4)历史态:状态图的历史态(History
State)给出了超态最近被访问的状态。历史态分为“浅”历史态和“深”历史态。简单地说,“浅”历史态H表示最近进入的并与其处于同级的状态,而“深”历史态H*表示最近访问的处于任意深度级别上的子状态。8.2状态图2.Harel状态图的属性(4)历史态ABEEDHKABEEDH*K12/10/2019第八章基于状态的软件测试技术178.2状态图12/10/2019第八章基于状态的软件测试技术182.Harel状态图的属性(5)正交性:正交性本质上是一个AND分解,但注重描述AND状态之间和组件之间的同期并发情况。对于一个Y状态有两个正交组件组成:A和D,由AND运算关联。处于状态Y等价于既处于状态A又处于状态
D。那么我们可以通过将A和D中的两个状态合成表示目前Y所处于的子状态。8.2状态图UVXYWRe12/10/2019第八章基于状态的软件测试技术19gjke3.从状态图变换到STD为了导出测试用例,需将层次化的状态图变换为
“平面”版的状态转换图。pAf[in(Y)]T8.2状态图3.从状态图变换到STDApU,XU,WV,WV,XV,YU,Yj12/10/2019第八章基于状态的软件测试技术20ejkegegke
f8.2状态图12/10/2019第八章基于状态的软件测试技术214.UML状态图David
Harel发明的状态图最初是为面向功能的系统开发的,后来做少量的修改后用在面向对象系统。
UML状态图为对象管理服务,是在Harel的状态图
的基础上扩展了一些新特性。属性Harel状态图UML状态图内嵌与正交状态支持支持单个转移代表从不同子状态的相同的事件支持支持事件广播支持支持历史状态支持支持8.2状态图12/10/2019第八章基于状态的软件测试技术224.UML状态图属性Harel状态图UML状态图子状态机支持支持重叠状态支持无伪状态无,但其连接符同样操作支持Fork与Join方法利用Fork和Merge用伪状态实现事件可以带参数无支持自由转移退出转移离开组合边界时,不一致通过定义自有边界退出转移实现同期的方法有限的方法,广播通信多种方法对于事件的处理有最外层状态机负责由最内层状态机负责8.3基于状态的测试12/10/2019第八章基于状态的软件测试技术231.基于状态的测试概念√定义基于状态的测试是一种基于模型的测试技术,也就是通过建立描述系统行为的状态机,来自动生成测试用例。√和白盒测试的区别基于状态的测试一般是用状态图来描述事件序列,
或称为用例场景,并由此产生测试用例。白盒测试
技术是以代码覆盖为标准来决定测试用例产生数量、测试结束标准;基于状态的测试评价标准是状态、
转移覆盖及对不正常、不相关事件的考虑,并由此
决定测试用例产生数量和测试结束条件。8.3基于状态的测试2.测试步骤图形化的规格说明书中介规格说明书测试说明书层次化的状态图平面状态图测试说明书使用标记表示特殊状态转移12/10/2019第八章基于状态的软件测试技术24使用通用方法产生测试用例8.3基于状态的测试12/10/2019第八章基于状态的软件测试技术252.测试步骤(1)创建图形化的规格说明书需求的图形化表示模型包括数据流图(DFD)、
实体关系图(ERD)、状态图(Statechart)、状态转换图(STD)、对话图和类图,它们可以作
为需求分析工具。用这些图对问题域进行建模,
对于复杂的系统行为、语义进行描述,或者用于
创建新系统的概念表示法。另外,图形有助于分
析者和客户在需求方面形成一致的、综合的理解,可以发现需求的错误。8.3基于状态的测试12/10/2019第八章基于状态的软件测试技术262.测试步骤(2)产生中介规格说明书选用图形规格说明书的目的是要方便生成测试说明书。其中状态转换图和状态图是两种常用的图形化技术。考虑到测试不正常和不相关事件,可能需要在状态转化图添加特殊状态转移标记;对于层次化状态图,需要将其转换成状态转移图即平面化。8.3基于状态的测试12/10/2019第八章基于状态的软件测试技术272.测试步骤(3)生成测试规格说明书上面中介规格说明书是一种有向图。其中一个节点为始点(可能是哑节点),一个节点为终点(也可能是哑节点)。遍历从始点到终点的所有路径,包括有效路径和无效路径。每条路径对应于一个测试序列。有效路径是指对于一系列有效输入,系统相应的一系列相应;无效路径是指对于一系列无效输入,系统相应的一系列“意外”处理。8.3基于状态的测试12/10/2019第八章基于状态的软件测试技术283.产生测试用例(1)ATM系统需求√用户必须能从ATM卡的任一有效账户上提取现金,提取的金额是20的整数倍;√用户必须能在ATM卡的任一有效账户上存款,指放入信封里的现金或支票;√用户必须能在ATM卡的任两个有效账户之间进行货币转账;√用户必须能查询ATM卡的任一有效账户上的存款余额。8.3基于状态的测试3.产生测试用例(2)绘出状态图S1:ReadyS2:Asking
for
PINS9:Asking“Continue?”S5:PerformingWithdrawalS6:PerformingDepositT15:Power
offT1:Power
onS7:PerformingTransferS8:Report
failure12/10/2019第八章基于状态的软件测试技术29T3:PIN
is
invalidFirst
and
sencondT2:Insert
cardT14:Not
continueT13:continueT5:PIN
is
validT4:PIN
is
invalidThird
timeS3:Absobingthe
cardT6:WithdrawS4:asking
foTr7:Deposit
transactionT8:TransferT12:TransactionfinishedT11:FailedT9:Withdrawalaccountis
InvalidPerform
TransactionT10:Transferaccountis
Invalid8.3基于状态的测试12/10/2019第八章基于状态的软件测试技术303.产生测试用例(3)由状态转换图产生测试场景√从图中抽取一条路径,代表一个测试场景:
TS1:Sb·T1·S1
·T2
·S2
·T5
·S4
·T6
·S5
·T9
·S√把TS1中的S5状态分别替换成S6或者S7,有:TS2:Sb·T1·S1
·T2
·S2
·T5
·S4
·T7
·S6
·T12
·TS3:Sb·T1·S1
·T2
·S2
·T5
·S4
·T8
·S7
·
T10
··S9
·T14√再考虑一条无效路径,如下:TS4:Sb·T1·S1
·T2
·S2
·T3
·S2
·T3
·S2
·
T4
·S8.3基于状态的测试3.产生测试用例(4)由测试场景产生测试用例√测试场景TS1S1:ReadyS2:Asking
for
PINS9:Asking“Continue?”S5:PerformingWithdrawalT1:Power
onS4:asking
fortransactionT2:Insert
card12/10/2019第八章基于状态的软件测试技术31T5:PIN
is
validT6:WithdrawT9:Withdrawalaccountis
InvalidT12:Transactionfinished8.3基于状态的测试12/10/2019第八章基于状态的软件测试技术323.产生测试用例(4√:账号)由测试场假设银行的PIN景产生测试用数据库中的用账户余额例户信息如下977764435433543452765¥5760977764436571288332456¥355.568.3基于状态的测试3.产生测试用例(4)由测试场景产生测试用例√使用账户977764435433543产生测试用例TC1测试场景测试用例输入输出输出说明TS112/10/2019TC1SC1欢迎界面插卡SC2要求用户输入PIN452765SC3要求用户选择服务选择“取款”服务SC4要求用户输入取款金额0SC4提示输入无效,重新输入20
第八章基S于C状5
态的软件询测问试是技术否继续
338.3基于状态的测试3.产生测试用例(4)由测试场景产生测试用例√使用账户977764435433543产生测试用例TC2测试场景测试用例输入输出输出说明TS112/10/2019TC2SC1欢迎界面插卡SC2要求用户输入PIN452765SC3要求用户选择服务选择“取款”服务SC4要求用户输入取款金额635SC4提示输入无效,重新输入5760
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 4127.13-2008固结磨具 尺寸 第13部分:立式砂轮机用去毛刺和荒磨砂轮》
- 2026年人教版小学二年级语文下册音序查字法练习卷含答案
- 2026年人教版小学二年级数学上册排列组合简单问题卷含答案
- 深度解析(2026)《GBT 3565.7-2022自行车安全要求 第7部分:车轮与轮辋试验方法》
- 《JBT 10801.5-2020电主轴 第5部分:钻削用电主轴技术条件》专题研究报告
- 2026年法律职业资格考试民法特殊普通合伙责任真题卷含解析
- 2026高一生物下册第一二三单元第一次月考含答案及解析
- 《JBT 10558-2006柱上式高压无功补偿装置》专题研究报告
- 《JBT 10384-2002中小型水轮机通流部件铸钢件》专题研究报告
- 湖南中考:英语必背知识点大全
- 2026年及未来5年市场数据中国离子色谱仪行业市场深度研究及投资策略研究报告
- 内部单位会计监督制度
- 胖东来员工考勤制度
- 2025年甘肃事业编考试试题真题及答案
- 2026海南海口市纪委监委所属事业单位招聘4人备考题库(第一号)完整参考答案详解
- 输煤安全生产管理制度
- 鼎捷软件在线测评答案
- 2025考研中共党史党建学真题(浙江省委党校)
- 【神经病学8版】第09章脑血管疾病
- 2025年下半年广西日报公开招聘33人笔试参考题库附答案
- 2026年中考语文一轮复习:病句的辨析与修改 课件
评论
0/150
提交评论