软件测试从登录开始

 
  太长不看版
登录功能并没有想象中的那么简单,除了简单的冒烟策划之外,我们还要考虑功能上的各种异常场景,以及性能、安全方面的测试也尤为重要。
测试设计想要做到更完善、更容易发现问题,就需要更深厚的内功,但受限于时间和其他因素,提供给测试的时间不会很充足,想要将测试设计做的完美,很困难。
测试工程师结合用户容忍度与测试成本,可以考虑以优先级的形式来排列侧重点。
 
  完整版
对软件测试从业者来说,最简单的功能测试莫过于“登录”。
可是一个登录功能真的有那么简单吗?这个问题在我从业软件测试的很长一段时间都没有思考过。
最开始做测试的时候,领导给我一个小的web项目练练手,拿到项目地址后,我自然而然地输入了用户名、密码进去系统主页就开始测试,登录页面就直接被忽略,当然,后续的测试“成果”也是不尽人意。
再到后来需要写测试用例的时候,我还在想一个登录功能的测试用例有什么好写的,结合了baidu上的登录功能测试点,慢慢地对登录功能的用例加上了一些内容,比如说空验证、错误密码验证等。
做到这些,我也感觉自己可以称得上一名合格的软件测试工程师,直到看了一篇讲解关于登录功能的文章,我才发现原来真的就只是合格。
我比较赞成对一个功能测试的设计,就是一名软件测试工程师的内功之一,同样是简单的功能,内功不同的测试工程师能够考虑到的测试点都会不同。
经过一段时间的内功修炼,我对登录功能有了一些思考,加上我最近一次的登录功能测试用例,我列出来一些测试点:
一,基本的冒烟测试:
1,输入正确的用户名和密码,验证是否登录成功;
2,输入正确的用户名和错误的密码,验证是否登录成功;
3,输入错误的用户名和密码,验证是否登录成功;
4,前端验证用户名和密码输入框的空验证提示信息是否准确;
二,补充的功能测试
1,用户名和密码是否对大小写有做判断;
2,密码输入框是否有加密处理;
3,用户名和密码输入框前端是否有做长度验证;
4,直接访问站点的主页,验证是否会跳转到登录页面;
5,用户名密码输入框是否对前后空格进行过滤;
6,用户登录成功后,进入站点显示的页面和对应权限是否正确;
7,进入登录页面,是否会定位到用户名输入框;
8,用户密码输入框是否支持Enter、Tab键;
以上,在还没考虑验证码、忘记密码、第三方登录等功能的情况下,算是比较完善的登录测试点。
对软件测试来说,有一个名词可能很适合,叫“用户容忍度”,顾名思义,即用户在遭受到软件不合理对待时,这种不合理对待要到什么样的程度才会引起用户的抵触。我写过一篇文章,叫《软件测试2017年工作总结》中用户容忍度与易用性测试的章节有详细说明。
我们可以划分个级别,
最低的一级,对于一些只考虑功能的内部系统,冒烟测试通过,后续的测试按情况判定,不过我认为这种情况下,所谓测试的存在也是可有可无。
往上一级,用户量开始增大,便需要加入补充的功能测试,满足功能、易用性的情况下,已经可以算是一个可以“见人”的系统;
最高一级,就算是大型的互联网项目,可以参考baidu的登录页面,除了功能、易用性,还需要加入安全性、性能和兼容性测试,有的时候还得考虑更多的用户体验。
那么分别详细地说一下几种测试方式需要考虑的内容,
安全性,
1,点击登录按钮的时候,密码在网络传输过程中过是否加密处理;
2,在不登录的情况下,直接输入系统中的子网页,是否可以直接访问;
3,已禁用或被冻结的账户,是否允许登录;
4,密码输入框是否支持复制粘贴;
5,浏览器保存的密码,输入框修改type类型后,是否加密处理;
6,用户名密码输入框是否有做防止SQL注入;
7,用户名密码输入框是否有对脚本限制,如<script>;
8,多次错误密码,是否会锁定用户;
性能,
1,单用户登录响应时间;
2,多用户登录并发响应时间;
.....
兼容性
1,不同浏览器页面显示内容是否一致且正确;
2,不同浏览器的按钮是否支持正常点击使用;
最后,还有用户体验,和易用性有些类似
1,页面UI风格展示是否友好;
2,用户名密码输入框是否方便点击输入;
3,登录按钮是否支持Enter键直接定位;
4,错误提示框是否在一个地方展示;
 
写了这么多,关于登录功能的测试设计,我相信还可以补充上很多关于登录功能的测试点,可能你会说我有很多方面还没有考虑到,
对于需不需要把所有的测试点都罗列出来,我认为可以引入二八法则到软件测试领域中,一个软件中,百分之八十的问题,在百分之二十的时间就可以发现并修复,而剩下的百分之二十的问题,可能需要花费百分之八十的时间去寻找发现。
但很多时候给予测试的时间不会很多,尽可能地用有限的时间发现更多的问题,那些不容易被发现的,可能需要时间。
至于这个时间的长度,与深厚的内容息息相关。
 
本篇博客内容参考文献:
博客文章主题框架参考软件测试52讲;
二八法则取自书籍《软件测试技术大全》;
 
下一篇博客内容,我会写我理解的测试用例,以此引发更多的思考。
原文地址:https://www.cnblogs.com/zxylock/p/10006385.html