51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3571|回复: 2
打印 上一主题 下一主题

[转贴] 验证码测试的解决方案

[复制链接]
  • TA的每日心情
    擦汗
    昨天 09:02
  • 签到天数: 1046 天

    连续签到: 4 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-9-8 10:03:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     验证码测试的解决方案
      前几天一位新同事向我请教了一个问题,其问题的重点是图文验证码怎么去测试?当时由于时间关系,只是大致给他说了下测试框架,趁着闲暇时间的总结,也把解决方案分享给大家。
      1 认识验证码
      测试验证码,首先我们应当了解清楚验证码是什么?其存储位置在哪里?其原理是什么?做到知己知彼。
      1.1 验证码的由来和作用
      验证码,英文简写是“CAPTCHA”,其全称是“Completely Automated Public Turing test to tell Computers and Humans Apart”,即全自动区分计算机和人类的图灵测试,是一种区分其用户是计算机还是人类的公共全自动程序算法。最早是由卡内基梅隆大学的路易斯·冯·安和IBM的John Langford在2002年提出,这个验证码形式的问题是由计算生成并评判,但必须只允许有意识的人才能解答。
      后期被广泛用于安全信息领域,以有效防范恶意的程序算法对信息系统进行暴力性的攻击破解,比如:防范密码破解、信息盗窃、钱财转移等恶意行为。
      同时也发展为多种形式的验证码。常见的有手机短信验证码、Email验证码、视频验证码、手机语音验证码、拼图验证码、静态图文验证码、GIF动态图文验证码等,其验证码的内容包含数字、字母、汉字、人文数理、人与物识别等。其中图文验证码是网站验证中最常见的一种,也是我们身边人最熟悉的一种,也是本文重点介绍测试对象。
      1.2 验证码的存储
      既然在网页中的验证码是图文验证码,以图片文字的形式显示出来,那么在网页源码可能存在于以下几种方式:
      (1)存储于文件中
      (2)HTML语句中直接放入经过编码的验证码信息
      (3)HTML语句中直接放入请求的验证码URL信息
      (4)计算机生成验证码后,一般以session方式将验证码存储在服务器进程
      (5)存储于redis等nosql数据库中,通过调用nosql的客户端驱动查询
      (6)存储于数据库,通过进程内的接口进行查询或者直接进行数据库查询
      计算机服务器生成验证码后,就会缓存起来,原因在于方便用户提交验证码时进行验证。
      1.3 验证码的原理
      当用户需要验证时,服务器端将内存中临时生成的验证码发至客户端,为了其安全性,通常在发送后的一个有效时间内(比如:1分钟)就会删除其验证码,用户在有效时间内输入验证答案。其具体过程如下:
      首先,前端网页通过一个URL来对后端进行请求;接着,后端接收到前端的请求后,它将生成一个随机图文,然后把该随机图文存储于与对应客户端的session中;然后,将该随机图文进行图像处理,使计算机难以识别而人类容易辨别,经过处理的图文(.png、.jpg等多种格式)直接发至前端;最后,前端验证用户输入图文的验证答案,与后端生成的验证码是否一致,若一致则成功登录获取消息,反之不能通过。
      2 如何测试验证码
      测试验证码,既要测试其功能性,又要测试其安全性;手动测试和自动化测试均不可缺少,相互互补,尽可能覆盖缺陷。
      2.1 手动测试
      手动测试的核心,测试用例的设计。针对验证码测试的测试用例主要参考点如下:

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-9 14:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2021-9-26 16:07:49 | 只看该作者
    直接让开发禁用验证码,开发一般会同意的
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 08:36 , Processed in 0.063736 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表