软件测试方法与实践讲义-第八章_第1页
软件测试方法与实践讲义-第八章_第2页
软件测试方法与实践讲义-第八章_第3页
软件测试方法与实践讲义-第八章_第4页
软件测试方法与实践讲义-第八章_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

2020年4月17日 软件测试讲义 1 第八章基于状态的软件测试技术 2020年4月17日 第八章基于状态的软件测试技术 2 主要内容 8 1状态转换图8 2状态图8 2 1Harel状态图的属性8 2 2从状态图变换到STD8 2 3UML状态图8 3基于状态的测试8 2 1测试步骤8 2 2产生测试用例8 2 3覆盖分析 2020年4月17日 第八章基于状态的软件测试技术 3 回归测试简介 基于状态的软件测试技术是一种基于模型的测试技术 Model BasedTesting MBT MBT利用系统需求模型和特殊功能模型 自动生成有效的测试用例 一种定义明确的有限状态机常用来帮助描述系统的行为 从测试角度看 MBT技术带来的最大的好处是针对可用的有限状态机或变种 生成测试用例需要遍历状态机 MBT技术带来的所有益处都在一个假设条件下 即所建立的被测系统的状态机 正确地 描述了系统的行为 换句话说 模型的质量决定着MBT技术的成败 2020年4月17日 第八章基于状态的软件测试技术 4 回归测试简介 状态转换图 StateTransitionDiagram STD 作为一种图形化标记用来描述计算机系统 20世纪50年代中期 G H Mealy和E F Moore同时引入了两种状态转换图的基本模型 这两种模型在硬件设计领域一直发挥着重要的作用 近些年来 两种模型得到广泛扩展 增加了对诸如层次结构 Hierarchy 适时 Timing 和通信这些方面的表达能力 使得可以使用这两种模型对复杂的软件系统进行建模 2020年4月17日 第八章基于状态的软件测试技术 5 8 1状态转换图 1 Mealy自动机的定义 Mealy和Moore奠定了有限自动机的理论 一个Mealy有限自动机是一个六元组 S I O r s0 其中 S 为有限状态集 I 为有限输入字符表 O 为有限输出字符表 S I S为状态转换函数 r S I O为输出函数 s0 S为初始状态 2020年4月17日 第八章基于状态的软件测试技术 6 8 1状态转换图 1 Mealy自动机的定义 Moore的有限自动机和Mealy有限自动机类似 只是输出函数r被r S O所代替 也就是说 输出是和状态有关而不是和转换有关 从上述形式化定义 可以看到状态转换图 STD 是一个简单的有向图 其中节点表示状态 表示在不同时刻的不同输入值组合 标有触发事件和条件的箭头表示转换 转换是由输入引起的状态转换 状态转换图可以帮助理解系统的行为 2020年4月17日 第八章基于状态的软件测试技术 7 8 1状态转换图 2 自动售货机的例子 在自动售货机中 Bill和Coin处可以投入纸币和硬币 Display是一个液晶显示器 可以显示投入的金额或还须投入的金额 Button处是多个按钮 可以选择不同的饮料 Change处递出找回的零钱 而Dispenser处递出饮料 2020年4月17日 第八章基于状态的软件测试技术 8 8 1状态转换图 2 自动售货机的例子 S1 Idel StarState S2 DisplayAmount S5 ReturnMoney S3 DisplayAmountNeeded S4 DeliverSoda ReturnChange Poweroff Poweron MoneyInput Cancel EnoughMoney Cancel EnoughMoney FakeMoney NotEnoughMoney MoneyNotEnough 2020年4月17日 第八章基于状态的软件测试技术 9 8 1状态转换图 2 自动售货机的例子 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 Sb 2020年4月17日 第八章基于状态的软件测试技术 10 8 2状态图 1 状态图的概念 状态转换图是无层次结构 状态数目与转移数目随着系统复杂性的增加呈指数增长趋势 导致状态杂乱 难以理解 为了解决STD图的缺陷 Harel提出了状态图 Statechart Harel的状态图是状态转换图 有限自动机的扩展 状态图表示系统行为 提供可视化形式 以模块化风格描述其状态和转移 状态图用来控制和组织详细信息 如果这些信息采用表格形式表示 则所能提供的清晰度将降低 2020年4月17日 第八章基于状态的软件测试技术 11 8 2状态图 1 状态图的概念 S T U E H C G A E B F F 状态转换图 S T U E H C G A E B F D H C表示事件H触发 执行动作C 状态图 D是由S和T合并而成的超级状态 2020年4月17日 第八章基于状态的软件测试技术 12 8 2状态图 2 Harel状态图的属性 状态图提供层次结构可减少系统建模复杂性 支持内容抽象 并发 正交性 全局通信机制 历史状态 具有简洁性 表达能力强 可进行状态分解 1 或 OR 状态 一个超态可以分解为任意多个OR子状态 当一个对象处于超态时 它必须处于其中的一个或者是唯一的一个 或 子状态 U V t1 t0 S 2020年4月17日 第八章基于状态的软件测试技术 13 8 2状态图 2 Harel状态图的属性 2 与 AND 状态 一个超态可以分解为任意多个AND子状态 当一个对象处于超态时 它必须处于每一个活性的 与 子状态 对象正处于的状态称为活性状态 X Y t1 t0 A R S t3 t1 B Z t2 C 2020年4月17日 第八章基于状态的软件测试技术 14 8 2状态图 2 Harel状态图的属性 3 聚类与细化 聚类 Clustering 是自底向上的概念 而细化 Refining 是自顶向下的概念 二者都是描述一个状态和子状态的关系 聚类是减少状态图中转换的数量 为了看清状态转换内部的细节情况 超态可以按照需要分解 展开 这个过程称为细化 S T U E H C G A E B F F 2020年4月17日 第八章基于状态的软件测试技术 15 8 2状态图 2 Harel状态图的属性 S T U E H C G A E B F D U E H C F D 聚类后的状态图 细化后的状态图 2020年4月17日 第八章基于状态的软件测试技术 16 8 2状态图 2 Harel状态图的属性 4 历史态 状态图的历史态 HistoryState 给出了超态最近被访问的状态 历史态分为 浅 历史态和 深 历史态 简单地说 浅 历史态H表示最近进入的并与其处于同级的状态 而 深 历史态H 表示最近访问的处于任意深度级别上的子状态 2020年4月17日 第八章基于状态的软件测试技术 17 8 2状态图 2 Harel状态图的属性 4 历史态 A B E E D H K A B E E D H K 2020年4月17日 第八章基于状态的软件测试技术 18 8 2状态图 2 Harel状态图的属性 5 正交性 正交性本质上是一个AND分解 但注重描述AND状态之间和组件之间的同期并发情况 对于一个Y状态有两个正交组件组成 A和D 由AND运算关联 处于状态Y等价于既处于状态A又处于状态D 那么我们可以通过将A和D中的两个状态合成表示目前Y所处于的子状态 2020年4月17日 第八章基于状态的软件测试技术 19 8 2状态图 3 从状态图变换到STD 为了导出测试用例 需将层次化的状态图变换为 平面 版的状态转换图 U V X Y W R A e g j k e p f in Y T 2020年4月17日 第八章基于状态的软件测试技术 20 8 2状态图 3 从状态图变换到STD A p U X U W V W V X V Y U Y j e j k e g e g k e f 2020年4月17日 第八章基于状态的软件测试技术 21 8 2状态图 4 UML状态图 DavidHarel发明的状态图最初是为面向功能的系统开发的 后来做少量的修改后用在面向对象系统 UML状态图为对象管理服务 是在Harel的状态图的基础上扩展了一些新特性 2020年4月17日 第八章基于状态的软件测试技术 22 8 2状态图 4 UML状态图 2020年4月17日 第八章基于状态的软件测试技术 23 8 3基于状态的测试 1 基于状态的测试概念 定义基于状态的测试是一种基于模型的测试技术 也就是通过建立描述系统行为的状态机 来自动生成测试用例 和白盒测试的区别基于状态的测试一般是用状态图来描述事件序列 或称为用例场景 并由此产生测试用例 白盒测试技术是以代码覆盖为标准来决定测试用例产生数量 测试结束标准 基于状态的测试评价标准是状态 转移覆盖及对不正常 不相关事件的考虑 并由此决定测试用例产生数量和测试结束条件 2020年4月17日 第八章基于状态的软件测试技术 24 8 3基于状态的测试 2 测试步骤 图形化的规格说明书 中介规格说明书 测试说明书 层次化的状态图 平面状态图 测试说明书 使用标记表示特殊状态转移 使用通用方法产生测试用例 2020年4月17日 第八章基于状态的软件测试技术 25 8 3基于状态的测试 2 测试步骤 1 创建图形化的规格说明书需求的图形化表示模型包括数据流图 DFD 实体关系图 ERD 状态图 Statechart 状态转换图 STD 对话图和类图 它们可以作为需求分析工具 用这些图对问题域进行建模 对于复杂的系统行为 语义进行描述 或者用于创建新系统的概念表示法 另外 图形有助于分析者和客户在需求方面形成一致的 综合的理解 可以发现需求的错误 2020年4月17日 第八章基于状态的软件测试技术 26 8 3基于状态的测试 2 测试步骤 2 产生中介规格说明书选用图形规格说明书的目的是要方便生成测试说明书 其中状态转换图和状态图是两种常用的图形化技术 考虑到测试不正常和不相关事件 可能需要在状态转化图添加特殊状态转移标记 对于层次化状态图 需要将其转换成状态转移图即平面化 2020年4月17日 第八章基于状态的软件测试技术 27 8 3基于状态的测试 2 测试步骤 3 生成测试规格说明书上面中介规格说明书是一种有向图 其中一个节点为始点 可能是哑节点 一个节点为终点 也可能是哑节点 遍历从始点到终点的所有路径 包括有效路径和无效路径 每条路径对应于一个测试序列 有效路径是指对于一系列有效输入 系统相应的一系列相应 无效路径是指对于一系列无效输入 系统相应的一系列 意外 处理 2020年4月17日 第八章基于状态的软件测试技术 28 8 3基于状态的测试 3 产生测试用例 1 ATM系统需求用户必须能从ATM卡的任一有效账户上提取现金 提取的金额是20的整数倍 用户必须能在ATM卡的任一有效账户上存款 指放入信封里的现金或支票 用户必须能在ATM卡的任两个有效账户之间进行货币转账 用户必须能查询ATM卡的任一有效账户上的存款余额 2020年4月17日 第八章基于状态的软件测试技术 29 8 3基于状态的测试 3 产生测试用例 2 绘出状态图 S1 Ready S2 AskingforPIN S9 Asking Continue S5 PerformingWithdrawal S6 PerformingDeposit T15 Poweroff T1 Poweron S3 Absobingthecard S4 askingfortransaction S7 PerformingTransfer S8 Reportfailure T3 PINisinvalidFirstandsencond T2 Insertcard T14 Notcontinue T13 continue T5 PINisvalid T4 PINisinvalidThirdtime T6 Withdraw T7 Deposit T8 Transfer T12 Transactionfinished T11 Failed T9 WithdrawalaccountisInvalid PerformTransaction T10 TransferaccountisInvalid 2020年4月17日 第八章基于状态的软件测试技术 30 8 3基于状态的测试 3 产生测试用例 3 由状态转换图产生测试场景从图中抽取一条路径 代表一个测试场景 TS1 Sb T1 S1 T2 S2 T5 S4 T6 S5 T9 S5 T12 S9 T14把TS1中的S5状态分别替换成S6或者S7 有 TS2 Sb T1 S1 T2 S2 T5 S4 T7 S6 T12 S9 T14TS3 Sb T1 S1 T2 S2 T5 S4 T8 S7 T10 S7 T12 S9 T14再考虑一条无效路径 如下 TS4 Sb T1 S1 T2 S2 T3 S2 T3 S2 T4 S3 2020年4月17日 第八章基于状态的软件测试技术 31 8 3基于状态的测试 3 产生测试用例 4 由测试场景产生测试用例测试场景TS1 S1 Ready S2 AskingforPIN S9 Asking Continue S5 PerformingWithdrawal T1 Poweron S4 askingfortransaction T2 Insertcard T5 PINisvalid T6 Withdraw T9 WithdrawalaccountisInvalid T12 Transactionfinished 2020年4月17日 第八章基于状态的软件测试技术 32 8 3基于状态的测试 3 产生测试用例 4 由测试场景产生测试用例假设银行的数据库中的用户信息如下 2020年4月17日 第八章基于状态的软件测试技术 33 8 3基于状态的测试 3 产生测试用例 4 由测试场景产生测试用例使用账户9777644354335

温馨提示

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

评论

0/150

提交评论