有付出必有回报。 有得必有失。 有酸甜苦辣的生活才是真正的生活。 我愿意像蜡烛一样发光发热,来照亮我的人生征途!! 日志上的资料都是我个人喜欢的或是对自己有用的,当然有很多是从别人处转载来的,但是都是为了共同进步!希望和大家一起分享! 牛年让自己更"牛"一点!!!

发布新日志

  • 一个网页通用的测试用例

    2014-11-18 13:58:10

    一个网页通用的测试用例(借鉴他人的保存,加注释)

    上一篇 / 下一篇  2014-09-30 10:15:14 / 个人分类:通用测试用例

    具体需求: 有一个登陆页面, (假如上面有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. 高对比度下能否显示正常 (视力不好的人使用)
  • 时间戳引起的网站访问不了的问题

    2013-07-24 10:28:59

    针对有些用户能ping通我们的网站,但是连接时超时服务器没有任何响应,怀疑问题处在了了http的三次握手环节,这是决定通过抓包进行分析:

    1、有问题机器的截图:

    2、正常机器的截图:

    3、发现问题

    从抓包数据发现,web服务器对出问题机器和正常机器系统的tcp syn包都返回ACK包,但存在问题发出的tcp syn包有时候响应,有时候不响应。不响应时,终端与web服务器之间的tcp连接无法正常建立,导致页面不能打开。对比这两种数据包,就在时间戳上有差异,存在问题的机器发出的tcp syn包带有时间戳,因此怀疑时间戳问题导致的故障。

    4、解决问题

    既然怀疑是时间戳导致的,那我们就着手分析如果将出现问题的机器的时间戳去掉会不会解决问题。针对带有时间戳的tcp syn包不响应的问题,查阅了相关资料得知产生问题的原因是出问题系统中的注册表中有Tcp1323opts这个选项,会导致其在发包时加入时间戳,经过nat之后,如果前面相同的端口被使用过,且时间戳大于这个链接发出的syn中的时间戳,服务器上就会忽略掉这个syn,不返会syn-ack消息,表现为用户无法正常完成tcp3次握手,从而不能打开web页面。在业务闲时,如果用户nat的端口没有被使用过时,就可以正常打开;业务忙时,nat端口重复使用的频率高,很难分到没有被使用的端口,从而产生这种问题。

    目前看有两种方法解决:

    (1)    是在服务器上修改变量

    首先我们先查看一下我们服务器net.ipv4.tcp_timestamps的默认值,如果该值为0测说名不是该问题导致,如果是1我们需要将该值设置为1。

    查看默认值的方法:[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_timestamps

    修改该值的方法:vim /etc/sysctl.conf  添加 net.ipv4.tcp_timestamps=0

    (2)修改客户端的注册表Tcp1323Opts设置为0。

     

    备注:

    Tcp1323Opts

    说明:该参数控制 RFC 1323 时间戳与窗口缩放选项。默认情况下,启用时间戳与

    窗口缩放,但是可以使用标志位进行控制。0 位控制窗口缩放,1 位控制时间戳。

    值为0(禁用 RFC 1323 选项)

    值为1(仅启用窗口缩放)

    值为2(仅启用时间戳)

    值为3(两个选项均启用)

     

    net.ipv4.tcp_timestamps=0

    说明:时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。

    值为0(禁用时间戳)

    值为1(启用时间戳)

     

    只有客户端和服务端都开启时间戳的情况下,才会出现能ping通不能建立tcp三次握手的情况,所以做为提供服务的公司,不可能保证所有的用户都关闭时间戳,这个功能,所以我们必须关闭时间戳,这样才能给所用用户提供正常的服务。



    使用该命令使其立马生效:/sbin/sysctl -p

  • TCP/IP 的工作原理

    2008-12-31 18:01:44

    下面以采用TCP/IP协议传送文件为例,说明TCP/IP的工作原理,其中应用层传输文件采用文件传输协议

    (FTP)。

    TCP/IP协议的工作流程如下:

    1.在源主机上,应用层将一串应用数据流传送给传输层。

    2.传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。

    3.在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路

    层。

    4.链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC

    地址,将MAC帧发往目的主机或IP路由器。

    5.在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。

    6.网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果

    一致,则去掉IP报头,将TCP段送交传输层。

    7.传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认

    信息;若不正确或丢包,则向源主机要求重发信息。

    8.在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接

    收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。

  • DO NOT MAKE ME THINK

    2008-12-03 18:25:29

       一直是在做WEB测试,发现很多开发人员并没有对WEB网站的界面做很好的分析,最主要的是体现在易用性方面。没有站在用户的立场上去想问题,导致很多UI方面的问题,这些问题并不是逻辑功能方面的,而只是不符合用户习惯的。偶然间从我以前的资料中找到一份很好的文档,是关于网站易用性原则的,相信不管对于开发人员还是测试人员都是有很大帮助的,现在把它上传吧。
       郁闷,直到今天才找到方法怎么上传。个人觉得这篇PPT写得相当得好。相信你一定会获益良多的。

  • 如何测试TCP/IP协议

    2008-12-02 12:59:18

       因为今天中午休息的时间比较多,所以找了点小东西学习下,不敢独占,所以发出来看看

       安装网络硬件和网络协议之后,我们一般要进行TCP/IP协议的测试工作,那么怎样测试才算是比较全面的测试呢?我们认为,全面的测试应包括局域网和互联网两个方面,因此应从局域网和互联网两个方面测试,以下是我们在实际工作中利用命令行测试TCP/IP配置的步骤:
      1、 单击“开始”/“运行”,输入CMD按回车,打开命令提示符窗口。

      2、 首先检查IP地址、子网掩码、默认网关、DNS服务器地址是否正确,输入命令ipconfig /all,按回车。此时显示了你的网络配置,观查是否正确。

      3、 输入ping 127.0.0.1,观查网卡是否能转发数据,如果出现“Request timed out”,表明配置差错或网络有问题。

      4、 Ping一个互联网地址,如ping 202.102.128.68,看是否有数据包传回,以验证与互联网的连接性。

      5、 Ping 一个局域网地址,观查与它的连通性。

      6、 用nslookup测试DNS解析是否正确,输入如nslookup www.163.com,查看是否能解析。

      如果你的计算机通过了全部测试,则说明网络正常,否则网络可能有不同程度的问题。在此不展开详述。不过,要注意,在使用 ping命令时,有些公司会在其主机设置丢弃ICMP数据包,造成你的ping命令无法正常返回数据包,不防换个网站试试。

    ping命令详解

    ping [-n count][-l size][-w timeout]

    -n 发送的ICMP数据包数,默认是4个

    -l 发送的ICMP数据包大小,一般是56K+8K=64K

    -w 超时时间

    另外因为经常被问到帧和IP数据包是怎么回事,所以也找了找这方面的资料。

    数据格式:
    数据帧:帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC地址及类型,帧尾是校验字)
    IP数据包:IP头部+TCP数据信息 (IP头包括源和目标主机IP地址、类型、生存期等)
    TCP数据信息:TCP头部+实际数据 (TCP头包括源和目标主机端口号、顺序号、确认号、校
    验字等)

Open Toolbar