12.6 How would you test an ATM in a distributed banking system?

这道题问我们如何来测试一个自动取款机,我们首先要询问下列问题:

- 谁来使用这些ATM?回答可能是任何人,或者是盲人,或者是其他什么答案。

- 这些ATM用来干什么?回答可能是取钱,汇款,查余额等。

- 我们用什么工具来测试?我们能接触到代码吗,还是只有ATM机子?

一旦我们搞清楚了上述问题,我们可以将测试部分分为下列几个部分

- 登陆

- 取钱

- 存钱

- 查余额

- 汇款

我们可能需要使用一些列混合的手动或者自动的检测。

手动测试需要检查上述步骤,保证检查到所有的错误情况,比如余额不足,新账户,不存在的账户等。

自动测试稍微复杂一些,我们想要自动检测一些情景,检测一些特定的问题,比如race condition等问题。我们可以建立一个虚假账号,当某人在异地快速的存取钱,保证此账户不会额外的得到或者丢失钱。

综上,我们需要仔细检查安全性和可靠性。用户的账户一定要被保护,我们必须保证钱正确的流通,每个人都不想意外的损失钱。

[CareerCup] 12.6 Test an ATM 测试一个自动取款机的更多相关文章

  1. [CareerCup] 12.4 Test a Webpage 测试一个网页

    12.4 How would you load test a webpage without using any test tools? 这道题问我们如何不用任何测试工具来加载测试一个网页.加载测试可 ...

  2. [CareerCup] 12.5 Test a Pen 测试一支笔

    12.5 How would you testa pen? 这道题让我们测试一支笔,我们需要问面试官许多问题来理解"who,what,where,when,how and why" ...

  3. 黑苹果macOS Sierra 10.12 安装教程(venue11 pro测试)

    黑苹果macOS Sierra 10.12 安装教程(venue11 pro测试) 2017-03-12 03:46:24 by SemiconductorKING PS:刚刚装好黑苹果,来记录一篇折 ...

  4. 如何测试一个WEB的输入框?

    WEB输入框是B/S架构系统中页面使用非常频繁的控件,比如我们登录一个网站,输入 用户名和密码的控件都是输入框,比如使用百度搜索,在输入搜索内容的控件也是输入框,比如网购一个物品,我们需要输入购买的数 ...

  5. <转>如何测试一个杯子

    在软件测试的面试中, 经常会碰到类似的问题. 比如:如何测试一个杯子, 或者如何测试一只笔. 要求你设计20个以上的test case. 这类的面试题目,是考察面试者是否熟悉各种软件测试方法, 设计t ...

  6. 测试一个函数的运行时间(C++)

    #include <ctime> static clock_t Start,Finish; Start=clock(); fun(); Finish = clock(); double t ...

  7. 使用Junit测试一个 spring静态工厂实例化bean 的例子,所有代码都没有问题,但是出现java.lang.IllegalArgumentException异常

    使用Junit测试一个spring静态工厂实例化bean的例子,所有代码都没有问题,但是出现 java.lang.IllegalArgumentException 异常, 如下图所示: 开始以为是代码 ...

  8. 打造一个自动检测页面是否存在XSS的小插件

    前言: 还记得刚玩Web安全时,就想着要是能有一个自动挖掘XSS漏洞的软件就好了.然后我发现了Safe3.JSky.AWVS.Netsparker等等,但是误报太多,而且特别占内存.后来发现了fidd ...

  9. C#实现ATM自动取款机

    本篇用C#实现ATM自动取款机的一些功能.面临的第一个问题是:如何把与自动取款机相关的有形的.无形的方面抽象出来.大致如下: (1)关于用户帐号的类:Account(2)关于银行数据库的类:BankD ...

随机推荐

  1. (网络层)IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  2. Redis的数据类型及操作

    Strings 最简单的类型,一个Key对应一个Value,string类型是二进制安全的.Redis的string可以包含任何数据,如图片或序列化的对象 操作 Set:设置key对应的值为strin ...

  3. ELK 信息统计分析-1

    Aggregations 格式如下: "aggregations"{ //可以简写为aggs "<aggregation_name>":{ //名称 ...

  4. Sublime text3中配置Github

    一.Git安装 到Git的 官网 上去下载相应环境的Git安装文件. 我的是win10,安装到D:\ProgramFiles\Git,在桌面右键出现下面两个红色框框就可以了. 二.Git配置及生成密钥 ...

  5. 《JavaScript修炼之道》读书笔记

    1.参考书目 入门:<JavaScript DOM编程艺术>第二版 进阶:<JavaScript高级程序设计>第二版.<JavaScript编程精粹> <Ja ...

  6. 4412开发板Android教程——Android平台简介

    本文转自迅为开发板论坛:http://www.topeetboard.com Android和IOS Android的历史 Android公司 2005年Google收购成立22个月的Android公 ...

  7. 迅为4412开发板支持AVIN视频输入/AV监控摄像头输入模块

    AVIN模块(iTOP-4412开发板专用) 产品介绍:视频输入/AV监控摄像头输入模块: 该模块及配套的软件为开发视频采集.监控.车载后视等产品提供了很好的参考. iTOP-4412 开发平台 开发 ...

  8. 边工作边刷题:70天一遍leetcode: day 85-3

    Zigzag Iterator 要点: 实际不是zigzag而是纵向访问 这题可以扩展到k个list,也可以扩展到只给iterator而不给list.结构上没什么区别,iterator的hasNext ...

  9. HDU 2189 悼念512汶川大地震遇难同胞――来生一起走 --生成函数

    这题跟上两题也差不多. 把150以内的素数找出来,把素数的值看做硬币的面值,每个硬币的个数即ceil(150/prime[i]),因为再多也没用,最多组成n=150就行了,所以又回到了找硬币问题.用生 ...

  10. Android学习----自适应国际化语言

    [前言] 自适应的知识与编程无关,关键在于配置文件的修改.自适应的内容包括:语言.屏幕.平台.今天就来说一下如何自适应国际化言. internationalization (国际化)简称:i18n,因 ...