第5讲 基于状态的测试_第1页
第5讲 基于状态的测试_第2页
第5讲 基于状态的测试_第3页
第5讲 基于状态的测试_第4页
第5讲 基于状态的测试_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

基于状态的软件测试技术有穷状态机(FiniteStateMachine,FSM)基于FSM的测试状态图基于状态图的测试FSMMealy机状态是被动的,输出和状态没有联系Moore机

状态是主动的,输出与变换没有联系FSMMealy机6元组(S,I,O,,,s0)S为有限状态集,

s0∈S为初始状态I为有限输入字符集O为有限输出字符集:S×I→S为状态转换函数:S×I→O为输出函数FSM示例游戏开始P1发球P2发球P1赢P2赢P1_start/SimulateVolleyP2_start/SimulateVolleyP1_Win[P1_Score<20]/P1AddPoint,SimulateVolleyP2_Win[P2_Score<20]/P2AddPoint,SimulateVolleyP2_Win/SimulateVolleyP1_Win/SimulateVolleyP1_Win[P1_Score=20]/P1AddPointP2_Win[P1_Score=20]/P2AddPointP1_IsWinnerP2_IsWinnerFSMMoore机6元组(S,I,O,,,s0),其中:S为有限状态集,

s0∈S为初始状态I为有限输入字符集O为有限输出字符集:S×I→S为状态转换函数:S→O为输出函数Mealy机和Moore机可以相互转换FSM示例游戏开始P1继续P1AddPoint,SimulateVolleyP1赢P1AddPointP1_startP2_startP1_WinP2_WinP1_WinP1_Win[P1_Score=20]P1发球SimulateVolleyP2发球SimulateVolleyP1_Win[P1_Score<20]选手2继续P2AddPoint,SimulateVolleyP2赢P2AddPointP2_WinP2_Win[P2_Score=20]P2_Win[P2_Score<20]P2_WinP1_WinP1赢了P1_IsWinnerP2赢了P1_IsWinnerP2_IsWinner基于FSM的测试经典测试方法T方法(TransitionTour)U方法(UniqueInput/Output,UIO)D方法(

Distinguishingsequence)W方法(CharacterizationsetW)假定有穷状态机是最小、强连通和完全的基于FSM的测试示例03241A/0B/1A/1B/1A/0A/1A/0B/0B/1B/基于FSM的测试T方法迁移回路法所有迁移被覆盖检错能力较差测试序列:B

ABABAAAAAAABB

0101001011011基于FSM的测试UIO序列U方法产生每个状态的UIO序列为每个迁移,产生测试子序列联合子序列,产生整个测试序列测试序列:rAAAAAAArAAAABBrAAABBBrAABBrABBBrBB基于FSM的测试状态UIO1a/12a/0,a/13b/1,a/1通过?Uv方法对UIO序列的唯一性进行验证基于FSM的测试基于FSM的测试基于FSM的测试D方法发现区分所有状态的区分序列为每个迁移,产生测试子序列联合测试子序列,产生测试序列结果测试序列rAAAAABBrAAAABBBrAAABBBrAABBBrABBBrBBB基于FSM的测试W方法发现区分所有状态的特征集(W集)为每个迁移产生测试子序列联合测试子序列,产生测试序列W集:{A,AA,B}States(A)s(AA)s(B)0001111201030114101状态图有穷状态机的局限限制了可伸缩性当状态数非常多时,怎样画出清晰的、易理解的状态图?不能表示并发不适合表示两个或多个转换同时发生的情况积状态机?状态数成指数增长,大量不相关或不可达状态模型扩展—状态图Harel状态图(Statechart)UML状态图(StatechartDiagram)状态图Harel状态图状态图=状态图形+深度+正交性+广播通信深度(状态分层)OR状态是一个子状态图。当处于OR状态时,必须处于其子状态图的一个且仅一个状态正交AND状态可以分解为多个子状态,当一个对象处于AND状态时,它必须处于每个子状态事件广播迁移输出的事件向整个状态图广播状态图示例状态图历史态最近被访问的状态H:表示同级中最近进入的状态H*:最近访问的处于任意深度级别上的子状态集状态图正交性同步转换状态图UML状态图在Harel状态图的基础上扩展了一些新特征组合状态、子机状态、状态内部迁移状态图基于状态图的测试用状态图来描述事件序列,或用例场景测试评价标准测试生成状态图(层次化)有穷状态机测试规格说明书测试用例模型转换图形遍历/覆盖输入实例化基于状态图的测试状态图有穷状态机基于状态图的测试转换规则格局指在某一时刻,状态图S中的最大活动状态集合状态子集C构成一个格局当且仅当C包含根节点AND状态qC,则:q’

(q)q’

COR状态qC,则:q’

(q)q’

C全局状态转换步(转换冲突?)基于状态图的测试生成测试规格说明书遍历状态迁移图,产生测试场景生成测试用例根据测试场景,选择输入数据一个测试场景可以产生一个或多个测试用例基于状态图的测试示例--ATM系统测试基于状态图的测试示例—ATM的有穷状态机基于状态图的测试TS1:Sb·T1·S1·T2·S2·T5·S4·T6·S5·T9·S5·T12·S9·T14·S1

测试场景1

基于状态图的测试测试场景2

TS2:Sb·T1·S1·T2·S2·T5·S4·T7·S6·T12·S9·T14·S1

基于状态图的测试测试场景3

TS3:Sb·T1·S1·T2·S2·T5·S4·T8·S7·T10·S7·T12·S9·T14·S1

基于状态图的测试TS4:Sb·T1·S1·T2·S2·T3·S2·T3·S2·T4·S3测试场景4

基于状态图的测试由测试场景产生测试用例

在需要输入数据的步骤输入一系列各不相同的测试值,来检验在各种情况下系统是否满足需求示例账号PIN帐户余额977764435433543452765$5760977763436571288332456$355.56基于状态图的测试测试用例输入输出(系统响应)TC1欢迎界面插卡要求用户输入PINPIN要求用户选择服务选择“取款”事务要求用户输入取款金额无效取款额提示输入无效,要求重新输入有效取款额询问是否继续其他交易选择“不继续”回到欢迎界面示例—场景1测试用例模板基于状态图的测试测试用例输入输出说明TC1欢迎界面插卡要求用户输入PIN452765要求用户选择服务选择“取款”服务要求用户输入取款金额0提示输入无效,要求重新输入20询问是否继续其他交易选择“否”回到欢迎界面场景1的测试用例1—TC1基于状态图的测试测试用例输入输出说明TC2欢迎界面插卡要求用户输入PIN452765要求用户选择服务选择“取款”服务要求用户输入取款金额635提示输入无效,要求重新输入5

温馨提示

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

评论

0/150

提交评论