发布新日志

  • 【读书笔记】Java测试与设计-从单元测试到到自动Web测试-01

    2010-08-24 13:37:41

    最近开始学习Web测试技术,发现了这本《Java测试与设计》一书。看了前言,我不知道他对我提高web测试技术有多大的帮助,但至少本书涉及到Java软件开发、Web基础架构、Web应用程序的功能性能、测试代码案例等软件开发和Web的各个方面的知识,也是作者本人这么多年来的深刻体会和总结,我想会使我对软件开发和软件测试都有个全新全面的认知。希望自己从今开始,认真学习,认真记录。

    第一章 影响Web使能软件的因素

    软件开发的三个原理:
    1. 即使一个程序仅仅只有一行代码,也需要维护;
    2. 软件的每个部分都应与其他软件交互;
    3. 调教高质量的软件不仅仅是编写代码。

    软件开发的3代转变:

    下一代体系结构,作者称其为一种“网格”的体系结构:

    接着blabla一堆服务架构的东西,看不太懂。。mark一下,回头再看。

    文中多次提到互操作性、高质量的软件应用程序,何为互操作性:
    IEEE对互操作性做出了如下定义[1]
    两个或多个系统或组成部分之间交换信息以及对所已经交换的信息加以使用的能力。

     

    针对Internet的软件开发,测试方法可总结如下:

    • 点击流(click-stream)测试
    • 单元测试(状态、边界、错误、特权)
    • 功能系统测试(事务、端到端测试)
    • 可扩展性和性能测试(负载测试、压力测试)
    • 服务质量测试

     

  • WEB功能测试要素

    2010-08-23 11:14:19

    对功能测试是测试中的重点 
    主要包括一下几个方面的内容 

    连接
    这个连接和界面测试中的连接不同那里注重的是连接方式和位置,如是图像还是文字放置的位置等,还是其他的方式。这里的连接注重功能。如是否有连接,连接的是否是说明的位置等。

    表单提交
    应当模拟用户提交,验证是否完成功能,如注册信息,要测试这些程序,需要验证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。还有数据正确性验证,异常处理等,最好结合易用性要求等。B/S 结构实现的功能可能主要的就在这里,提交数据,处理数据等如果有固定的操作流程可以考虑自动化测试工具的录制功能,编写可重复使用的脚本代码,可以在测试、回归测试时运行以便减轻测试人员工作量。
     
    Cookies验证
    如果系统使用了cookie,测试人员需要对它们进行检测。如果在 cookies 中保存了注册信息,请确认该 cookie 能够正常工作而且已对这些信息已经加密。如果使用 cookie  来统计次数,需要验证次数累计正确。关于 cookie 的使用可以参考浏览器的帮助信息。如果使用 B/S 结构 cookies 中存放的信息更多。功能易用性测试完成了功能测试可以对应用性进行了解,最好听听客户的反映,在可以的情况下对程序进行改进是很有必要的, 和客户保持互动对系统满意度也是很有帮助的。 

    功能测试的测试技术可是很多的, 我们可以结合实际环境选择使用。

  • WEB界面测试要素

    2010-08-03 14:43:46

      现在一般人都有使用浏览器浏览网页的经历,用户虽然不是专业人员但是对界面效果的印象是很重要的。如果你注重这方面的测试,那么验证应用程序是否易于使用就非常重要了。很多人认为这是测试中最不重要的部分,但是恰恰相反界面对不懂技术的客户来说那相当关键,慢慢体会你会明白的。

      方法上可以根据设计文档,如果够专业的话可以专业美工人员,来确定整体风格页面风格,然后根据这个可以页面人员可以生成静态的HTML,CSS等甚至生成几套不用的方案来讨论,或者交给客户评审,最后形成统一的风格的页面/框架。注意不要靠程序员的美术素养形成你的web风格,那样可能会很糟糕。

      主要包括以下几个方面的内容:

      站点地图和导航条位置、是否合理、是否可以导航等内容布局 布局是否合理,滚动条等简介说明 说明文字是否合理,位置,是否正确

      背景/色调 是否正确、美观,是否符合用户需求;

      页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确)表单样式大小,格式,是否对提交数据进行验证(如果在页面部分进行验证的话)等

      连接连接的形式,位置,是否易于理解等

      web测试的主要页面元素

      页面元素的容错性列表(如输入框、时间列表或日历)

      页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选框、复选框、列表框、超连接、输入框等等)

      页面元素的容错性是否存在

      页面元素的容错性是否正确

      页面元素基本功能是否实现(如文字特效、动画特效、按钮、超连接)

      页面元素的外形、摆放位置(如按钮、列表框、核选框、输入框、超连接等)

      页面元素是否显示正确(主要针对文字、图形、签章)

      元素是否显示(元素是否存在)

      页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选框、复选框、列表框、超连接、输入框等等)

      测试技术

      通过页面走查,浏览确定使用的页面是否符合需求。可以结合兼容性测试对不用分辨率下页面显示效果,如果有影响应该交给设计人员提出解决方案。

      可以结合数据定义文档查看表单项的内容,长度等信息。

      对于动态生成的页面最好也能进行浏览查看。如Servelet部分可以结合编码规范,进行代码走查。是否支持中文,如果数据用XML封装要做的工作会多一点等等。

      界面测试要素:

      符合标准和规范,灵活性,正确性,直观性,舒适性,实用性,一致性

      1.直观性:

      用户界面是否洁净,不唐突,不拥挤.界面不应该为用户制造障碍.所需功能或者期待的响应应该明显,并在预期出现的地方.

      界面组织和布局合理吗?是否允许用户轻松地从一个功能转到另一个功能?下一步做什么明显吗?任何时刻都可以决定放弃或者退回,退出吗?输入得到承认了吗?菜单或者窗口是否深藏不露?

      有多余功能吗?软件整体抑或局部是否做得太多?是否有太多特性把工作复杂化了?是否感到信息太庞杂?

      如果其他所有努力失败,帮助系统真能帮忙吗?

      2.一致性

      快速键和菜单选项.在Windows 中按F1键总是得到帮助信息

      术语和命令.整个软件使用同样的术语吗?特性命名一致吗?例如,Find是否一直叫Find,而不是有时叫Search?

      软件是否一直面向同一级别用户?带有花哨用户界面的趣味贺卡程序不应该显示泄露技术机密的错误提示信息.

      按钮位置和等价的按键.大家是否注意到对话框有OK按钮和Cancle按钮时,OK按钮总是在上方或者左方,而Cancle按钮总是在下方或右方?同样原因,Cancle按钮的等价按键通常是Esc,而选中按钮的等价按钮通常是Enter.保持一致.

      3.灵活性

      状态跳转.灵活的软件实现同一任务有多种选择方式.

      状态终止和跳过,具有容错处理能力.

      数据输入和输出.用户希望有多种方法输入数据和查看结果.例如,在写字板插入文字可用键盘输入,粘贴,从6种文件格式读入,作为对象插入,或者用鼠标从其他程序拖动.

      l 4.舒适性

      恰当.软件外观和感觉应该与所做的工作和使用者相符.

      错误处理.程序应该在用户执行严重错误的操作之前提出警告,并允许用户恢复由于错误操作导致丢失的数据.如大家认为undo /redo是当然的.

      性能.快不见得是好事.要让用户看得清程序在做什么,它是有反应的.

  • 【转】Web知识

    2010-08-01 22:28:30

    一、Web基础知识(HTML、XML、CSS基础语法):
    1、HTML/XML规范中,元素结束标签是以尖括号括起来,并以/还是\开头再加上元素名称?即body的结束标签是</body>还是<\body>
    2、符合XHTML规范的文档一定符合XML规范吗?XSL和HTML的文档呢?
    3、XML规范中,第一行必须是<?xml… 还是<!xml… 开头?
    4、一个HTML文档必须包含三个元素,它们是head、body和哪个?
    5、HTML中文档内联注释应该是以<!-开头还是<!--或者<?-,又以什么结尾?
    6、Javascrīpt脚本必须写在什么标签之内。
    7、FireFox浏览器是否支持VBscrīpt脚本?
    8、我们现在使用的IE的版本一般是多少,IE的英文全称是什么?
    9、CSS规范中,每一条样式的结束符是;(分号)还是: (冒号) ?样式名与样式值之间的分隔符是:(冒号)还是=(等号) ?
    10、CSS规范中,.(句点)后面跟一个名称代表什么含义?#(井号)后面跟一个名称代表什么含义?如果要对一个元素设置CSS样式,应将CSS样式写在它的什么属性内?
     
     
    1、</body>
    2、XHTML和XSL都必然符合XML规范,HTML不符合。
    3、<?xml
    4、html
    5、<!--和-->
    6、<scrīpt>
    7、不支持
    8、Internet Explorer 6.0 SP2/5.5/5.0/6.0 SP1/7.0 beta2/7.0 beta3都算对。
    9、;,:和=都可以
    10、.后面跟个名称表示文档中所有class属性值包含这个名称的应用其后样式,#后面跟个名称表示文档中ID为此名称的元素应用其后样式。

    二、Web进阶知识(javascrīpt、DOM、CSS进阶):
    1、试图说明setTimeout和setInterval的不同。
    2、请指出body是什么元素的属性,alert是什么元素的方法。
    3、onblur事件在什么时机被触发?onmouseover事件当鼠标在元素上移动时是仅触发一次还是连续触发?那么onmouseout呢?
    4、在CSS中a:hover、a:link各表示什么意思?a与A是否有不同?XHTML规范要求所有标签名称必须大写还是小写?属性名称呢?
    5、在<form>中的元素不能在脚本中直接用元素ID来访问,这个时候我们一般用document的一个方法来获取这个元素。这个方法是:
    getElementByID、getElementById、getNodeById、getNodeByID、GetNodeById。
    6、由于class是javascrīpt中的保留字,所以元素的class属性在javascrīpt中没有用class这个名称,那么是用什么名称来代替的?
    7、如何简单的使一个变量的值为NaN?
    8、试说明parent和opener属性各代表什么?
    9、指出border-style样式在javascrīpt应如何访问?
    10、指出div与span的不同。
     
    1、setTimeout在经过指定时间后执行一次,setInterval则是经过指定时间就执行一次。
    2、window.document、window
    3、onblur在控件失去焦点时触发,onmouseover是连续触发,onmouseout仅触发一次。
    4、a:hover表示当鼠标放在连接上时,连接该使用什么样式,a:link表示正常情况下连接该使用什么样式,在现行的CSS标准中不区分大小写,所以a与A没有不同。XHTML要求所有的标签名和属性名都必须小写。
    5、getElementById
    6、className
    7、a = 1/0;
    8、parent代表父框架,opener代表打开这个窗口的窗口
    9、element.style.borderStyle
    10、默认的display样式不同,div是block而span是inline;

Open Toolbar