use case简介
我们常说测试以需求为依据。那么我到底如何组织我们的测试是最接近需求呢。以下我提到一非常重要因素:UseCase----什么是UseCase呢?在 UML的文档中,UseCase的定义是:在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。有点拗口,对 吧?其实UseCase就是对系统功能的描述而已,不过一个UseCase描述的是整个系统功能的一部分,这一部分一定要是在逻辑上相对完整的功能流程。
在使用UML的开发过程中,需求是用UseCase来表达的,界面是在UseCase的辅助下设计的,很多类是根据UseCase来发现的,测试实例是根 据UseCase来生成的,包括整个开发的管理和任务分配,也是依据UseCase来组织的。啊,UseCase,简直太重要了!
UseCase 由以下元素组成:名称、简单描述、事件流、关系、活动图和状态图、UseCase 图、特殊需求、前条件、后条件。
创建USE CASE的原则:1、用例是短文。2、用例可以是一个场景,包括动作和互交。3、用例可以是一组场景,描述不同场景下的行为。这种书写格式可以在任何时候 描述有变体的行为,例如黑盒需求,业务流程,系统设计说明。4、用例里不要有系统设计。5、用例里不要有界面设计。6、用例里不要有特性列表。7、用例里 不要有测试。8、用例应该描述行为需求。9、用例的主场景不要超过九步。可以在适当的层次上得到子目标和移除设计说明。10、用例的最大价值不在于主场 景,而是在于备选行为。主场景可能只占用例长度的四分之一到十分之一。
总的来说:UseCase 是系统提供的功能块,换句话来说UseCase演示了人们如何使用系统。通过UseCase观察系统,能够将系统实现与系统目标分开,有助于了解最重要的 部分――满足用户要求和期望,而不会沉浸于实现细节。通过UseCase 用户可以看到系统提供的功能,先确定系统范围再深入开展项目工作。
use case应当细到相当的程度,起码应当细到让一个对业务逻辑不了解的人看过之后能够了解整个业务过程,只有达到这种程度的设计,具体的编码人员才能按照你的设计思想去填写代码。就像盖楼一样,建筑工人是不用(也不太可能)去考虑图纸是如果画成的。
use case 大量用来描述系统和外部的交互,而不是把什么都用USE CASE来做.如果那样,还要时序图,状态机等等干什么呢?总的来说use case是从高层来描述系统的,你甚至可以用一个USE CASE来描述你的系统,但大多数情况下是使用多个小的USE CASE来构成用例模型.
use case是一种UML吗 答案是--不是。 但是use case可以用UML符号来说明 当然也可以不用。use case是一种格式化的文档。它是是由用户和系统在一次对话中执行的一个特殊事务序列 。当然我观察这里大多数人都在说use case的时候 其实他们是在说use case diagrams 。
use case需要写的很详细吗 ? 其实这个问题如果这样问,use case 需要一开始就写的很详细吗? 还有所有的use case都需要在开始的时候就写的很详细吗? 我认为这会由于你是不是支持迭代而有所不同 。 而统一的答案是没有的 。
那么能详细到什么程度呢 实际上对use case描述的详细程度一直是一个没有统一答案的问题 有各种各异的说法 当然可能在瑞理那里你会得到的答案是统一的 但是你记住use case不是瑞理私有的一种技术 所以你应该可以建立起符合自己组织实际情况的一套标准 而你这里说的详细标准 我看是指的说明的详细程度 而不是对use case粒度划分的程度 这不是大问题 其实我看只要你可以把你的业务流程表叔清除 而没有角色和动作的遗漏就可以了 当然不要忘记前置和后置条件
use case实际上是一种需求的分析工具 而且它之停留在系统的外部 而不应该试图去用它来说明系统内部的运行情况。系统内部的运行情况是你的设计工作所要解决的问题 所以你不管对use case书写多么详细 也不可能代替你的设计 不可能会发生coder看着use case直接向里面填写代码的事情发生 但是我不知道你指的复杂的逻辑角色是什么 如果你指的是系统运行时候参与的角色 那么我认为你必须在需求中解决这个问题 也就是你必须在use case中把它们表达清除 而具体如何通过对它们的计算得到最后的结果 则不是use case所包括的必然部分 当然你给出解决方法(可能是客户现在的解决方法 也或许是你从什么地方找到的方法)会有好处
还有我不认为你可能把use case书写到一个对业务完全不懂的coder看过你的use case就能了解业务了 这是不太可能的 当然我不排除有这样的例子 但是如果你试图这样做你就要准备把你的use case书写成一部业务手册 其实use case还是要和客户的现场答疑 顾问的咨询 业务资料的研读等多种方法结合才可能使coder对业务有一个大概的了解 当然即使是这样你依然部可能要求他们吃完领域专家
最后说说用例的粒度问题 这是一个老话题 我在这个地方就回答过多次 我现在依然认为use case的粒度划分没有一个绝对的标准 你只是要做到适合自己使用就可以了 如果你认为增加记录可以是一个use case 那么就是一个use case好啦 这是你的选择 你只是需求对你划分粒度所带来的后果做成评估
use case简介相关推荐
- html5制作大小写转换,Convert Case - 英文大小写转换工具
Convert Case - 英文大小写转换工具背景介绍 大家在敲键盘.输入文字的时候是会看着屏幕的吗?或许有些人会盯着键盘,从中找到自己要使用的按键,但这有可能发生一个常见问题是没有切换到适当输入法 ...
- golang switch case语句 简介
注意: 1.switch/case 后是一个表达式(即:常量,变量,一个有返回的函数都可以): 2.case后的各个表达式的值的数据类型,必须和switch的表达式数据类型一致: 3.case后面可以 ...
- mysql case 2个返回值_MySQL函数简介 2
6.5 条件判断函数 条件判断函数也被称为控制流程函数,根据满足的条件的不同,执行相应的流程,Mysql中进行条件判断的有IF,IFNULL,和CASE. 6.5.1 IF(expr,v1,v2)函数 ...
- SQL之case when then用法简介
case表达式是一种查找型表达式的范例,其语法如下: CASE WHEN C1 THEN E1 WHEN C2 THEN E2 - WHEN CN THEN EN [ELSE ED] 在上面的定义中, ...
- CASE软件Enterprise Architect简介和使用入门图解
一 Enterprise Architect 生命周期软件设计方案--Enterprise Architect是以目标为导向的软件系统. 目录 1 介绍 2 作用 ▪ 提供建模工具 ▪ 特性丰富系统设 ...
- 2021年大数据常用语言Scala(一):Scala简介
目录 一.Scala简介 为什么使用scala Scala对比Java 案例 一.Scala简介 scala是运行在JVM上的多范式编程语言,同时支持面向对象和面向函数编程 多范式:就是包含多种编程思 ...
- shell 语法简介(转载)
一.基本语法 1.1.shell文件开头 shell文件必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使 ...
- sparkcore分区_Spark学习:Spark源码和调优简介 Spark Core (二)
本文基于 Spark 2.4.4 版本的源码,试图分析其 Core 模块的部分实现原理,其中如有错误,请指正.为了简化论述,将部分细节放到了源码中作为注释,因此正文中是主要内容. 第一部分内容见: S ...
- 降维后的高维特征的参数_高维超参数调整简介
降维后的高维特征的参数 by Thalles Silva 由Thalles Silva 高维超参数调整简介 (An introduction to high-dimensional hyper-par ...
最新文章
- 写给工程师的十条精进原则
- 【Linux 内核】调度器 ① ( 调度器概念 | 调度器目的 | 调度器主要工作 | 调度器位置 | 进程优先级 | 抢占式调度器 | Linux 进程状态 | Linux 内核进程状态 )
- ECharts-图表回执组件
- day04 JavaScript高级程序设计 阅读总结
- 在CSDN博客和QQ微信等社交媒体中使用表情符号(保姆级图文+实现代码)【杂记】
- 蓝宝书优缺点之GRE词汇盘点
- html中版权怎么写,html版权符号代码怎么打?通过什么方式输入?
- Vue学习(学习打卡Day13)
- ios - 农历公历互转 农历选择器
- Redis 实现限流器的三种方法
- 74LS85 比較器 【数字电路】
- APP怎么在论坛推广?行业论坛渠道要把握!
- 第三方数据采集卡在LabVIEW中使用Express VI简化编程范例
- 空心少年的伤感QQ日志:放弃你,不代表放弃爱你
- Nginx系列之使用ssl模块配置支持代理HTTPS链接
- 百度音乐 android,Android 百度音乐 - CNMO
- 制作水晶头,网线的排线顺序应怎样排
- 浏览器文件下载和图片显示(流形式)
- flex开发的仿pdf阅读器(swftools将PDF转成swf)
- onethink入门笔记(一)