密码组件校验规则该如何测试?

简介: 大家好,我是阿萨。日常工作生活中处处需要密码。现在随便个网站都需要输入密码,而且密码校验也挺严格的。那么针对密码输入框的校验规则测试用例该如何设计?

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情

大家好,我是阿萨。日常工作生活中处处需要密码。现在随便个网站都需要输入密码,而且密码校验也挺严格的。那么针对密码输入框的校验规则测试用例该如何设计?

日常我们经常碰见如下密码校验提示信息,今天我们测试个类似场景。


36.jpg

36.jpg


一. 需求分析

一般情况下,密码都需要满足的要求有:

  1. 长度大于8,小于32位。
  2. 大小写字母都必须有
  3. 包含数字
  4. 包含特殊字符
  5. 不能包含用户名,或者用户名的倒序。

以上5个条件任意一个不满足都不能认为密码是OK的。

必须满足以上5个条件才可以认为是强密码。

今天需求简化了一下。没有列举截图里的图片原因是:

  1. 一般人其实不知道什么是弱密码。
  2. 常用的具有特殊含义的字符串,其实很多人也不太清楚。
  3. 三个及以上键位的,如果用惯了9宫格输入法,会忘记键盘键位。

因为都是无效等价类的校验,原理类似。所以简化成上面需求。


二. 设计测试用例方法分析

一提到设计测试用例,等价类划分法,边界值这些耳熟能详的方法都出来啦,还有比较高级一点的pairwise,俗称pair 因子法。

那我们看看等价类,以上5个条件都有有效等价类和无效等价类。分别列举符合5个条件的有效等价类和无效等价类。然后pair因子组合下。

长度使用边界值法:

7,8,32,33位长度的密码进行测试。

 

测试重点是所有无效等价类场景列举全面。

大小写的无效等价类,全大写或者全小写。

数字无效等价类和大小写无效等价类可以使用相同的内容。

特殊字符的无效等价类就是大小写和数字啦。

用户信息的无效等价类就是使用用户名和用户名的倒序。

接下来我们列举下所有测试用例。


三. 列举测试用例。

  1. 所有条件都满足的密码。5个条件结果都为真。
  2. 长度为7/33位的其他条件都满足的密码。长度无效等价类+4个真。
  3. 长度8位,只包含小写和特殊字符以及数字的不包含用户名信息的密码。大小写无效等价类+4个真。
  4. 长度为32位,大小写和特殊字符都有,无数字的不包含用户信息的密码。数字的无效等价类+4个真。

5.长度为16位,大小写,数字,特殊字符,包含用户名的密码。用户名信息无效等价类+4个真。

  1. 全大写字母+全小写字母+数字+ 无用户名信息。长度无效等价类+特殊字符无效等价类+3个真。
  2. 所有特殊字符+1个数字+1个大写+1个小写。 5个真。
  3. 全大写字母
  4. 全小写字母
  5. 全数字

11.全特殊字符

  1. 防SQL注入测试

以上列举测试用例仅代表个人意见。欢迎私信我我的遗漏场景。

如果你喜欢我今天的答案,欢迎点赞,关注。


相关文章
|
15天前
|
JavaScript 测试技术 API
Jest进阶:测试 Vue 组件
Jest进阶:测试 Vue 组件
|
16天前
|
前端开发 JavaScript 安全
学习如何为 React 组件编写测试:
学习如何为 React 组件编写测试:
33 2
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能:改变游戏规则的革新
在这篇技术性文章中,我们将深入探讨人工智能(AI)如何彻底改变了软件测试领域。从自动化测试到智能缺陷检测,AI不仅提高了测试的效率和准确性,还为软件开发团队提供了前所未有的洞察力。通过具体案例,本文揭示了AI在软件测试中应用的现状、挑战及未来趋势,强调了技术创新在提升软件质量与开发效率中的关键作用。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能:改变游戏规则的技术革命
【10月更文挑战第10天】 本文深入探讨了人工智能在软件测试中的应用,揭示了它如何提高测试效率、减少人为错误,并预示了未来软件测试行业的发展趋势。通过案例分析和原理讲解,文章展现了AI技术在自动化测试、缺陷检测和性能评估等方面的巨大潜力。
|
1月前
|
安全 网络安全 数据库
Kali测试:散列密码破解(一)
Kali渗透测试:散列密码破解(一)
|
1月前
|
安全 应用服务中间件 网络安全
Kali测试:散列密码破解(二)
Kali渗透测试:散列密码破解(二)
|
3月前
|
jenkins 测试技术 持续交付
解锁.NET项目高效秘籍:从理论迷雾到实践巅峰,持续集成与自动化测试如何悄然改变游戏规则?
【8月更文挑战第28天】在软件开发领域,持续集成(CI)与自动化测试已成为提升效率和质量的关键工具。尤其在.NET项目中,二者的结合能显著提高开发速度并保证软件稳定性。本文将从理论到实践,详细介绍CI与自动化测试的重要性,并以ASP.NET Core Web API项目为例,演示如何使用Jenkins和NUnit实现自动化构建与测试。每次代码提交后,Jenkins自动触发构建流程,通过编译和运行NUnit测试确保代码质量。这种方式不仅节省了时间,还能快速发现并解决问题,推动.NET项目开发迈向更高水平。
49 8
|
3月前
|
Java Spring UED
Spring框架的异常处理秘籍:打造不败之身的应用!
【8月更文挑战第31天】在软件开发中,异常处理对应用的稳定性和健壮性至关重要。Spring框架提供了一套完善的异常处理机制,包括使用`@ExceptionHandler`注解和配置`@ControllerAdvice`。本文将详细介绍这两种方式,并通过示例代码展示其具体应用。`@ExceptionHandler`可用于控制器类中的方法,处理特定异常;而`@ControllerAdvice`则允许定义全局异常处理器,捕获多个控制器中的异常。
51 0
|
4月前
|
JavaScript 测试技术
vue 官方测试工具 unit-jest 实用教程(含实战范例:登录组件的测试)
vue 官方测试工具 unit-jest 实用教程(含实战范例:登录组件的测试)
83 0
|
6天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
34 3