用例设计

摘要:
如果呼叫失败,将重试呼叫。第二天仍然异步调用当天的付款也是正常的。测试人员还应测试重复回调,该回调只应有效一次。

1.支付用例:

金额框填写校验:只能是数字/小数点两位/金额为空/边界值校验:大于小于等于负数

支付方式:余额(余额不足)/第三方支付:密码填写错误/未安装第三方支付app→跳转或者提示/转账汇款:填写银行卡,信用卡的校验/支付方式空时提交

其他:部分支付/补缴支付/重复支付(避免:未返回前不能再次点击支付loading

安全:修改支付金额或者支付方式后(charles),后台和第三方的需要校验并且返回/重要的参数传参时需要加密/取消支付/重复支付/支付时订单已取消

网速:限速测试→订单支付状态和扣款记录,/提交支付时限速/提交金额成功,返回结果时限速/支付成功但是数据回传给App时,请求超时

安全的解决方案:

为了进一步的加强支付功能的安全,也可以适当的增加一些监控机制,比如:订单与第三方订单进行对比,可以使用跑批完成,当我们完成支付的订单从数据库中查出来与通过第三方订单查询接口查询出来的同一个订单金额有异常时,进行报警通知能够及时发现处理,甚至当有异常情况进行创建订单的终止,从而把损失降到最低。

支付流程图:

用例设计第1张

支付同步和支付异步:

当一个支付请求被发送到支付渠道方,支付渠道会很快返回一个结果。但是这个结果,只是告诉你调用成功了,不是扣款成功,这叫同步调用。很多新手会拿这个结果当作支付成功了,那就会被坑死,结果就是支付成功率特别高,伴随着一堆无法解释的坏账率,测试人员尤其要注意测试数据的篡改:金额,同步返回结果,订单号等。

同步请求参数里面会有一个回调地址,这个地址是支付渠道在扣款成功后调用的,这叫异步调用。一般同步接口仅检查参数是否正确,签名是否无误等。异步接口才告诉你扣款结果。一般异步接口有5秒以内的延迟。调用不成功会重试。有时候是这边成功了,但支付渠道侧没收到返回,于是会继续调。当天的支付到第二天还在被异步调用也都是正常的。这也是开发人员需要特别注意的地方,不要当做重复支付。测试人员也要对重复回调进行测试,应只有一次有效。这还不是最坑的,一般支付渠道侧,只有支付成功了才通知你。要是支付失败了,压根儿都不告诉你。 另一方面,如何老收不到异步结果呢?那就得查查了。同步结果不可靠,异步调用不可靠,那怎么确定支付结果?最终的杀招就是查单了,反查,一般支付渠道侧都会提供反查接口,定时获取DB中待支付的订单调用支付渠道侧的反查接口,最终把支付渠道侧扣款成功的订单完成掉。

其他: 

 1、测试项目——电梯

     需求测试:查看电梯使用说明书安全说明书等。

     功能测试:

      1、上升键和下降键,电梯的楼层按钮是否正常;

      2、 开关键是否正常,报警装置是否安装,报警电话是否可用;

      3、通风状况如何,是否有手机信号;

      4、在电梯上升过程中的测试,比如电梯在1楼,有人按了18楼,在上升到5楼的时候,有人按了10楼,电梯会不会停;

      5、在电梯下降过程中的测试,比如电梯下降到10层时显示满员,若有人在5楼等待,此时还会不会停。

      压力测试:

       看电梯的最大承重重量,在电梯超重时,报警装置是否启用,在一定时间内让电梯连续的上升和下降,看在最大负载条件下平稳运行的时间。

     界面测试:

      查看电梯的外观,电梯的按钮是否好用(开和关按钮设计的图标不容易区分),电梯的说明书是否有错别字。

     可用性测试:

     电梯的按钮是否符合人的使用习惯。

     用户文档:

     使用手册是否对电梯的使用,限制等有描述。

2、测试项目——杯子

     需求测试:查看杯子的使用说明书,安全说明书等。

     功能测试:

      1、杯子能否装水;

      2、可以装多少L的水;

      3、杯子是否可以放冰箱;

     4、水可不可以被喝到。

     安全性测试:

     1、杯子有没有毒和细菌;

     2、杯子从高处坠落,是否已破;

     3、杯子是否有缺口,容易滑倒嘴巴;

     4、将杯子放入微波炉中,是否爆炸或融化;

     性能测试:

    1、看杯子能够容纳的最大体积和最高温度;

     2、将杯子盛上水,经过24小时后查看杯子的泄露情况和时间(可分别使用水和汽油做测试)

     3、将杯子装上填充物,看不会摔破的最高度;

     4、用根针并在针上面不断加重量,看压强多大时会穿透; 

     可用性测试:杯子是否好拿,是否烫手,是否防滑,是否方便饮用。

     兼容性测试:除了装水,是否还可以装其它的液体,比如果汁,汽油等。

     界面测试:查看杯子的外观:杯子是什么材质的,颜色,外形,重量,图案是否合理,是否有异味。

    用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述。

3、测试项目——笔

    1、需求测试:查看使用说明书。

    2、功能测试:能不能写字 。

    3、界面测试:查看笔的外观 。
    4、可靠性:笔从不同高度落下摔坏的程度。 

    5、安全性:笔有没有毒或细菌 。
    6、可移植性:笔在不同的纸质、温度等环境下是否可以使用。 

    7、兼容性:笔是否可以装不同颜色、大小的笔芯 。

    8、易用性:是否方便使用、方便携带 。
    9、压力测试:给笔不断的增加重力,观察压力多大时压坏。 
   10、震动测试:笔在包装时,各面震动,检查是否能应对恶劣的公路、铁路、航空运输。

   11、跌落测试:笔包装时,在多高的情况下摔不坏。

4、测试项目——桌子

    需求测试:查看桌子相关的使用说明书。

    功能测试:桌子是办公用的还是防治东西用的,桌子的面积大小是否适合;

    界面测试:桌子的桌面是否平滑,有没有凹凸不平的地方;

    安全性测试:桌子的支撑点是否可靠;将桌子推倒后,它的损坏情况;

    压力测试:桌子可以承受的重量;

   可用性测试:桌子是否好移动;它的重量是否合适;

5、测试项目——洗衣机

   需求测试:查看洗衣机的使用说明书。

   功能测试:洗衣机是否正常的洗衣服;

   安全性测试:洗衣机是否漏电;

   兼容性测试:除了洗衣服是否还可以洗其它的;

   性能测试:使用时电量如何,是否满足客户需求;加到一定量的衣服后,过一段时间,看洗衣机是否正常洗;通过逐步增加系统负  载,最终确定在什么负载条件下系统性能将处于崩溃状态,以此获得系统能提供的最大服务

   界面测试:洗衣机的外观是否符合用户的需求;

   可用性测试:洗衣机的操作是否简单已操作;

6.矿泉水瓶的测试用例:

测试项目:矿泉水
需求测试:查看使用说明书
界面测试:查看外观
功能度:用水杯装水看漏不漏;水能不能被喝到
安全性:瓶子的材质有没有毒或细菌
可靠性:从不同高度落下的损坏程度
可移植性:再不同的地方、温度等环境下是否都可以正常使用
兼容性:是否能够容纳果汁、白水、酒精、汽油等
易用性:是否烫手、是否有防滑措施、是否方便饮用
用户文档:使用手册是否对的用法、限制、使用条件等有详细描述
疲劳测试:将盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透

跌落测试:高度

7.两部电梯的测试用例

界面测试:

外观(里面、外面)美观性

电梯空间尺寸是否和设计尺寸一致

按钮是否清晰和易懂

显示楼层的显示屏是否安装

是否联系外界的电话、紧急电话

设备检测说明书

安全规范说明书

标识的承重和人数

扶手

镜子

仅提供可到达楼层的按钮

电梯制作的材料

功能测试:

测试电梯能否实现正常的上升和下降功能,每层是否都可以停靠。

每层停靠楼层是否与所按的楼层一致

电梯按键在按下时是否点亮按键灯

电梯在每个楼层的上行和下行的申请是否可以有效

电梯满负载的时候,是否会忽略其他楼层外部的上行和下行申请

电梯的两边按钮是否都可以使用,三列按钮。

电梯的楼层选择是否可以取消

电梯门的打开,关闭是否正常关闭(自动关闭)。

报警装置是否可用。(满载)

超重时是否能强制关门

超重时重新挪动一下人员是否可以上下行

与另外一部电梯之间是否协作良好。(算法)

电梯的灯光是否满足看书的要求

联系外界的电话是否可用

通风状况如何,人多的时候是否会很热,通风不畅(排气扇)

电梯里面的摄像头是否可用,拍摄是否清晰

门不夹人

伸手的话,应该不会强制关门

管理员可以和内部人通话

在各种场合下,可以强制开门

运行中时,不能按开门键,不会强制开门

在不同情况下(如:有人挡着、马上关门的时候、停电的时候、没有请求的时候),一直按开门键和关门键

从电梯外部可以强制开门

不同温度下的测试

进入电梯,拨打手机,是否有信号

进入电梯喊话,外面是否能听到

楼层显示屏显示的楼层、以及电梯运行升降状态是否正确

两台电梯能否同时使用(或停用)

其中一台使用,另一台是否可以停用

A电梯按上行,B电梯按上行

A电梯按上行,B电梯按下行

A电梯按上行,B电梯按上下行

A电梯按上行,B电梯按下上行

A电梯按下行,B电梯按下行

A电梯按下行,B电梯按上下行

A电梯按下行,B电梯按下上行

A电梯按上下行,B电梯按上下行

A电梯按上下行,B电梯按下上行

电梯空时如何运转

电梯门开时不进电梯

进入电梯后不做任何操作

电梯门开的时间多长,超过时间后是否自动关门

电梯门开的时间超时后关门到最后2厘米,是否可以撬开门

电梯门关闭后还未上升时,电梯外按下上行(或下行)按钮,电梯门是否会打开

电梯最底层是否有下行按钮

电梯最顶层是否有上行按钮

停靠算法测试:

2部均空闲时,采取就近原则,离乘电梯人最近的电梯优先运行;

1部运行时,以同行方向且顺路的电梯优先运行,否则安排空闲电梯;

2部均运行时,以方向通行且顺路的电梯优先运行;

每部电梯,在电梯内部每层在上升和下降过程中,再电梯内部均申请每层停靠

每部电梯,在电梯内部每层在上升和下降过程中,再内部没有任何申请的情况下,在电梯外部均申请每层停靠

每部电梯,在电梯内部每层在上升和下降过程中,再电梯内部均申请每层停靠,在电梯外部也申请每层停靠

电梯本来在1楼,如果有人按18楼,那么电梯在上升到5楼的时候,有人按了10楼,这时候是否会在10楼先停下来

电梯下降到10层时显示满员,此时若8层有人等待电梯,是否在8层停。

类似78测试步骤地随机测试,在电梯内部和外部均有不同组合申请的情况下,验证楼层停靠是否准确和合理。

电梯的平稳性,是否会上升过快或者下降过快,造成人体不适应反应

可靠性:

无任何申请的时候,可以长时间停留在某层,并且门是关闭的

门关上的一刹那出现障碍物。

长期有障碍物在门口堵住,电梯应该也不会关门或上升和下降

同时按关门和开门按钮。

快速交替按关门开门按钮

点击当前楼层号码。

快速点击不同楼层

上升到顶层后,电梯中的原有下楼请求均会被取消

下降到负楼层后,电梯中的原有上楼请求均会被取消

电梯外部同时按上键和下键会怎样。

长按打开按钮,电梯门是否持续打开

突然停电或超载时的情况,电梯(停靠、正在上升、正在下降)不会坠落,电梯门可以通过外力打开,并且紧急电话可用

电梯运行中,申请马上要经过的楼层停靠,电梯应该不会停靠。

在电梯里面蹦跳,电梯不会出现不稳定的情况。

电压不稳定的情况下的电梯运行情况

电梯不能正常工作的时候是否有监控系统自动报警

电梯不能正常工作的时候,是否有流程可以精确的指定到人进行所有故障解决的高效处理

易用性:

电梯的按钮的设计符合一般人使用的习惯吗.

按钮是否考虑残疾人和小孩儿

楼层显示屏是否处于电梯的上部,方便别人看到

可维护性

是否有方便维修和维护电梯的工作条件(竖井通道、统一断电等)

电梯的常用配件是否容易更换

电梯的维修成本如何

电梯的安装、维护、测试

超过维修年限,是否可以正常运转

8.登录测试用例

功能性用例设计点:

1.输入已注册的用户名和正确的密码,验证是否成功登录

2.输入已注册的用户名和不正确的密码,验证是否成功失败,且提示信息正确

3.输入未注册的用户名和任意密码,验证是否登录失败,且提示信息正确

4.使用未激活账户登录,验证是否登录失败

5.使用被停用用户登录,验证是否登录失败

6.用户名和密码两者都为空,验证是否登录失败,且提示信息正确

7.用户名和密码两者之一为空,验证是否登录失败,并且提示信息正确

8.如果登录功能启用了验证码功能,在用户名和密码正确的情况下,输入正确的验证码,验证是否登录成功

9.如果登录功能启用了验证码功能,在用户名和密码正确的情况下,输入错误的验证码,验证是否登录失败,且提示信息正确

10.用户名和密码是否大小写敏感

11.页面上的密码框是否加密显示、或者是否需要有明暗码切换按钮

12.后台系统创建的用户第一次登录成功时,是否提示修改密码

13.忘记用户名和忘记密码的功能是否可用

14.前端页面是否根据设计需求限制用户名和密码长度

15.如果登录功能需要验证码,点击验证码图片或者点击换一张是否可以更换验证码,更换后的验证码是否可用

16.刷新页面是否会刷新验证码

17.如果验证码有时效性,需要分别时效性内和时效性外验证码的有效性

18.用户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面

19.不同级别的用户,比如管理员和普通用户,登录系统后权限是否正确

20.页面默认焦点是否定位在用户输入框中

21.快捷键TabEnter等,是否可以正常使用

22.为空和输入空格字符串的校验是否一致

23.使用中文键盘输入字母和使用英文键盘输入字母传入后端的字符长度是否一致

24.成功登录后的session的时效设置

25.输入栏是否设置快速删除按钮

26.用户名和密码是否支持特殊字符和中文

27.浏览器的前进后退按钮,是否有效

28.成功登出后,点击浏览器回退按钮,是否可以继续操作系统

29.需求中是否有登录时间限制,如果有验证时间限制是否有效

30.验证不同登录方式的正确性:扫码、账号密码、第三方……

31.若支持手机号+验证码登录,验证码是否有时间限制,移动设备是否可以直接获取验证码

32.操作错误提示信息是否简单明了

兼容性测试用例设计点:

1.不同浏览器下,验证登录页面的显示以及功能正确性

2.相同浏览器的不同版本下验证登录页面的显示以及功能正确性

3.不同移动设备终端的不同浏览器下,验证登录页面显示以及功能的正确性

4.不同分辨率的界面下,验证登录页面的显示以及功能正确性

安全性测试用例设计点:

1.用户密码后台存储是否加密

2.用户密码在网络传输过程中是否加密

3.密码是否具有有效期,密码有效期到期后,是否提示需要修改密码

4.不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面

5.密码输入框是否不支持复制粘贴

6.密码输入框内输入的密码是否都可以在页面源码模式下被查看

7.用户名和密码输入框分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面

8.用户名和密码输入框分别输入典型的“XSS跨站脚本攻击”字符串,验证系统行为是否被篡改

9.连续多次登录失败的情况下,系统是否会阻止后续的尝试以应对暴力破解

10.同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性是否符合设计预期

11.同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性

12.是否可以记住密码,记住的密码保存是否加密,记住的密码是否有有效期,过了有效期后是否清空密码

13.是否支持第三方登录

14.密码的强弱性,复杂度校验

15.异地登录校验、更换设备登录校验、登陆信息异常是否考虑账户冻结停用、是否允许第三方平台存储密码

16.是否可以使用登录的api发送登录请求,并绕开验证码校验

17.是否可以用抓包工具抓到的请求包直接登录

18.截取到的token等信息,是否可以在其他终端上直接使用,绕开登录,token过期时间校验

19.登录错误后的提示是否存在安全隐患

性能压力测试的用例设计点:

1.单用户登录的响应时间是否小于3

2.单用户登录时,后台请求数量是否过多

3.高并发场景下用户登录的响应时间是否小于5

4.高并发场景下服务端的监控指标是否符合预期

5.高集合点并发场景下,是否存在资源死锁和不合理资源等待

6.长时间大量用户连续登录和登出,服务器是否存在内存泄露

7.输入内容校验是否加入了函数防抖

淘宝购物流程图:

用例设计第2张

免责声明:文章转载自《用例设计》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【工利其器】必会工具之(三)systrace篇(1)官网翻译当共享和访问出现问题时下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

软件测试方案模板

第一章 概述 ​ 软件的错误是不可避免的,所以必须经过严格的测试。通过对本软件的测试,尽可能的发现软件中的错误,借以减少系统内部各模块的逻辑,功能上的缺陷和错误,保证每个单元能正确地实现其预期的功能。检测和排除子系统(或系统)结构或相应程序结构上的错误,使所有的系统单元配合合适,整体的性能和功能完整。并且使组装好的软件的功能与用户要求(即常说的产品策划案)...

在GNU/Linux下制作Windows 10安装U盘

今年春节回家期间,我需要将家里的一台安装了Debian Stretch的ZaReason笔记本电脑更换为Windows 10系统,好让爸妈从老台式机上的XP系统升级到新的平台上来。回家前,小仙女已在微软官网帮我买好了正版软件,我也利用微软提供的Media Creation Tool创建了安装U盘。然而,等拿回家后安装的时候才发现,安装密码无效。联系客服后得...

AXURE插件在 Chrome 浏览器中用不了怎么办?

使用Chrome浏览器打开axure设计的原型的时候可能无法正常显示,这时Chrome会提示你安装axure rp for Chrome插件。此前,我们只需要简单的点击install。2013年12月谷歌修改Chrome服务条款限制Chrome用途,宣布从2014年1月起,将不再允许Windows版的Chrome浏览器安装和运行来自官方应用商店外的插件。但...

【原创】大叔经验分享(21)yarn中查看每个应用实时占用的内存和cpu资源

在yarn中的application详情页面 http://resourcemanager/cluster/app/$applicationId 或者通过application命令 yarn application -status $applicationId 只能看到应用启动以来占用的资源*时间统计,比如: Aggregate Resource Allo...

Linux Oracle 11g dataguard物理standby的配置

这两天研究了下oracle 11g dataguard 物理standby 功能,总体来说这个功能满足公司需求,好了,不多说了,以下是详细的配置过程。 主库: IP:192.168.77.5 主机名:nod1 ORACLE_SID=test ORACLE_BASE=/oracle/app/oracle ORACLE_HOME=/oracle/app/or...

细说 Form (表单)

细说 Form (表单) 阅读目录 开始 简单的表单,简单的处理方式 表单提交,成功控件 多提交按钮的表单 上传文件的表单 MVC Controller中多个自定义类型的传入参数 F5刷新问题并不是WebForms的错 以Ajax方式提交整个表单 以Ajax方式提交部分表单 使用JQuery,就不要再拼URL了! id, name 有什么关系 使用C#...