2016-05-01 15:53:01 u010416101 阅读数 893
  • 软件测试速成篇

    课程内容是全面介绍软件测试知识的,帮助新手入门到软件测试领域(包括测试的技巧、测试用例的设计、如何迅速找出软件缺陷),并且胜任相关的工作,并且对软件测试管理者如何应对工作中遇到的风险与策略。

    8898 人正在学习 去看看 CSDN讲师

转载自XXX(忘了哪的了)

一、基本功能测试

  OK 输入正确的用户名和密码登录成功

  OK 输入错误的用户名密码登录失败

  OK 用户名正确,密码错误,是否提示输入密码错误?

  OK 用户名错误,密码正常,是否提示输入用户名错误?

  OK 用户名和密码都错误,是否有相应提示?

  OK 用户名密码为空时,是否有相应提示?

  无 如果用户未注册,提示请先注册,然后进行登录

  无 已经注销的用户登录失败,提示信息友好?

  OK 密码框是否加密显示?

  OK 用户名是否支持中文、特殊字符?

  无 用户名是否有长度限制?

  OK 密码是否支持中文,特殊字符?

  无 密码是否有长度限制?

  OK 密码是否区分大小写?

  无 密码为一些简单常用字符串时,是否提示修改?如:123456

  OK 密码存储方式?是否加密?

  无 登录功能是否需要输入验证码?

  无 验证码有效时间?

  无 验证码输入错误,登录失败,提示信息是否友好?

  无 输入过期的验证能否登录成功?

  无 验证码是否容易识别?

  无 验证码换一张功能是否可用?点击验证码图片是否可以更换验证码?

  OK 用户体系:比如系统分普通用户、高级用户,不同用户登录系统后可的权限不同。

  无 如果使用第三方账号(QQ,微博账号)登录,那么第三方账号与本系统的账号体系对应关系如何保存?首次登录需要极权等

  二、页面测试:

  OK登录页面显示是否正常?文字和图片能否正常显示,相应的提示信息是否正确,按钮的设置和排列是否正常,页面是否简洁壮观等。

  无 页面默认焦点是否定位在用户名的输入框中

  OK 首次登录时相应的输入框是否为空?或者如果有默认文案,当点击输入框时默认方案是否消失?

  相应的按钮如登录、重置等,是否可用;页面的前进、后退、刷新按钮是否可用?

  快捷键Tab,Esc,Enter 等,能否控制使用

  兼容性测试:不同浏览器,不同操作系统,不同分辨率下界面是否正常

  三 、安全测试

  无 不登录:浏览器中直接输入登录后的地址,看是否可以直接进入

  登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)

  用户名和密码是否通过加密的方式,发送给Web服务器

  用户名和密码的验证,应该是用服务器端验证, 而不能单单是在客户端用javascript验证

  用户名和密码的输入框,应该屏蔽SQL 注入攻击

  用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击)

  错误登陆的次数限制(防止暴力破解)

  考虑是否支持多用户在同一机器上登录;

  考虑一用户在多台机器上登录

  四、性能测试

  单用户登录系统的响应时间是否符合"3-5-8"原则

  用户数在临界点时并发登录是否还能符合"3-5-8"原则

  压力:大量并发用户登录,系统的响应时间是多少?系统会出现宕机、内存泄露、cpu饱和、无法登录吗?

  稳定性: 系统能否处理并发用户数在临界点以内连续登录N个时的场景?

  五、其它测试:

  连续输入3次或以上错误密码,用记是否被锁一定时间(如:15分钟)?时间内不允许登录,超出时间点是否可以继续登录。

  用户session过期后,重新登录是否还能重新返回这前session过期的页面?

  用户名和密码输入框是事支持键盘快捷键?如:撤销、复制、粘贴等等

  是否允许同名用户同时登录进行操作?考虑web和app同时登录

  手机登录时,是否先判断网络可用?

  手机登录时,是否先判断app存在新版本?

  是否支持单点登录?

  是否有埋点接口

 

附带 Session 测试要求

session 过期
session 不一致
门户首页 跳转的时候 数据是否转入
跳转具有查的功能

门户首页 顺序
精品 服务只有6个的时候

附带

测试三种登录形式

1 数据表中登录

2 ldap登录

3 SSO登录

Case1:输入正确的用户名和用户密码--测试是否可以正常登录

用户名:admin 正确密码11 (ldap open)

Case2:输入正确的用户名和错误的密码(用户ldap权限开启)--测试ldap是否可以正常运行

用户名:test11 错误密码:777 (ldap open)

Case3:输入正确的用户名和错误的面(用户ldap权限关闭)—测试SSO是否可以正常运行

用户名:test12 错误密码:777 (ldap close)



2017-05-10 23:16:56 peiyao456 阅读数 5174
  • 软件测试速成篇

    课程内容是全面介绍软件测试知识的,帮助新手入门到软件测试领域(包括测试的技巧、测试用例的设计、如何迅速找出软件缺陷),并且胜任相关的工作,并且对软件测试管理者如何应对工作中遇到的风险与策略。

    8898 人正在学习 去看看 CSDN讲师

最近一直在学习软件测试相关的知识,猛然看到这个面试中经常被问到的问题,就转载这样一篇文章以供自己学习~分隔线下边就是原文了~
原文链接:http://www.cnblogs.com/TankXiao/p/3154017.html


这个面试题碰到过很多次, 再次总结下来。

具体需求: 有一个登陆页面, 上面有2个textbox, 一个提交按钮。 请针对这个页面设计30个以上的test case.

此题的考察目的: 面试者是否熟悉各种测试方法,是否有丰富的Web测试经验, 是否了解Web开发,以及设计Test case的能力

这个题目还是相当有难度的, 一般的人很难把这个题目回答好。

功能测试(Function test)

输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。
输入错误的用户名或者密码, 验证登录会失败,并且提示相应的错误信息。
登录成功后能否能否跳转到正确的页面
用户名和密码,如果太短或者太长,应该怎么处理
用户名和密码,中有特殊字符,和其他非英文的情况
记住用户名的功能
登陆失败后,不能记录密码的功能
用户名和密码前后有空格的处理
密码是否以星号显示

界面测试(UI Test)

布局是否合理,2个testbox 和一个按钮是否对齐
testbox和按钮的长度,高度是否复合要求
界面是否好看
图片,颜色,字体,超链接,是否都显示正确

性能测试(performance test)

打开登录页面,需要几秒
输入正确的用户名和密码后,登录成功跳转到新页面,不超过5秒
能支持多少个用户同时登陆

安全性测试(Security test)

登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)
用户名和密码是否通过加密的方式,发送给Web服务器
用户名和密码的验证,应该是用服务器端验证, 而不能单单是在客户端用javascript验证
用户名和密码的输入框,应该屏蔽SQL 注入攻击
用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击)
错误登陆的次数限制(防止暴力破解)

可用性测试(Usability Test)

是否可以全用键盘操作,是否有快捷键
输入用户名,密码后按回车,是否可以登陆

兼容性测试(Compatibility Test)

主流的浏览器下能否显示正常已经功能正常(IE,6,7,8,9, Firefox, Chrome, Safari,等)
不同的平台是否能正常工作,比如Windows, Mac
移动设备上是否正常工作,比如Iphone, Andriod
不同的分辨率
不同的浏览器大小 (浏览器最大化, 和非最大化)

软件辅助性测试 (Accessibility test)

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

高对比度下能否显示正常 (视力不好的人使用)

2019-02-05 15:24:45 qq_41625341 阅读数 411
  • 软件测试速成篇

    课程内容是全面介绍软件测试知识的,帮助新手入门到软件测试领域(包括测试的技巧、测试用例的设计、如何迅速找出软件缺陷),并且胜任相关的工作,并且对软件测试管理者如何应对工作中遇到的风险与策略。

    8898 人正在学习 去看看 CSDN讲师

    面试中,针对“用户登录”界面设计测试用例这个题目可以说是非常的耳熟能详了!可能你会说,“用户登录”这个测试对象也有点太简单了吧,我只要找一个用户,让他在界面上输入用户名和密码,然后点击“确认”按钮,验证一下是否登录成功就可以了。的确,这构成了一个最基本、最典型的测试用例,这也是终端用户在使用系统时最典型的 Happy Path 场景。

    但是作为测试工程师,你的目标是要保证系统在各种应用场景下的功能是符合设计要求的,所以你需要考虑的测试用例就需要更多、更全面,于是你可能会根据“用户登录”功能的需求描述,结合等价类划分和边界值分析方法来设计一系列的测试用例。

  那什么是等价类划分和边界值分析方法呢?首先,这二者都隶属于最常用、最典型、也是最重要的黑盒测试方法。

    等价类划分方法,是将所有可能的输入数据划分成若干个子集,在每个子集中,如果任意一个输入数据对于揭露程序中潜在错误都具有同等效果,那么这样的子集就构成了一个等价类。后续只要从每个等价类中任意选取一个值进行测试,就可以用少量具有代表性的测试输入取得较好的测试覆盖结果。
    边界值分析方法,是选取输入、输出的边界值进行测试。因为通常大量的软件错误是发生在输入或输出范围的边界上,所以需要对边界值进行重点测试,通常选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。
    从方法论上可以看出来,边界值分析是对等价类划分的补充,所以这两种测试方法经常结合起来使用。

现在,针对“用户登录”功能,基于等价类划分和边界值分析方法,我们设计的测试用例包括:

    1.输入已注册的用户名和正确的密码,验证是否登录成功;
    2.输入已注册的用户名和不正确的密码,验证是否登录失败,并且提示信息正确;
    3.输入未注册的用户名和任意密码,验证是否登录失败,并且提示信息正确;
    4.用户名和密码两者都为空,验证是否登录失败,并且提示信息正确;
    5.用户名和密码两者之一为空,验证是否登录失败,并且提示信息正确;

  如果登录功能启用了验证码功能,在用户名和密码正确的前提下,输入正确的验证码,验证是否登录成功;

  如果登录功能启用了验证码功能,在用户名和密码正确的前提下,输入错误的验证码,验证是否登录失败,并且提示信息正确。

列出这些测试用例后,你可能已经觉得比较满意了,因为你感觉已经把自己的测试知识都用在这些用例设计中了。

的确,上面的测试用例集已经涵盖了主要的功能测试场景。但是在一个优秀的测试工程师眼中,这些用例只能达到勉强及格的标准。

什么?才刚刚及格?如果你有这个想法,那我建议你在继续看下面的内容前,先仔细思考一下,这些测试用例是否真的还需要扩充。

现在,我跟你分享一下有经验的测试工程师会再增加的测试用例:

  1.用户名和密码是否大小写敏感;
  2.页面上的密码框是否加密显示;
  3.后台系统创建的用户第一次登录成功时,是否提示修改密码;
  4.忘记用户名和忘记密码的功能是否可用;
  5.前端页面是否根据设计要求限制用户名和密码长度;
  6.如果登录功能需要验证码,点击验证码图片是否可以更换验证码,更换后的验证码是否可用;
  7.刷新页面是否会刷新验证码;
  8.如果验证码具有时效性,需要分别验证时效内和时效外验证码的有效性;
  9.用户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面;
  10.不同级别的用户,比如管理员用户和普通用户,登录系统后的权限是否正确;
  11.页面默认焦点是否定位在用户名的输入框中;
  12.快捷键 Tab 和 Enter 等,是否可以正常使用。

  看完这些用例,你可能会说:“哇塞,原来一个简简单单的登录功能居然有这么多需要测试的点”。但是,你别高兴得太早,“用户登录”功能的测试还没结束。虽然改进后的测试用例集相比之前的测试覆盖率的确已经提高了很多,但是站在资深测试人员的角度来看,还有很多用例需要设计。

经我这么一说,你可能已经发现,上面所有的测试用例设计都是围绕显式功能性需求的验证展开的,换句话说,这些用例都是直接针对“用户登录”功能的功能性进行验证和测试的。

但是,一个质量过硬的软件系统,除了显式功能性需求以外,其他的非功能性需求即隐式功能性需求也是极其关键的。

显式功能性需求(Functional requirement)的含义从字面上就可以很好地理解,指的是软件本身需要实现的具体功能, 比如“正常用户使用正确的用户名和密码可以成功登录”、“非注册用户无法登录”等,这都是属于典型的显式功能性需求描述。

那什么是非功能性需求(Non-functional requirement)呢?从软件测试的维度来看,非功能性需求主要涉及安全性、性能以及兼容性三大方面。 在上面所有的测试用例设计中,我们完全没有考虑对非功能性需求的测试,但这些往往是决定软件质量的关键因素。

明白了非功能性需求测试的重要性后,你可以先思考一下还需要设计哪些测试用例,然后再来看看我会给出哪些用例,相信这种方式对你的帮助会更大。

安全性测试用例包括:

  1.用户密码后台存储是否加密;
  2.用户密码在网络传输过程中是否加密;
  3.密码是否具有有效期,密码有效期到期后,是否提示需要修改密码;
  4.不登录的情况下,在浏览器中直接输入登录后的 URL 地址,验证是否会重5.新定向到用户登录界面;
  6.密码输入框是否不支持复制和粘贴;
  7.密码输入框内输入的密码是否都可以在页面源码模式下被查看;
  8.用户名和密码的输入框中分别输入典型的“SQL 注入攻击”字符串,验证系统的返回页面;
  9.用户名和密码的输入框中分别输入典型的“XSS 跨站脚本攻击”字符串,验证系统行为是否被篡改;
  10.连续多次登录失败情况下,系统是否会阻止后续的尝试以应对暴力破解;
  11.同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性是否符合设计预期;
  12.同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性。

性能压力测试用例包括:

  1.单用户登录的响应时间是否小于 3 秒;
  2.单用户登录时,后台请求数量是否过多;
  3.高并发场景下用户登录的响应时间是否小于 5 秒;
  4.高并发场景下服务端的监控指标是否符合预期;
  5.高集合点并发场景下,是否存在资源死锁和不合理的资源等待;
  6.长时间大量用户连续登录和登出,服务器端是否存在内存泄漏。
  7.兼容性测试用例包括:

不同浏览器下,验证登录页面的显示以及功能正确性;
相同浏览器的不同版本下,验证登录页面的显示以及功能正确性;
不同移动设备终端的不同浏览器下,验证登录页面的显示以及功能正确性;
不同分辨率的界面下,验证登录页面的显示以及功能正确性。
说到这里,你还会觉得“用户登录”功能的测试非常简单、不值一提么?一个看似简单的功能测试,居然涵盖了如此多的测试用例,除了要覆盖明确的功能性需求,还需要考虑其他诸多的非功能性需求。

另外,通过这些测试用例的设计,你也可以发现,一个优秀的测试工程师必须具有很宽广的知识面,如果你不能对被测系统的设计有深入的理解、不明白安全攻击的基本原理、没有掌握性能测试的基本设计方法,很难设计出“有的放矢”的测试用例。

通过“用户登录”功能测试这个实例,我希望可以激发你对测试更多的思考,并且开拓你设计测试用例的思路,以达到抛砖引玉的效果。

看完了这些测试用例,你可能会说还有一些遗漏的测试点没有覆盖到,这个功能的测试点还不够全面。那么,接下来我再跟你说说测试的不可穷尽性,即绝大多数情况下,是不可能进行穷尽测试的。

所谓的“穷尽测试”是指包含了软件输入值和前提条件所有可能组合的测试方法,完成穷尽测试的系统里应该不残留任何未知的软件缺陷。 因为如果有未知的软件缺陷,你可以通过做更多的测试来找到它们,也就是说你的测试还没有穷尽。

但是,在绝大多数的软件工程实践中,测试由于受限于时间成本和经济成本,是不可能去穷尽所有可能的组合的,而是采用基于风险驱动的模式,有所侧重地选择测试范围和设计测试用例,以寻求缺陷风险和研发成本之间的平衡。

总结

首先,对于高质量的软件测试,用例设计不仅需要考虑明确的显式功能性需求,还要涉及兼容性、安全性和性能等一系列的非功能性需求,这些非功能性需求对软件系统的质量有着举足轻重的作用。

其次,优秀的测试工程师必须具有宽广的知识面,才能设计出有针对性、更易于发现问题的测试用例。

最后,软件测试的用例设计是不可穷尽的,工程实践中难免受制于时间成本和经济成本,所以优秀的测试工程师需要兼顾缺陷风险和研发成本之间的平衡。

思考题

从拓展思维的角度,请你思考一下“用户登录”功能是否还可以添加更多的测试用例。基于同样的思路,思考一下你目前工作中的测试用例设计是否需要加入更多的测试点。

文章转载自:茹炳晟-《软件测试52讲》之你真的懂测试吗?从"用户登录"测试谈起

2019-10-22 09:29:38 XingLongSKY 阅读数 46
  • 软件测试速成篇

    课程内容是全面介绍软件测试知识的,帮助新手入门到软件测试领域(包括测试的技巧、测试用例的设计、如何迅速找出软件缺陷),并且胜任相关的工作,并且对软件测试管理者如何应对工作中遇到的风险与策略。

    8898 人正在学习 去看看 CSDN讲师

##软件测试52讲笔记01“用户登录”测试用例设计

这里茹炳晟老师举了一个最简单,并且最常见的测试场景–登录。不管是APP还是WEB页面,登录是所有测试工程师都绕不开的测试点。一个简单的登录你是如何设计测试用例的?最常用的设计用例方法-等价类、边界值如何理解?

如何理解最常用的测试用例设计方法—等价类

等价类划分:把所有可能的输入数据划分成若干子集,然后从每一个子集中选取少数具有代表性的数据作为测试数据,就可以用少量代表性的测试数据。

等价类划分法分为:有效等价类和无效等价类

有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。

无效等价类:无意义的,不符合需求规定的集合。

如何用等价类划分设计用例?

一般有如下几个步骤:

  • 划分等价类和非等价类并编号。
  • 设计组合方式和可能性。
  • 根据组合选择数据生成测试用例。

例如注册功能:

用户名要求:6到10位字符首字母必须是字母或数字,不能为空和汉字。
密码要求:6到10位字符,不能为空和汉字。
确认密码:与密码一致。
划分等价类和非等价类:

如何理解最常用的测试用例设计方法—边界值

经验告诉我们,一般大量的错误都是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。

通常输入和输出等价类的边界,就是应着重测试的边界情况。

应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

一般要取边界点上的上点、内点和离点。
上点:边界上的点
内点:区间内的点
离点:离边界值最近且与上点不属于同一等价类的点。

综合以上测试用例如下:

  • 正确的用户名和正确的密码
  • 正确的用户名和不正确的密码
  • 错误的用户名和任意密码
  • 用户名和密码都为空
  • 用户名为空或者密码为空
  • 用户名和密码长度校验
  • 用户名和密码字符校验
  • 用户名和密码是否区分大小写
  • 密码是否加密显示
  • 首次登录是否是否需要提示修改密码
  • 忘记密码功能是否正常

除了正确用户名和密码外,其他错误场景都需要给出错误提示。

当然,上述是登录最最基本的测试点,如果登录中设置了验证码或者其他登录校验,则需要增加如下测试点:

  • 正确的用户名密码,正确的验证码
  • 正确的用户名密码,错误的验证码

**

安全性相关测试用例举例:

  • 密码是否加密传输和存储
  • 登录是否设置有效期
  • 不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面;
  • 密码输入框是否不支持复制和粘贴 是否支持互斥登录

性能压力测试用例包括:

  • 单用户登录的响应时间是否小于3秒
  • 单用户登录时,后台请求数量是否过多;
  • 高并发场景下用户登录的响应时间是否小于5秒;
  • 并发场景下,是否存在资源死锁和不合理的资源等待;
  • 长时间并发登录操作,服务器端是否存在内存泄漏。

兼容性测试用例包括:

  • 不同浏览器的界面显示是否兼容。
  • 不同版本的浏览器是否兼容
  • 不同系统版本是否兼容
  • 不同分辨率是否兼容
2019-01-12 14:27:49 jack0612 阅读数 2119
  • 软件测试速成篇

    课程内容是全面介绍软件测试知识的,帮助新手入门到软件测试领域(包括测试的技巧、测试用例的设计、如何迅速找出软件缺陷),并且胜任相关的工作,并且对软件测试管理者如何应对工作中遇到的风险与策略。

    8898 人正在学习 去看看 CSDN讲师

1、登录的测试点

1.1输入框功能:

 

(1)输入合法的用户名和密码,登录成功

(2)输入合法的用户名和不合法的密码,登录失败,并给出合理提示

(3)输入不合法的用户名和合法的密码,登录失败,并给出合理提示

(4)输入不合法的用户名和不合法的密码,登录失败,并给出合理提示

 

1.2快捷键的使用是否正常

 

(1)Tab键的使用是否正确

(2)上下左右键的使用是否正确

(3)若界面支持ESC键,是否能正常工作

(4)Enter键的使用是否正确;切换时是否正常

 

1.3界面布局

 

(1)界面的布局是否符合人的审美标准

(2)是否与设计图一致

 

1.4其他测试点

 

(1)输入框是否支持:复制、粘贴和剪切

(2)密码框使用暗文显示字符

(3)验证用户名前有空格是否可登录

(4)验证用户名是否区分大小写

(5)验证必填项为空是否允许登录

(6)验证登录的次数是否有限制

(7)数据传输过程中密码加密

(8)有图文验证码的考虑辨识程度

(9)不同浏览器、系统下页面显示

(10)一台设备多个浏览器登录、多台设备登录

(11)主流浏览器下功能是否正常(IE9~11,FireFox, Chrome, Safari 等)

(12)记住账号、密码

(13)允许输入错误密码次数

软件测试

阅读数 5

没有更多推荐了,返回首页