面试题:如何测试登录功能

最近在做一个创新项目,这个项目有二个平台,每个平台都有前后端,故有四个系统,每个系统都有登录功能,而且不同系统代码设计方式都有所差异,所以就这个登录功能而言就要测试四次,看似一个简单的登录功能其中设计的测试点也是相当复杂,今天就讲讲如何测试登录功能。

1.了解平台

首先你需要了解平台设计结构,是前后端分离还是不分离。

了解这个主要是涉及到用户登录缓存数据的一个存储。

这就需要了解session,cookie,Token之间的区别。

目前我们的二个平台,有一个平台是做的前后端分离,因为前后端分离是无状态的,就没有session,必须有权限认证,有可能是Token,也有可能是其它(Oauth/Bearer Token等),这里我们的系统用的是Token(令牌)认证。

而未做前后端分离的平台,是将登录信息临时存储在cookie中,明白了这些那在测试过程就需要对这一部分的鉴权做测试。

Cookie数据存放在客户的浏览器中.

Session数据存放在服务器中。

Token用户身份的验证方式。

2.分析登录模块的测试点

一般来说登录模块的功能点都比较简单。大致分为用户名、密码、忘记密码、记住用户名以及按钮。

除了分析功能点之外,我们还需要考虑以下几个点:

1.权限认证

这个主要是指cookie、Token失效,操作菜单产生什么样的结果。

2.横向越权

指AB二个用户拥有相同的权限,然后A用户尝试访问B用户的资源。

另外还有一个是纵向越权,是低级别用户的权限去访问高级别用户的资源。

3.设计测试用例

1.设计功能点的测试用例

我们的系统不做记住用户和忘记密码的功能,所以针对这二个功能未设计测试点。

2.设计安全性测试用例

4.测试界面

在测试过程中,我们不仅要关注功能点是否按照需求已经实现了,同时我们还需要关注界面和用户体现性,需要进行界面和体现方面的测试。

在测试界面中,主要测试以下内容:

1.界面内容

登录模块放置在页面中的哪个位置,如果居中,是否又居中显示了;

其它位置放置什么东西;

用户输入框、密码输入框、登录按钮排列、是否对齐;框的大小;

用户名、密码字样是否相同,对齐.

  

2.提示

用户名、密码输入框是否有默认提示内容;

输入错误的用户名或密码是否给出了正确的提示,提示的文字、大小、颜色是否按需求描述(如果需求中没有明确指出,那可以借鉴其它网站相同功能的提示风格);

用户名和密码是否是必填的,如果是必填的,是否用红色星号表示(通用规则);

输入为空时,给出的提示是否正确。

密码显示:密码是否是密文显示,如果需求中规定了可支持明文显示,显示有相应的控件。

5.总结

登录模块测试看起来非常简单,但在实际测试过程中也需要考虑非常多的测试点,进行全面覆盖登录功能的需求,登录模块基本所有网站都有这个功能,故你在测试完一个网站之后对其他网站的登录功能测试也算是熟识,可能会根据网站的不同,有一点点变化,只要需求明确了就好。

如何测试一个网站的登录模块也是面试题之一?

在面试的时候就遇到过,设计登录功能的测试用例,当时只考虑了功能方面的测试,而未想起针对功能测试的安全性测试,面试官当时重复问了好几遍:还有么?还有其它测试点么?但就是没有想出来,还很肯定地回答:没有了,最终是在他的提示下才想起来。

在面试时,经常会让应聘都设计测试用例,如果是遇到不同的功能也可以根据这个思路来设计测试用例。

面试经历完整版(含答案和解析):

由于要控制文章篇幅,所以都是以截图方式展示内容。关于完整版面试手册,若是感兴趣想学习的朋友文末免费领取,无套路。

  • 第一部分,测试理论(测试基础+需求分析+测试模型+测试计划+测试策略+测试案例等等)
  • 第二部分,Linux( Linux基础+Linux练习题)
  • 第三部分,MySQL(基础知识+查询练习+万年学生表经典面试题汇总+数据库企业真题)
  • 第四部分,Web测试
  • 第五部分,API测试
  • 第六部分,App测试
  • 第七部分,管理工具
  • 第八部分,Python基础(Python基础+编程题+集合+函数+Python特性等等)
  • 第九部分,Selenium相关
  • 第十部分,性能测试
  • 第十一部分,LordRunner相关
  • 第十二部分,计算机网络
  • 第十三部分,组成原理
  • 第十四部分,数据结构与算法
  • 第十五部分,逻辑题
  • 第十六部分,人力资源

一、软件测试基础

  • 软件测试的步骤是什么?
  • 如何录制测试脚本?
  • 应该考虑进行如何测试的测试方法
  • 怎样估计测试工作量?
  • 测试设计的问题
  • 当测试过程发生错误时,有哪几种解决办法?
  • 测试执行的问题
  • 测试评估的目标
  • 如何提高测试?
  • C/S模式的优点和缺点
  • B/S模式的优点和缺点
  • ....

在这里插入图片描述

二、Linux

  • grep和find的区别? grep 都有哪些用法?
  • 查看IP地址?
  • 创建和删除一个多级目录?
  • 在当前用户家目录中查找haha.txt文件?
  • 如何查询出tomcat的进程并杀掉这个进程,写出linux命令?
  • 动态查看日志文件?
  • 查看系統硬盘空间的命令?
  • 查看当前机器listen 的所有端口?
  • ......

在这里插入图片描述

三、Python

  • 统计python源代码文件中代码行数,去除注释,空行,进行输出?
  • python调用cmd并返回结果?
  • 冒泡排序
  • 1,2,3,4 这4个数字,能组成多少个互不相同的且无重复的三位数,都是多少?
  • 请用 python 打印出 10000 以内的对称数(对称数特点:数字左右对称,如:1,2,11,121,1221 等)
  • 给定一个整数 N,和一个 0-9 的数 K,要求返回 0-N 中数字 K 出现的次数
  • 判断 101-200 之间有多少个素数,并输出所有的素数
  • 一个输入三角形的函数,输入后输出是否能组成三角形,三角形类型,请用等价类- 划分法设计测试用例
  • .......
    在这里插入图片描述

四、MySQL

  • 你用的Mysql是哪个引擎,各引擎之间有什么区别?
  • 如何对查询命令进行优化?
  • 数据库的优化?
  • Sql注入是如何产“生的,如何防止?
  • NoSQL和关系数据库的区别?
  • MySQL与MongoDB本质之间最基本的差别是什么
  • Mysql数据库中怎么实现分页?
  • Mysql数据库的操作?
  • 优化数据库?提高数据库的性能?
  • 什么是数据的完整性?
  • ......
    在这里插入图片描述

五、Web

  • Web测试和app测试区别?
  • WEB测试环境搭建和测试方法
  • WEB测试教程
  • WEB测试要点及基本方法
  • Web测试页面总结
  • .......
    在这里插入图片描述

六、接口测试

  • 什么是接口
  • 如果模块请求http改为了https,测试方案应该如何制定,修改?
  • 常用HTTP 协议调试代理I具有什么?详细说明抓取HTTPS协议的设置过程?
  • 描述TCP/IP协议的层次结构,以及每一-层中重要协议
  • jmeter,一个接口的响应结果如下:
  • 接口产生的垃圾数据如何清理
  • 依赖第三方的接口如何处理
  • 测试的数据你放在哪?
  • 什么是数据驱动,如何参数化?
  • ...
    在这里插入图片描述

七、性能测试

  • 你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
  • 服务端性能分析都从哪些角度来进行?
  • 如何理解压力测试,负裁测试以及性能测试?
  • 如何判断是否有内存泄漏及关注的指标?
  • 描述软件产“生内存泄露的原因以及检查方式。(可以结合- 种开发语言进行描述)
  • 简述什么是值传递,什么是地址传递,两者区别是什么?
  • 什么是系统瓶颈?
  • ...
    在这里插入图片描述

八、selenium

  • 如何开展自动化测试框架的构建?
  • 如何设计自动化测试用例:
  • webdriver如何开启和退出一个浏览器?
  • 什么是自动化测试框架?
  • Selenium是什么,流行的版本有哪些?
  • 你如何从命令行启动Selenium RC?
  • 在我的机器端口4444不是免费的。我怎样才能使用另一个端口?
  • 什么是Selenium Server,它与Selenium Hub有什么不同?
  • 你如何从Selenium连接到数据库?
  • 你如何验证多个页面上存在的一个对象?
  • XPath中使用单斜杠和双斜杠有什么区别?
  • 如何编写SeleniumIDE/ RC的用户扩展?
  • 如何在页面加载成功后验证元素的存在?
  • 你对Selenium Grid有什么了解?它提供了什么功能?
  • 如何从你的Java Class启动Selenium服务器?
  • Selenium中有哪些验证点?
  • 什么是XPath?什么时候应该在Selenium中使用XPath?
  • ........
    在这里插入图片描述

九、计算机与网络

  • 一台计算机的IP是192.168.10.71子网掩码255.255.255.64与192.168.10.201 ..
  • 请简述DNS、活动目录、域的概念。
  • 10M兆宽带是什么意思?理论下载速度是多少?
  • 什么是IP地址?
  • OSI七层网络模型的划分?
  • TCP和UDP有什么不同?
  • HTTP属于哪一层的协议?
  • HTTP和HTTPS的区别?
  • cookies和session的区别?
  • HTTP的get请求和post请求的区别?
  • HTTP1.0和HTTP1.1有什么区别
  • TCP的连接建立过程,以及断开过程?
  • 客户端使用DHCP获取IP的过程?
  • 写出某个网段的网络地址和广播地址?
  • .....
    在这里插入图片描述
    在这里插入图片描述

十、人力资源

  • 你的测试职业发展是什么?你自认为做测试的优势在哪里?
  • 你找工作时,最重要的考虑因素为何?
  • 为什么我们应该录取你?
  • 请谈谈你个人的最大特色。
  • 一个测试工程师应具备那些素质和技能?
  • 还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?
  • 为什么选择测试这行?
  • 如果我雇用你,你能给部门带来什么贡献?
  • ......
    在这里插入图片描述

最后

整份文档一共有将近 200 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!

资料获取方式:

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
一、linux 1,linux常用命令 2,某个时间段日志的查询 3,linux文件的上传和下载 二、功能测试 1,工作中所遇到的错误 2,测试流程: 3,测试计划元素: 4,测试报告元素: 5,测试点: 6,测试方法: 7,bug相关问题 8,adb常用命令 9,软件测试原则 10,测试用例编写的要素 11,测试用例的设计原则 12,软件产品质量特性 13,android四大组件 14,web测试和app测试的区别 15,app的anr的根本原因 16,app的crash的原因 17,h5页面图片未加载出来问题排查 18,区分原生和h5页面 19,为什么不能用jenkins打包 三、性能测试 1,了解jmeter 2,性能指标 3,如何做性能测试 四、接口测试 1,如何设计接口测试用例 2,为什么要做接口测试 3,接口测试的关注点 4,request处理cookie的三种方式 五、自动化测试 1,自动化核心框架 2,自动化测试的好处 3,自动化的前提 4,自动化测试的场景 5,元素定位的8种方式 6,如果一个元素无法定位,一般会考虑哪些原因 7,driver.close()和driver.quit()的区别 8,自动化脚本断言 9,判断页面元素是否存在 10,js在web自动化中的作用展示 11,自动化代码优化 12,selenium对比RF 13,自动化测试脚本三种等待 14,PO模式 六、HTTP协议 1,HTTP协议特点: 2,HTTP传输原理 3,get和post的区别 4,HTTP响应代码 5,osi七层模型 6,三次握手过程 7,session和cookie的区别 8,tcp和udp的区别 9,sockect通信原理 10,post的三种请求方式 七、数据库 1,sql分类 2,数据库事务特性:ACID 3,mysql索引的类型 4,池化思想 5,redis 6,如何提高数据库运行效率 八、java 1,面向对象的三个特征 2,重写和重载 3,比较sping,sping mvc 4,进程和线程的区别 5,java三层架构 6,处理异常 九、python 1,字符串反转的7种方法 2,new 和 _init_ 3,不使用中间变量交换两个变量的值 4,python四大内置高阶函数 5,python带颜色输出 6,python *args,**kargs用法 7,python常用模块 8,python多线程 9,python发送邮件 10,python操作图像 11,python的replace()方法的使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值