登陆测试用例

具体需求: 有一个登录页面, (假如上面有2个textbox, 一个提交按钮。 请针对这个页面设计30个以上的testcase.)
  此题的考察目的:面试者是否熟悉各种测试方法,是否有丰富的Web测试经验, 是否了解Web开发,以及设计Test case的能力
  这个题目还是相当有难度的, 一般的人很难把这个题目回答好。
  首先,你要了解用户的需求,比如这个登录界面应该是弹出窗口式的,还是直接在网页里面。对用户名的长度,和密码的强度(就是是不是必须多少位,大小写,特殊字符混搭)等。还有比如用户对界面的美观是不是有特殊的要求?(即是否要进行UI测试)。剩下的就是设计用例了 ,等价类,边界值等等。
  请你记住一点,任何测试,不管测什么都是从了解需求开始的。

功能测试(Function test)

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

界面测试(UI Test)

   1.布局是否合理,2个testbox 和一个按钮是否对齐
  2.testbox和按钮的长度,高度是否复合要求
  3. 界面的设计风格是否与UI的设计风格统一
  4. 界面中的文字简洁易懂,没有错别字。
  性能测试(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.主流的浏览器下能否显示正常已经功能正常(IE,6,7,8,9, Firefox, Chrome, Safari,等)
  2.不同的平台是否能正常工作,比如Windows, Mac
  3.移动设备上是否正常工作,比如Iphone, Andriod
  4.不同的分辨率

本地化测试 (Localization test)

    1. 不同语言环境下,页面的显示是否正确。

软件辅助性测试 (Accessibility test)

软件辅助功能测试是指测试软件是否向残疾用户提供足够的辅助功能

1. 高对比度下能否显示正常 (视力不好的人使用)
### 使用因果图法设计登录功能测试用例 #### 方法概述 因果图是一种用于分析输入条件与输出结果之间关系的技术。对于登录功能而言,主要关注用户名、密码以及验证码等输入项及其对应的结果行为。通过构建因果图模型,能够识别不同输入组合下的预期响应。 - **定义原因和结果** 原因通常指代影响系统行为的各种因素,在此即为用户提供的登录凭证(如账号名、密码)。而结果则是基于这些输入所产生的动作反馈——成功进入主页或是返回特定类型的错误消息[^1]。 - **绘制因果图并转换成判定表** 将上述逻辑转化为图形化表达形式后进一步细化为决策矩阵。每种可能的情况都应得到充分考虑,并据此制定详尽的测试方案[^2]。 #### 实际案例解析 假设存在如下几个关键要素: | 编号 | 输入/输出 | 描述 | |--|-------------------------------| | C1 | 用户名 | 是否为空 | | C2 | 密码 | 长度是否合法 | | C3 | 账户状态 | 正常 / 锁定 | | E1 | 登录结果 | 成功 / 失败 (附带具体失败理由) | ##### 构建因果关联 - 如果`C1=否`且`C2=是`并且`C3=正常`,则期望看到`E1=成功`. - 若任意一项不满足,则触发相应的异常处理流程并向用户提供指引性的提示信息. ##### 判定表简化实例 考虑到实际应用场景中的复杂性和效率需求,可以通过引入中间变量的方式对原始判断结构加以优化: ```plaintext +--+---------+ | 用户名非空 & 密码合规 | 继续下一步 | | 否 | 提示重试 | +---------------------+----------+ ``` 最终形成的精简版判定表不仅便于理解和执行,同时也有效降低了维护成本。 ```python def check_login(username, password, account_status): """ 模拟简单的登录验证函数 参数: username (str): 用户名字符串 password (str): 密码字符串 account_status (bool): True 表示账户处于可用状态 返回: str: 登录操作的结果描述 """ # 定义各条规则作为布尔表达式 valid_username = bool(username.strip()) compliant_password_length = len(password)>=8 and len(password)<=16 active_account = account_status # 应用简化后的判定逻辑 if not valid_username or not compliant_password_length: return "请输入正确的用户名或设置合适的密码长度" elif not active_account: return "您的账户已被锁定,请联系管理员解锁" else: return "欢迎回来!您已成功登录." ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值