FROM USE CASES TO TEST CASES

-Test note of “Essential Software Test Design”

2015-08-31

Content:

12.1 What are Use Cases?
12.2 Use cases
  12.2.1 Example: Use Case – Withdraw Money
12.3 The Model – Compiling the Flow Graph
12.4 Creating Base Test Cases
  12.4.1 List All Scenarios

TO DESCRIBE THE requirements on a system, a technique is often used which is called use cases.

12.1 What are Use Cases?


Top

Use cases are a step-by-step description of a flow, where an actor interact with a system. An actor may be one of a number of different user types, the system itself, or other external systems.

The commonest flow – normal use – is called the main flow (also called the normal flow or Happy Path) and variations of this are termed alternative flows.

The overarching work procedure is this:

  1. Compile an activity diagram. If this is already in place, the first step is to review it.
  2. List all scenarios
  3. Analyze and prioritize the scenarios according to risk – which are most important, commonest
  4. Identify the operational variables which can affect the expected result
  5. Write one or more test cases for each scenario

12.2 Use cases


Top

Let us go back to the example of an ATM machine. A simple use case may look like this:

12.2.1 Example: Use Case – Withdraw Money

Assumptions:

  • The customer’s bank is one which is connected to the ATM system.
  • The customer has a correct and functioning magnetic strip card.
  • The ATM is switched on and is in ready mode.
  • The ATM is situated in Sweden so all withdrawals will be in swedish crowns,
  • SEK, and bills that can be withdrawn are 100 or 500 only.

Actors

  • Customer
  • ATM (network)
Main Flow:

H-1. The use case begins when the customer inserts the card.

H-2. The ATM verifies the card and requests the PIN number.

H-3. The customer types in the correct PIN (4 digits).

H-4. The ATM verifies the PIN and asks the customer to type in an amount.

H-5. The customer types in the amount (100-2000 SEK manually or by using the multiple choice keys).

H-6. The ATM verifies that the amount is available in the customer’s account and ejects the card, the money and the receipt, and registers the transaction in the customer’s account.

H-7. The customer takes the card, the money and the receipt.

H-8. The ATM returns to standby mode.

H-9. End of use case.

Results

The customer has carried out a successful withdrawal of money.

The customer’s account is updated with the transaction.

Alternative Flows

Alternative flow – A1 Invalid card

A1-1. At step H-1, the customer inserts an invalid card.

A1-2. The ATM aborts the transaction and the card is ejected.

Alternative flow – A2 Wrong PIN

A2-1. At step H-3, the customer types in the wrong PIN.

A2-2. The ATM registers an incorrect PIN and asks the user to try again.

A2-3. The use case continues with step H-3.

Alternative flow – A3 Wrong PIN, 3 times

A3-1. At step H-3, the customer types in the wrong PIN three times in a row.

A3-2. The ATM swallows the card and the transaction is aborted.

A3-3. End of use case.

Alternative flow – A4 Incorrect input of amount

A4-1. At step H-5, the customer makes an incorrect entry (not divisible by a hundred, funds are not in the account, exceeds permitted maximum withdrawal…)

A4-2. The ATM disallows the entered amount and asks the user to try again.

A4-3. The use case continues with step H-5.

Alternative flow – A5 Customer does not take the money

A5-1. At step H-7, the customer takes the card, but not the money or the receipt within 20 seconds.

A5-2. The ATM leaves the receipt hanging out of the machine and retracts the money, places it in a separate container and writes the amount, account number and cause of defect into a defect log.

A5-3. The use case continues with step H-8.

Alternative flow – A6 The customer’s bank is not on-line (other than Handelsbanken)

A6-1. At step H-6, the ATM cannot verify whether the amount is available in the customer’s account. A message shows that contact with the customer’s bank is being established and the card is ejected.

A6-2. The use case continues with step H-8.

Alternative flow – A7 Customer aborts the withdrawal

A7-1. At all times in the Main flow, apart from steps H-6 and H-7, the customer can choose to abort the transaction

A7-2. The ATM aborts the transaction and ejects the card, and no withdrawal is recorded on the customer’s account.

A7-3. The use case continues with step H-8.

12.3 The Model – Compiling the Flow Graph


Top

If there is not one already, you compile a flow diagram based on the use case.

Figure 12.1: Activity diagram of the flow in the use case «Withdraw Money». We have a starting point but several different end points, with different results.

12.4 Creating Base Test Cases


Top

12.4.1 List All Scenarios

To cover the graph, we generate base test cases for the different flows at hand

  1. Start with the Main flow, which you use for the Happy Day test.
  2. Continue with the alternative flows – one at a time.
  3. There are different combinations of alternative flows. It is not always possible to draw up all the combinations: there may be infinite loops.

FROM USE CASES TO TEST CASES的更多相关文章

  1. USER STORIES AND USE CASES - DON’T USE BOTH

    We’re in Orlando for a working session as part of the Core Team building BABOK V3 and over dinner th ...

  2. 深入理解openstack网络架构(2)----Basic Use Cases

    原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture1 译文转自: http:// ...

  3. Security Test Cases

    https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents Username Enumeration Vulner ...

  4. SSAS CUBE TEST CASES

    经过周末两天和今天的努力,基本上完成并修复了一些bug并且集成到我的MSBIHelper项目中去,可以进行数据测试了.效果图如下: 可以帮助开发人员快速生成等值的Tsql和mdx查询,辅助测试人员快速 ...

  5. 算法最坏,平均和最佳情况(Worst, Average and Best Cases)-------geeksforgeeks 翻译

    最坏,平均和最佳运行时间(Worst, Average and Best Cases) 在上一篇文章中,我们讨论到了渐进分析可以解决分析算法的问题,那么在这一篇中,我们用线性搜索来举例说明一下如何用渐 ...

  6. As of ADT 14, resource fields cannot be used as switch cases

        在导入Android Sample的ApiDemos的时候,发现R.id.xx的文件不能够在 switch cases 中使用 在google查询了下,找到以下答案: As of ADT 14 ...

  7. Unsupervised Learning: Use Cases

    Unsupervised Learning: Use Cases Contents Visualization K-Means Clustering Transfer Learning K-Neare ...

  8. MapReduce 模式、算法和用例(MapReduce Patterns, Algorithms, and Use Cases)

    在新文章“MapReduce模式.算法和用例”中,Ilya Katsov提供了一个系统化的综述,阐述了能够应用MapReduce框架解决的问题. 文章开始描述了一个非常简单的.作为通用的并行计算框架的 ...

  9. Cannot declare class app\home\controller\Cases because the name is already in use

    Cannot declare class app\home\controller\Cases because the name is already in use 命名空间冲突了 use 模型类的时候 ...

随机推荐

  1. RelativeLayout的16种特有属性

    *相对于兄弟控件的位置属性 android:layout_above="@id/center_btn"处于某一个控件的上方 android:layout_below="@ ...

  2. HDU 1159 Common Subsequence 【最长公共子序列】模板题

    题目链接:https://vjudge.net/contest/124428#problem/A 题目大意:给出两个字符串,求其最长公共子序列的长度. 最长公共子序列算法详解:https://blog ...

  3. POJ 2437 Muddy roads【贪心】(区间覆盖)

    题目链接:https://vjudge.net/contest/194475#problem/C 题目大意: 有n滩泥 木板长度为L 求至少需要多少木板才能覆盖这些泥 解题思路: 把泥块的起点升序排序 ...

  4. 如何在Eclipse中查看Java类库的源代码以及相应的api

    你的JDK安装目录下%Java_home%/src.zip文件就是源码,解压缩找到对应包下面的类即可. 如果是Eclipse开发,ctr+鼠标左击,出现不了源码的话,在弹出的视图中点击attach s ...

  5. loj#2128. 「HAOI2015」数字串拆分 矩阵乘法

    目录 题目链接 题解 代码 题目链接 loj#2128. 「HAOI2015」数字串拆分 题解 \(f(s)\)对于\(f(i) = \sum_{j = i - m}^{i - 1}f(j)\) 这个 ...

  6. django——inclusion_tag

    inclusion_tag() 原型: django.template.Library.inclusion_tag() 主要作用:通过渲染一个模板来显示一些数据. 例如,Django的Admin界面使 ...

  7. 给Linux系统管理员准备的Nmap命令的29个实用范例

    map即网络映射器对Linux系统/网络管理员来说是一个开源且非常通用的工具.Nmap用于在远程机器上探测网络,执行安全扫描,网络审计和搜寻开放端口.它会扫描远程在线主机,该主机的操作系统,包过滤器和 ...

  8. Reading privileged memory with a side-channel

    https://googleprojectzero.blogspot.jp/2018/01/reading-privileged-memory-with-side.html https://devel ...

  9. 设置Tab键缩进2字符

    默认是1.74cm,是1.5字符. 论文是4个空格显示为4个点,或者全角下2个空格,显示为2个空格框.看上方的首航缩进标志是否在2. 看图 在段落 格式里面进行设置! 点上图的制表位 打开下图 选默认 ...

  10. JavaScript:jklyDB

    ylbtech-JavaScript:jklyDB 1.返回顶部 1.jklyDB.sql -- ============================================= -- 军科 ...