结合实际网页来看这个问题。

现在我要注册牛客网,包括邮箱和密码。

首先明确要求,邮箱格式可以用正则表达式来表示为:

^[a-zA-Z0-9]+@(163|126|qq|foxmail|gmail|outlook)\.(com|us|fr|cn)$

等价类法的定义就是,在所有测试数据中,对具有共性的数据集合进行划分。常见划分方法就是有效等价类和无效等价类,简称正向和逆向,代表是否符合校验要求。最后具体步骤大概就是:1. 明确需求。2. 确定正向和逆向 3. 提取数据编写用例。

那我们可以先写逆向用例,比如说@无效

  1. 无@字符。例如xuwuyuan126.com
  2. @字符出现多次 xu@wu@yuan@gmail.com
  3. @字符位置放在串首 @xuwuyuanqq.com
  4. @字符在串尾 xuwuyuanoutlook.com@
  5. 以字母或者数字开头,邮件平台符合要求(126、qq等有效域名),最后带.com,但是@字符跑到用户名里去了(未夹在用户名和域名之间) xuwu@yuan126.com

邮箱域名无效

  1. 前面用户名都正确,但是邮箱域名没在163/126/qq等预选项中,最后跟合法的顶级域名(.com)。例如邮箱域名取hotmail。xuwuyuan@hotmail.com
  2. 同上,前面都正确,后面顶级域名也正确,邮箱域名取shu出错。xuwuyuan@shu.com

根域名问题

  1. 前面全部正确,但最后顶级域名格式错误,没在com/us/fr/cn等预选项中。例如可以写uk或者de。xuwuyuan@gmail.gb
  2. 同理。xuwuyuan@outlook.de

这些逆向用例不能被注册成功,所以最后必须要显示注册失败,不合法,才是预期测试结果。优先级可以定个P1,因为就算有恶意行为,故意输入垃圾数据,导致格式错误的邮箱被存库,也不会有太多影响,不会影响正常用户的使用体验。可以延缓处理,用于减少数据库冗余。

然后来看一下正向用例怎么写

写正向用例尽可能就合为一条,这样可以降低工作量,确保提测后的高效验证。尽可能让前面的用户名满足正则匹配式里的所有情况,即26个大小写字母或数字组合。然后跟一个@,再编排域名,尽可能用到所有正则匹配式里的合法邮箱域名,例如gmail,126...

最后对于顶级域名,也要尽可能铺满正则式里的所有选项。

2xuwM4uyuan@gmail.fr

xuwuKyuan55@foxmail.cn

3xu7UkenvTan@126.com

这些正向用例必须被注册成功,合法,才是与其测试结果。优先级必须定为P0,因为正常用户都必须要通过格式正确的邮箱进行注册。若无法注册,他们的使用体验会受到很大影响。而正常用户又占所有用户的大头。所以必须保证正向用例的实现。

逆向用例也就是控制变量法,将某个局部改错,然后其他部分保持正确。写正向用例时,可以尽可能合为一条,以此降本增效。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐