软件测试面试过程中常见的问题-论登录功能用例设计

测试用例设计:考察测试人员在用例设计方面考虑是否全面,以及对测试需求的分析能力;
最常被问到的,现在软件有一个登录模块,有用户名和密码,以及登录按钮,请你来设计测试用例;

首先说一下我的经历:
目前参加了5场面试,没有收到一个offer, 几乎每一场面试都会被问到这个问题,第一次我的回答是这样子的:
(面试官说给我两分钟,让我写一个登录功能的测试用例,登录界面只有用户名,密码和登录按钮,面试官还说,2分钟够吗肯定的回答,够了)
然后我在纸上写下了我的答案:
我的回答1:
测试步骤:
输入用户名和密码,点击登录按钮;
输入数据:
用户名和密码均为空
用户名或者密码为空
用户名不存在;
密码错误;
用户名或者密码输入最大长度;
用户名或者密码输入特殊字符;
用户名和密码输入正确;
然后我给面试官说我写好了,他说你这就考虑了功能方面,其他方面都不用考虑吗后来回来想了以下,好像确实考虑的不够,又去百度了以下,用例设计应该从哪些方面去考虑,我查到的是一般从,用户界面,功能,安全,性能,兼容性方面去考虑;
然后我用在了下一次被问到的这个问题中。

我的回答2:
一般从以下几个方面考虑:

  1. UI界面上:查看风格是否合理,输入框以及按钮设计是否好用;

  2. 功能上:针对用户名和密码,以及验证码,考虑多种无效输入和有效输入的情况下,系统是否能正确处理;

  3. 安全性方面:①考虑用户权限,使用不同的用户登录进去,查看能访问的功能是否符合要求;②页面超时是否有处理;③用户A登陆后,在当前标签退出后,立马再不同标签中等录B用户,再去操作上一个标签中用户A操作的界面,看系统是否做出正确的处理;

  4. 接口测试方面:如果在接口测试中有涉及登录的,可以在请求中对参数做出缺省测试,或者修改参数名称以及修改参数的值等进行验证;

  5. 性能测试方面:如果在性能测试需求中有涉及登陆的话,就按照性能的需求去设计用例;

    说完了之后,我说“嗯,用例设计的话大致可以从这几个方面去考虑”,面试官感觉听得有点找不着头脑,莫名的尬笑了一下。我自己心里想,我说了这么多,应该考虑得算比较全面了吧…看到这里你有什么想法呢/p>

    回到家我仔细回想了一下我的回答,第一,我所描述的给人的感觉不是我在设计测试用例,而是我在告诉别人怎么写测试用例,且不说我说的是否正确;
    仔细想想,我所说的这些测试类型在测试过程之中确实是需要考虑的,但是针对面试官的问题,针对登录功能设计测试用例,我说了很对没用的,例如接口测试和性能测试,还要安全性方面的,特别是我在网上看到的,关于安全性方面的(主要是考虑session),用户退出后在其他界面用不同的用户登录,再去操作用户A的信息,系统是否做出正确处理,首先我说的完全有漏洞,(虽然面试关没有继续追问,可能他觉得我已经跑题了),例如用户A退出登录后,界面怎么会还显示用户A相关的信息呢,描述应该是这样的,在一个页面访问了用户A的信息,再新的假面退出登录,再用B用户登录,然后去操作用户A访问过的信息,这也是测试过的一种方法,但是显然,跟现在对登录模块用例设计没有半毛钱关系了…作为一个有3年测试经验的我,你、给出这样的回答,我真是要醉了。
    回来后,我针对登录模块的用例设计去百度了以下,得到的结果是这样的:

此题的考察目的:
1、了解需求(测什么都是从了解需求开始);
2、是否有设计Test Case的能力
3、是否熟悉各种测试方法;
4、是否有丰富的Web测试经验;
5、是否了解Web开发;
了解需求
测试需求分析过程,可以从质量要求出发,来展开测试需求分析,如从功能、性能、安全性、兼容性等各个质量要求出发,不断细化其内容,挖掘其对应的测试需求,覆盖质量要求。也可以从开发需求(如产品功能特性点、敏捷开发的用户故事)出发,针对每一条开发需求形成已分解的测试项,结合质量要求,这些测试项再扩展为测试任务,这些测试任务包括了具体的功能性测试任务和非功能性测试任务。在整理测试需求时,需要分类、细化、合并并按照优先级进行排序,形成测试需求列表。
1、登录界面应该是弹出窗口式的,还是直接在网页里面;
2、账号长度和密码的强度(比如需要多少位、大小写敏感、特殊字符混搭等);
3、界面美观是否有特殊要求即是否要进行UI测试);
4、····
用例设计:
测试需求分析完成后,开始用例设计,主要可以从以下几个方面考虑:

功能测试(Function Test)
1、输入正确的账号和密码,点击提交按钮,验证是否能正确登录。(正常输入)
2、输入错误的账号或者密码, 验证登录会失败,并且提示相应的错误信息。(错误校验)
3、登录成功后能否跳转到正确的页面(低)
4、账号和密码,如果太短或者太长,应该怎么处理(安全性,密码太短时是否有提示)
5、账号和密码,中有特殊字符(比如空格),和其他非英文的情况(是否做了过滤)
6、记住账号的功能
7、登录失败后,不能记录密码的功能
8、账号和密码前后有空格的处理
9、密码是否加密显示(星号圆点等)
10、牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用
11、登录页面中的注册、忘记密码,登出用另一帐号登录等链接是否正确
12、输入密码的时候,大写键盘开启的时候要有提示信息。
13、什么都不输入,点击提交按钮,看提示信息。(非空检查)

界面测试(UI Test)
1、布局是否合理,2个Testbox 和一个按钮是否对齐
2、Testbox和按钮的长度,高度是否复合要求
3、界面的设计风格是否与UI的设计风格统一
4、界面中的文字简洁易懂,没有错别字。
5、不同的浏览器窗口大小,下面,界面和功能是否正常

性能测试(Performance Test)
1、打开登录页面,需要几秒
2 、输入正确的账号和密码后,登录成功跳转到新页面,不超过5秒

安全性测试(Security Test)
1、登录成功后生成的Cookie是否有HttpOnly(降低脚本盗取风险)
2、账号和密码是否通过加密的方式,发送给Web服务器
3、账号和密码的验证,应该是用服务器端验证,而不能单单是在客户端用javaScript验证
4、账号和密码的输入框,应该屏蔽SQL注入攻击
5、账号和密码的的输入框,应该禁止输入脚本(防止XSS攻击)
6、错误登录的次数限制(防止暴力破解)
7、考虑是否支持多用户在同一机器上登录;
8、考虑一用户在多台机器上登录

可用性测试(Usability Test)
1、是否可以全用键盘操作,是否有快捷键
2、输入账号,密码后按回车,是否可以登录
3、输入框是否可以以Tab键切换

兼容性测试(Compatibility Test)
1、主流的浏览器下能否显示正常已经功能正常(IE6~11, FireFox, Chrome, Safari 等 )
2、不同的平台是否能正常工作,比如Windows, Mac
3、移动设备上是否正常工作,比如iPhone, Android
4、不同的分辨率

本地化测试 (Localization Test)
1、不同语言环境下,页面的显示是否正确。
软件辅助性测试 (Accessibility Test)
软件辅助功能测试是指测试软件是否向残疾用户提供足够的辅助功能
1、高对比度下能否显示正常(视力不好的人使用)

综合以上面试经验,很重要的是,能说的有条理,能针对具体功能去设计用例,希望自己在下一次面试中针对这个问题,能给面试官一个较为满意的回答。

来源:qq_39758812

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年9月22日
下一篇 2018年9月22日

相关推荐