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

下载本文档

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

文档简介

1、基于状态的软件测试技术基于状态的软件测试技术有穷状态机有穷状态机( (Finite State Machine, FSM) )基于基于FSM的测试的测试状态图状态图基于状态图的测试基于状态图的测试FSMlMealy机机状态是被动的,输出和状态没有联系状态是被动的,输出和状态没有联系lMoore机机 状态是主动的,输出与变换没有联系状态是主动的,输出与变换没有联系FSMMealy机机6元组(元组(S,I,O, , ,s0)S为有限状态集,为有限状态集, s0S为初始状态为初始状态I为有限输入字符集为有限输入字符集O为有限输出字符集为有限输出字符集 : SIS为状态转换函数为状态转换函数 : SI

2、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_Is

3、Winner P2_IsWinner FSMMoore机机6元组(元组(S,I,O, , ,s0),其中:),其中:S为有限状态集,为有限状态集, s0S为初始状态为初始状态I为有限输入字符集为有限输入字符集O为有限输出字符集为有限输出字符集 : SIS为状态转换函数为状态转换函数 : SO为输出函数为输出函数Mealy机和机和Moore机可以相互转换机可以相互转换FSM示例示例游戏开始P1继续P1AddPoint, SimulateVolleyP1赢P1AddPointP1_startP2_startP1_Win P2_WinP1_WinP1_Win P1_Score = 20 P1发球Si

4、mulateVolleyP2发球SimulateVolleyP1_Win P1_Score 20 选手2继续P2AddPoint, SimulateVolleyP2赢P2AddPointP2_Win P2_Win P2_Score = 20 P2_Win P2_Score 20 P2_WinP1_WinP1赢了P1_IsWinnerP2赢了P1_IsWinnerP2_IsWinner基于基于FSM的测试的测试经典测试方法经典测试方法lT方法(方法(Transition Tour)lU方法(方法(Unique Input/Output , UIO)lD方法(方法( Distinguishing

5、sequence)lW方法(方法( Characterization set W)假定有穷状态机是最小、强连通和完全的假定有穷状态机是最小、强连通和完全的基于基于FSM的测试的测试示例示例03241A/0B/1A/1B/1A/0A/1A/0B/0B/1B/基于基于FSM的测试的测试T方法方法迁移回路法迁移回路法所有迁移被覆盖所有迁移被覆盖检错能力较差检错能力较差测试序列测试序列:B A B A B A A A A A A A B B 0 1 0 1 0 0 1 0 1 1 0 1 1基于基于FSM的测试的测试UIO序列序列uU方法方法产生产生每个状态每个状态的的UIO序列序列为每个迁移,产生测

6、试子序列为每个迁移,产生测试子序列联合子序列,产生整个测试序列联合子序列,产生整个测试序列测试序列:测试序列:rAAAAAAA rAAAABB rAAABBB rAABB rABBBrBB基于基于FSM的测试的测试状态状态UIO1a/12a/0, a/13b/1, a/1通过?通过?Uv方法方法对对UIO序列的唯一性进行验证序列的唯一性进行验证基于基于FSM的测试的测试基于基于FSM的测试的测试基于基于FSM的测试的测试uD方法方法发现区分发现区分所有状态所有状态的区分序列的区分序列为每个迁移,产生测试子序列为每个迁移,产生测试子序列联合测试子序列,产生测试序列联合测试子序列,产生测试序列结果

7、测试序列结果测试序列rAAAAABBrAAAABBBrAAABBBrAABBBrABBBrBBB基于基于FSM的测试的测试uW方法方法发现区分发现区分所有状态所有状态的特征集的特征集( (W集集) )为每个迁移产生测试子序列为每个迁移产生测试子序列联合测试子序列,产生测试序列联合测试子序列,产生测试序列W集集: A, AA, BStates(A)s(AA) s(B)000 1111201030114101状态图状态图u有穷状态机的局限有穷状态机的局限l限制了可伸缩性限制了可伸缩性当状态数非常多时,怎样画出清晰的、易理解的状态图?当状态数非常多时,怎样画出清晰的、易理解的状态图?l不能表示并发不

8、能表示并发不适合表示两个或多个转换同时发生的情况不适合表示两个或多个转换同时发生的情况积状态机?状态数成指数增长,大量不相关或不可达状态积状态机?状态数成指数增长,大量不相关或不可达状态u模型扩展模型扩展状态图状态图lHarel状态图(状态图(Statechart)lUML状态图(状态图(Statechart Diagram)状态图状态图uHarel状态图状态图状态图状态图 = = 状态图形状态图形 + + 深度深度 + + 正交性正交性 + + 广播通信广播通信l深度(状态分层)深度(状态分层)OROR状态状态是一个子状态图。当处于是一个子状态图。当处于OROR状态时,必须处状态时,必须处于

9、其子状态图的一个且仅一个状态于其子状态图的一个且仅一个状态l 正交正交ANDAND状态状态可以分解为多个子状态,当一个对象处可以分解为多个子状态,当一个对象处于于ANDAND状态时,它必须处于每个子状态状态时,它必须处于每个子状态l事件广播事件广播迁移输出的事件向整个状态图广播迁移输出的事件向整个状态图广播状态图状态图示例示例状态图状态图历史态历史态 l最近被访问的状态最近被访问的状态H H:表示同级中最近进入的状态:表示同级中最近进入的状态H H* *:最近访问的处于任意深度级别上的子状态集:最近访问的处于任意深度级别上的子状态集状态图状态图正交性正交性l同步转换同步转换状态图状态图UML状

10、态图状态图l在在Harel状态图的基础上扩展了一些新特征状态图的基础上扩展了一些新特征l组合状态、子机状态、状态内部迁移组合状态、子机状态、状态内部迁移状态图状态图基于状态图的测试基于状态图的测试用状态图来描述事件序列,或用例场景用状态图来描述事件序列,或用例场景测试评价标准测试评价标准测试生成测试生成状态图(层次化)状态图(层次化)有穷状态机有穷状态机测试规格说明书测试规格说明书测试用例测试用例模型转换模型转换图形遍历图形遍历/覆盖覆盖输入实例化输入实例化基于状态图的测试基于状态图的测试状态图状态图有穷状态机有穷状态机基于状态图的测试基于状态图的测试转换规则转换规则l格局格局指在某一时刻,状

11、态图指在某一时刻,状态图S中的最大活动状态集合中的最大活动状态集合状态子集状态子集C构成一个格局当且仅当构成一个格局当且仅当 C包含根节点包含根节点 AND状态状态q C,则:,则: q (q) q C OR状态状态q C,则:,则: q (q) q Cl全局状态全局状态l转换步(转换冲突?)转换步(转换冲突?)基于状态图的测试基于状态图的测试生成测试规格说明书生成测试规格说明书l遍历状态迁移图,产生测试场景遍历状态迁移图,产生测试场景生成测试用例生成测试用例l 根据测试场景,选择输入数据根据测试场景,选择输入数据l 一个测试场景可以产生一个或多个测试用例一个测试场景可以产生一个或多个测试用例

12、基于状态图的测试基于状态图的测试示例示例- -ATM系统测试系统测试 基于状态图的测试基于状态图的测试示例示例ATM的有穷状态机的有穷状态机基于状态图的测试基于状态图的测试TS1:SbT1S1T2S2T5S4T6S5T9S5T12S9T14S1 u测试场景测试场景1 基于状态图的测试基于状态图的测试u测试场景测试场景2 TS2:SbT1S1T2S2T5S4T7S6T12S9T14S1 基于状态图的测试基于状态图的测试u测试场景测试场景3 TS3:SbT1S1T2S2T5S4T8S7T10S7T12S9T14S1 基于状态图的测试基于状态图的测试TS4:SbT1S1T2S2T3S2T3S2T4S

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

温馨提示

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

评论

0/150

提交评论