发布新日志

  • 三角形的测试用例 转载

    2012-03-20 17:20:50

    http://wenku.baidu.com/view/76bf68170b4e767f5acfcef1.html
  • 客户端测试

    2012-03-17 20:50:03

    http://www.doc88.com/p-70921717804.html
     
    手机客户端测试
    http://wenku.baidu.com/view/3f899b3610661ed9ad51f3ad.html
  • liunx 学习

    2012-03-17 11:10:27

    http://wenku.baidu.com/view/9cd6f92f0066f5335a81210b.html
    http://wenku.baidu.com/view/d21cf78a6529647d27285212.html?from=rec&pos=0&weight=5921&lastweight=885&count=4
  • 播放器格式:转载

    2012-03-17 05:35:28

    设置的问题吧~~~
    ●AVI格式:它的英文全称为Audio Video Interleaved,即音频视频交错格式。它于1992年被Microsoft公司推出,随Windows3.1一起被人们所认识和熟知。所谓“音频视频交错”,就是可以将视频和音频交织在一起进行同步播放。这种视频格式的优点是图像质量好,可以跨多个平台使用,其缺点是体积过于庞大,而且更加糟糕的是压缩标准不统一,最普遍的现象就是高版本Windows媒体播放器播放不了采用早期编码编辑的AVI格式视频,而低版本Windows媒体播放器又播放不了采用最新编码编辑的AVI格式视频,所以我们在进行一些AVI格式的视频播放时常会出现由于视频编码问题而造成的视频不能播放或即使能够播放,但存在不能调节播放进度和播放时只有声音没有图像等一些莫名其妙的问题,如果用户在进行AVI格式的视频播放时遇到了这些问题,可以通过下载相应的解码器来解决。 
    
    ●nAVI格式:nAVI是newAVI的缩写,是一个名为ShadowRealm的地下组织发展起来的一种新视频格式(与我们上面所说的AVI格式没有太大联系)。它是由Microsoft ASF压缩算法的修改而来的,但是又与下面介绍的网络影像视频中的ASF视频格式有所区别,它以牺牲原有ASF视频文件视频“流”特性为代价而通过增加帧率来大幅提高ASF视频文件的清晰度。 
    
    ●DV-AVI格式:DV的英文全称是Digital Video Format,是由索尼、松下、JVC等多家厂商联合提出的一种家用数字视频格式。目前非常流行的数码摄像机就是使用这种格式记录视频数据的。它可以通过电脑的IEEE 1394端口传输视频数据到电脑,也可以将电脑中编辑好的的视频数据回录到数码摄像机中。这种视频格式的文件扩展名一般是.avi,所以也叫DV-AVI格式。 
    
    ●MPEG格式:它的英文全称为Moving Picture Expert Group,即运动图像专家组格式,家里常看的VCD、SVCD、DVD就是这种格式。MPEG文件格式是运动图像压缩算法的国际标准,它采用了有损压缩方法减少运动图像中的冗余信息,说的更加明白一点就是MPEG的压缩方法依据是相邻两幅画面绝大多数是相同的,把后续图像中和前面图像有冗余的部分去除,从而达到压缩的目的(其最大压缩比可达到200:1)。目前MPEG格式有三个压缩标准,分别是MPEG-1、MPEG-2、和MPEG-4,另外,MPEG-7与MPEG-21仍处在研发阶段。 
    
    MPEG-1:制定于1992年,它是针对1.5Mbps以下数据传输率的数字存储媒体运动图像及其伴音编码而设计的国际标准。也就是我们通常所见到的VCD制作格式。使用MPEG-1的压缩算法,可以把一部120分钟长的电影压缩到1.2GB左右大小。这种视频格式的文件扩展名包括.mpg、.mlv、.mpe、.mpeg及VCD光盘中的.dat文件等。 
    
    MPEG-2:制定于1994年,设计目标为高级工业标准的图像质量以及更高的传输率。这种格式主要应用在DVD/SVCD的制作(压缩)方面,同时在一些HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当的应用。使用MPEG-2的压缩算法,可以把一部120分钟长的电影压缩到4到8GB的大小。这种视频格式的文件扩展名包括.mpg、.mpe、.mpeg、.m2v及DVD光盘上的.vob文件等。 
    
    
    MPEG-3(MPEG AUDIO LAYER 3)是一种具有高压缩率的音响信号文件。虽然它音乐信号的压 缩比例较高,但依然可以与CD/MD的音质媲美。MP3高达10比1的压缩比例。使一张CD-R/RW上可以容纳10张普通CD的音乐。达到可以长时间播放音乐。您可以从互联网或其它渠道获取MP3格式的音乐。 
    
    MPEG-4:制定于1998年,MPEG-4是为了播放流式媒体的高质量视频而专门设计的,它可利用很窄的带度,通过帧重建技术,压缩和传输数据,以求使用最少的数据获得最佳的图像质量。目前MPEG-4最有吸引力的地方在于它能够保存接近于DVD画质的小体积视频文件。另外,这种文件格式还包含了以前MPEG压缩标准所不具备的比特率的可伸缩性、动画精灵、交互性甚至版权保护等一些特殊功能。这种视频格式的文件扩展名包括.asf、.mov和DivX AVI等。 
    
    小提示:细心的用户一定注意到了,这中间怎么没有MPEG-3编码?实际上,大家熟悉的MP3就是采用的MPEG-3(MPEG Layeur3)编码。 
    
    
    
    
    ●DivX格式:这是由MPEG-4衍生出的另一种视频编码(压缩)标准,也即我们通常所说的DVDrip格式,它采用了MPEG4的压缩算法同时又综合了MPEG-4与MP3各方面的技术,说白了就是使用DivX压缩技术对DVD盘片的视频图像进行高质量压缩,同时用MP3或AC3对音频进行压缩,然后再将视频与音频合成并加上相应的外挂字幕文件而形成的视频格式。其画质直逼DVD并且体积只有DVD的数分之一。这种编码对机器的要求也不高,所以DivX视频编码技术可以说是一种对DVD造成威胁最大的新生视频压缩格式,号称DVD杀手或DVD终结者。 
    
    ●MOV格式:美国Apple公司开发的一种视频格式,默认的播放器是苹果的QuickTimePlayer。具有较高的压缩比率和较完美的视频清晰度等特点,但是其最大的特点还是跨平台性,即不仅能支持MacOS,同样也能支持Windows系列。 
    
    二、网络影像视频 
    
    ●ASF格式:它的英文全称为Advanced Streaming format,它是微软为了和现在的Real Player竞争而推出的一种视频格式,用户可以直接使用Windows自带的Windows Media Player对其进行播放。由于它使用了MPEG-4的压缩算法,所以压缩率和图像的质量都很不错(高压缩率有利于视频流的传输,但图像质量肯定会的损失,所以有时候ASF格式的画面质量不如VCD是正常的)。 
    
    ●WMV格式:它的英文全称为Windows Media Video,也是微软推出的一种采用独立编码方式并且可以直接在网上实时观看视频节目的文件压缩格式。WMV格式的主要优点包括:本地或网络回放、可扩充的媒体类型、部件下载、可伸缩的媒体类型、流的优先级化、多语言支持、环境独立性、丰富的流间关系以及扩展性等。 
    
    ●RM格式:Real Networks公司所制定的音频视频压缩规范称为Real Media,用户可以使用RealPlayer或RealOne Player对符合RealMedia技术规范的网络音频/视频资源进行实况转播并且RealMedia可以根据不同的网络传输速率制定出不同的压缩比率,从而实现在低速率的网络上进行影像数据实时传送和播放。这种格式的另一个特点是用户使用RealPlayer或RealOne Player播放器可以在不下载音频/视频内容的条件下实现在线播放。另外,RM作为目前主流网络视频格式,它还可以通过其Real Server服务器将其它格式的视频转换成RM视频并由Real Server服务器负责对外发布和播放。RM和ASF格式可以说各有千秋,通常RM视频更柔和一些,而ASF视频则相对清晰一些。 
    
    ●RMVB格式:这是一种由RM视频格式升级延伸出的新视频格式,它的先进之处在于RMVB视频格式打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上合理利用比特率资源,就是说静止和动作场面少的画面场景采用较低的编码速率,这样可以留出更多的带宽空间,而这些带宽会在出现快速运动的画面场景时被利用。这样在保证了静止画面质量的前提下,大幅地提高了运动图像的画面质量,从而图像质量和文件大小之间就达到了微妙的平衡。另外,相对于DVDrip格式,RMVB视频也是有着较明显的优势,一部大小为700MB左右的DVD影片,如果将其转录成同样视听品质的RMVB格式,其个头最多也就400MB左右。不仅如此,这种视频格式还具有内置字幕和无需外挂插件支持等独特优点。要想播放这种视频格式,可以使用RealOne Player2.0或RealPlayer8.0加RealVideo9.0以上版本的解码器形式进行播放。 
    
    
    ●WAV格式:是微软公司开发的一种声音文件格式,也叫波形声音文件,是最早的数字音频格式,被Windows平台及其应用程序广泛支持。WAV格式支持许多压缩算法,支持多种音频位数、采样频率和声道,采用44.1kHz的采样频率,16位量化位数,因此WAV的音质与CD相差无几,但WAV格式对存储空间需求太大不便于交流和传播。 
    
    
    
    ●WMA的全称是Windows Media Audio,是微软力推的一种音频格式。WMA格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18,生成的文件大小只有相应MP3文件的一半。这对只装配32M的机型来说是相当重要的,支持了WMA和RA格式,意味着32M的空间在无形中扩大了2倍。此外,WMA还可以通过DRM(Digital Rights Management)方案加入防止拷贝,或者加入限制播放时间和播放次数,甚至是播放机器的限制,可有力地防止盗版。
  • 智力题: 转载

    2012-03-17 04:59:08

    返回首页 | 加入收藏
    《中国十大招商门户网》
    《中国十大杰出商机网》

    day1给1段,

      day2让工人把1段归还给2段,

      day3给1段,

      day4给5/2还5/1段,

      

    2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。

      3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且

      灯在点燃后30秒就会熄灭。问:小明一家如何过桥?

      4、一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其他人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?

      5、请估算一下CN TOWER电视塔的质量。

      6、一楼到十楼的每层电梯门口都放着一颗钻石,钻石大小不一。你乘坐电梯从一楼到十楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能拿到最大的一颗?

      7、U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来回桥两端。手电筒是不能用丢的方式来传递的。四个人的步行速度各不同,若两人同行则以较慢者的速度为准。Bono需花1分钟过桥,Edge需花2分钟过桥,Adam需花5分钟过桥,Larry需花10分钟过桥。他们要如何在17分钟内过桥呢?

      8、烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?

      9、为什么下水道的盖子是圆的?

      10、美国有多少辆加油站(汽车)?

      11、有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐分成50、90克各一份?

      12、有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以第小时20公里的速度从纽约开往洛杉矶。如果有一只鸟,以外30公里每小时的速度和两辆火车现时启动,从洛杉矶出发,碰到另辆车后返回,依次在两辆火车来回的飞行,直道两面辆火车相遇,请问,这只小鸟飞行了多长距离?

      13、你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划中,得到红球的准确几率是多少?

      14、想象你在镜子前,请问,为什么镜子中的影像可以颠倒左右,却不能颠倒上下?

      15、你有四人装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的重量+1.只称量一次,如何判断哪个罐子的药被污染了?

      16、如果你有无穷多的水,一个3夸脱的和一个5夸脱的提桶,你如何准确称出4夸脱的水?

      17、你有一桶果冻,其中有黄色,绿色,红色三种,,闭上眼睛选出同样颜色的两个,抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?

      18、将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?

      19、如果要你能去掉50个州的任何一个,那你去掉哪一个,为什么?

      20、对一批编号为1~100全部开关朝上开的灯进行以下操作凡是1的倍数反方向拨一次开关2的倍数反方向又拨一次开关3的倍数反方向又拨一次开关。问最后为关熄状态的灯的编号。

      21、假设一张圆盘像唱机上的唱盘那样转动。这张盘一半是黑色,一半是白色。假设你有数量不限的一些颜色传感器。要想确定圆盘转动的方向,你需要在它周围摆多少个颜色传感器?它们应该被摆放在什么位置?

      22、假设时钟到了12点。注意时针和分针重叠在一起。在一天之中,时针和分针共重叠多少次?你知道它们重叠时的具体时间吗?

      23、中间只隔一个数字的两个奇数被称为奇数对,比如17和19。证明奇数对之间的数字总能被6整除(假设这两个奇数都大于6)。现在证明没有由三个奇数组成的奇数对。

      24、一个屋子有一个门(门是关闭的)和3盏电灯。屋外有3个开关,分别与这3盏灯相连。你可以随意操纵这些开关,可一旦你将门打开,就不能变换开关了。确定每个开关具体管哪盏灯。

      25、假设你有8个球,其中一个略微重一些,但是找出这个球的惟一方法是将两个球放在天平上对比。最少要称多少次才能找出这个较重的球?

      26、下面玩一个拆字游戏,所有字母的顺序都被打乱。你要判断这个字是什么。假设这个被拆开的字由5个字母组成:1.共有多少种可能的组合方式?2.如果我们知道是哪5个字母,那会怎么样?3.找出一种解决这个问题的方法。

      27、有4个女人要过一座桥。她们都站在桥的某一边,要让她们在17分钟内全部通过这座桥。这时是晚上。她们只有一个手电筒。最多只能让两个人同时过桥。不管是谁过桥,不管是一个人还是两个人,必须要带着手电筒。手电筒必须要传来传去,不能扔过去。每个女人过桥的速度不同,两个人的速度必须以较慢的那个人的速度过桥。

      第一个女人:过桥需要1分钟;

      第二个女人:过桥需要2分钟;

      第三个女人:过桥需要5分钟;

      第四个女人:过桥需要10分钟。

      比如,如果第一个女人与第4个女人首先过桥,等她们过去时,已经过去了10分钟。如果让第4个女人将手电筒送回去,那么等她到达桥的另一端时,总共用去了20分钟,行动也就失败了。怎样让这4个女人在17分钟内过桥?还有别的什么方法?

      28、如果你有两个桶,一个装的是红色的颜料,另一个装的是蓝色的颜料。你从蓝色颜料桶里舀一杯,倒入红色颜料桶,再从红色颜料桶里舀一杯倒入蓝颜料桶。两个桶中红蓝颜料的比例哪个更高?通过算术的方式来证明这一点。B:疯狂计算

      29、已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积。

      甲问乙:"你知道是哪两个数吗?"乙说:"不知道";

      乙问甲:"你知道是哪两个数吗?"甲说:"也不知道";

      于是,乙说:"那我知道了";

      随后甲也说:"那我也知道了";

      这两个数是什么?

      30、4,4,10,10,加减乘除,怎么出24点?

      31、1000!有几位数,为什么?

      32、F(n)=1 n>8 n<12

      F(n)=2 n<2

      F(n)=3 n=6

      F(n)=4 n=other

      使用+ - * /和sign(n)函数组合出F(n)函数

      sign(n)=0 n=0

      sign(n)=-1 n<0

      sign(n)=1 n>0

      33、编一个程序求质数的和例如F(7)=1+3+5+7+11+13+17=58

      34、。。。

      请仅用一支笔画四根直线将上图9各点全部连接

      35、三层四层二叉树有多少种

      36、1--100000数列按一定顺序排列,有一个数字排错,如何纠错?写出最好方法。两个数字呢?

    1、  2、面对这样的怪题,有些应聘者绞尽脑汁也无法分成;而有些应聘者却感到此题实际很简单,把切成的8份蛋糕先拿出7份分给7人,剩下的1份连蛋糕盒一起分给第8个人。

      4、假如只有

      一个人戴黑帽子,那他看到所有人都戴白帽,在第一次关灯时就应自打耳光,所以应该不止一个人戴黑帽子;如果有两顶黑帽子,第一次两人都只看到对方头上的黑帽子,不敢确定自己的颜色,但到第二次关灯,这两人应该明白,如果自己戴着白帽,那对方早在上一次就应打耳光了,因此自己戴的也是黑帽子,于是也会有耳光声响起;可事实是第三次才响起了耳光声,说明全场不止两顶黑帽,依此类推,应该是关了几次灯,有几顶黑帽。

      5、比如你怎样快速估算支架和柱子的高度、球的半径,算出各部分的体积等等。招聘官的说法:"就CNTOWER这道题来说,它和一般的谜语或智力题还是有区别的。我们称这类题为’快速估算题’,主要考的是快速估算的能力,这是开发软件必备的能力之一。当然,题目只是手段,不是目的,最终得到一个结果固然是需要的,但更重要的是对考生得出这个结果的过程也就是方法的考察。"Mr Miller为记者举例说明了一种比较合理的答法,他首先在纸上画出了CN TOWER的草图,然后快速估算支架和各柱的高度,以及球的半径,算出各部分体积,然后和各部分密度运算,最后相加得出一个结果。

      这一类的题目其实很多,如:"估算一下密西西比河里的水的质量。""如果你是田纳西州州长,请估算一下治理好康柏兰河的污染需要多长时间。"

      "估算一下一个行进在小雨中的人5分钟内身上淋到的雨的质量。"

      Mr Miller接着解释道:"像这样的题目,包括一些推理题,考的都是人的ProblemSolving(解决问题的能力),不是哪道题你记住了答案就可以了的。"

      对于公司招聘的宗旨,Mr Miller强调了四点,这些是有创造性的公司普遍注重的员工素质,是想要到知名企业实现自己的事业梦想的人都要具备的素质和能力。

      要求一:RawSmart(纯粹智慧),与知识无关。

      要求二:Long-termPotential(长远学习能力)。

      要求三:TechnicSkills(技能)。

      要求四:Professionalism(职业态度)。

      6、她的回答是:选择前五层楼都不拿,观察各层钻石的大小,做到心中有数。后五层楼再选择,选择大小接近前五层楼出现过最大钻石大小的钻石。她至今也不知道这道题的准确答案,"也许就没有准确答案,就是考一下你的思路,"她如是说。

      7、分析:有个康奈尔的学生写文章说他当时在微软面试时就是碰到了这道题,最短只能做出在19分钟内过桥。

      8、两边一起烧。

      9、答案之一:从麻省理工大学一位计算机系教授那里听来的答案,首先在同等用材的情况下他的面积最大。第二因为如果是方的、长方的或椭圆的,那无聊之徒拎起来它就可以直接扔进地下道啦!但圆形的盖子嘛,就可以避免这种情况了

      10、这个乍看让人有些摸不着头脑的问题时,你可能要从问这个国家有多少小汽车入手。面试者也许会告诉你这个数字,但也有可能说:"我不知道,你来告诉我。"那么,你对自己说,美国的人口是2.75亿。你可以猜测,如果平均每个家庭(包括单身)的规模是2.5人,你的计算机会告诉你,共有1.1亿个家庭。你回忆起在什么地方听说过,平均每个家庭拥有1.8辆小汽车,那么美国大约会有1.98亿辆小汽车。接着,只要你算出替1.98亿辆小汽车服务需要多少加油站,你就把问题解决了。重要的不是加油站的数字,而是你得出这个数字的方法。

      12、答案很容易计算的:

      假设洛杉矶到纽约的距离为s

      那小鸟飞行的距离就是(s/(15+20))*30。

      13、无答案,看你有没有魄力坚持自己的意见。

      14、因为人的两眼在水平方向上对称。

      15、从第一盒中取出一颗,第二盒中取出2颗,第三盒中取出三颗。依次类推,称其总量。

      16、比较复杂:

      A、先用3夸脱的桶装满,倒入5夸脱。以下简称3->5)

      在5夸脱桶中做好标记b1,简称b1)。

      B、用3继续装水倒满5空3将5中水倒入3直到b1在3中做标记b2

      C、用5继续装水倒满3空5将3中水倒入5直到b2

      D、空3将5中水倒入3标记为b3

      E、装满5空3将5中水倒入3直到3中水到b3

      结束了,现在5中水为标准的4夸脱水。

      20、素数是关,其余是开。

      29、允许两数重复的情况下

      答案为x=1,y=4;甲知道和A=x+y=5,乙知道积B=x*y=4

      不允许两数重复的情况下有两种答案

      答案1:为x=1,y=6;甲知道和A=x+y=7,乙知道积B=x*y=6

      答案2:为x=1,y=8;甲知道和A=x+y=9,乙知道积B=x*y=8

      解:

      设这两个数为x,y.

      甲知道两数之和A=x+y;

      乙知道两数之积B=x*y;

      该题分两种情况:

      允许重复,有(1 <= x <= y <= 30);

      不允许重复,有(1 <= x < y <= 30);

      当不允许重复,即(1 <= x < y <= 30);

      1)由题设条件:乙不知道答案

      <=> B=x*y解不唯一

      => B=x*y为非质数

      又∵x≠y

      ∴B≠k*k (其中k∈N)

      结论(推论1):

      B=x*y非质数且B≠k*k (其中k∈N)

      即:B∈(6,8,10,12,14,15,18,20...)

      证明过程略。

      2)由题设条件:甲不知道答案

      <=> A=x+y解不唯一

      => A >= 5;

      分两种情况:

      A=5,A=6时x,y有双解

      A>=7时x,y有三重及三重以上解

      假设A=x+y=5

      则有双解

      x1=1,y1=4;

      x2=2,y2=3

      代入公式B=x*y:

      B1=x1*y1=1*4=4;(不满足推论1,舍去)

      B2=x2*y2=2*3=6;

      得到唯一解x=2,y=3即甲知道答案。

      与题设条件:"甲不知道答案"相矛盾,

      故假设不成立,A=x+y≠5

      假设A=x+y=6

      则有双解。

      x1=1,y1=5;

      x2=2,y2=4

      代入公式B=x*y:

      B1=x1*y1=1*5=5;(不满足推论1,舍去)

      B2=x2*y2=2*4=8;

      得到唯一解x=2,y=4

      即甲知道答案

      与题设条件:"甲不知道答案"相矛盾

      故假设不成立,A=x+y≠6

      当A>=7时

      ∵x,y的解至少存在两种满足推论1的解

      B1=x1*y1=2*(A-2)

      B2=x2*y2=3*(A-3)

      ∴符合条件

      结论(推论2):A >= 7

      3)由题设条件:乙说"那我知道了"

      =>乙通过已知条件B=x*y及推论(1)(2)可以得出唯一解

      即:

      A=x+y,A >= 7

      B=x*y,B∈(6,8,10,12,14,15,16,18,20...)

      1 <= x < y <= 30

      x,y存在唯一解

      当B=6时:有两组解

      x1=1,y1=6

      x2=2,y2=3 (∵x2+y2=2+3=5 < 7∴不合题意,舍去)

      得到唯一解x=1,y=6

      当B=8时:有两组解

      x1=1,y1=8

      x2=2,y2=4 (∵x2+y2=2+4=6 < 7∴不合题意,舍去)

      得到唯一解x=1,y=8

      当B>8时:容易证明均为多重解

      结论:

      当B=6时有唯一解x=1,y=6当B=8时有唯一解x=1,y=8

      4)由题设条件:甲说"那我也知道了"

      => 甲通过已知条件A=x+y及推论(3)可以得出唯一解

      综上所述,原题所求有两组解:

      x1=1,y1=6

      x2=1,y2=8

      当x<=y时,有(1 <= x <= y <= 30);

      同理可得唯一解x=1,y=4

      31、  解:1000

      Lg(1000!)=sum(Lg(n))

      n=1

      用3段折线代替曲线可以得到

      10(0+1)/2+90(1+2)/2+900(2+3)/2=2390

      作为近似结果,好象1500~3000都算对

      32、F(n)=1 n>8 n<12

      F(n)=2 n<2

      F(n)=3 n=6

      F(n)=4 n=other

      使用+ - * /和sign(n)函数组合出F(n)函数

      sign(n)=0 n=0

      sign(n)=-1 n<0

      :sign(n)=1 n>0

      解:只要注意[sign(n-m)*sign(m-n)+1]在n=m处取1其他点取0就可以了

      34、米字形的画就行了

  • 转载 测试qq发送文件。

    2011-05-06 09:54:26

    QQ发文件:(最最最主要的是看需求!!NO需求,NO测试,以下的需求是个人跟据多年使用QQ猜测的)
    主要测试功能点:
    发送方:QQ 文件
    接收方:QQ 文件
    网络
    可以分为以下几个点来测试(功能测试)
    一 发送方的QQ  测试功能点:
    1.QQ的状态:在线,离开,离线,隐身。。。。  各种状态下发文件的测试;
    2.QQ的功能:普通用户,会员,钻石会员,还有一些乱七八杂的什么什么会员  各种功能下发文件的测试;
    二 发送方的文件   测试功能点:
    1.文件的格式  JPG?AVI?MP4?
    2.文件的大小限制 100M?1M?     //这里要考虑到QQ会员与非会员之间可能存在的区别
    三.接收方的QQ  测试功能点:
    1.QQ的状态:在线,离开,离线,隐身。。。。  各种状态下接收文件的测试;
    2.QQ的功能:普通用户,会员,钻石会员,还有一些乱七八杂的什么什么会员  各种功能下接文件的测试;
    四.接收方接到的文件
    1.文件的内容  文件是否正确被接收?修改时间,属性,版本等相关属性是否与发送方一致?
    2.文件大小   接收方的磁盘空间
    五.网络
    网络状态:断开,连接,时断时连 //文件能不能续传?
    //发送方在线,接收方离线时  能不能发文件?
    如果要深入一点,就是相关的一些网络协议
     
     
    ====================================
     
    测试QQ发送文件,个人方法为以下:(注意:硬件方面采用目前常用办公主流标配)
    1、将所要发送的文件分类,比如说可执行文件.exe,压缩包文件,文本文件,Word文档等
    2、准备大小不等的文件,小则几K,大则根据需要自行决定
    3、网络环境准备,己方与接受方的网络环境可相等,也可不等,建议二者兼有
    4、开始发送,方法分为鼠标直接拖至对话框中发送和选择QQ对话框中发送功能按钮发送,发送类别分为直接发送和离线发送
    5、测试发送大小不等的文件需要多长时间
    6、测试发送类似于敏感文件是否有拦截或者自动更名功能,比如发送了可执行文件.exe,发送完毕后,获取对方接受后文件名是否更改
    7、发送病毒文件(此条慎用),看是否具有提示功能
    8、发送过程中突然重启机器,或者关闭网络,然后再次开启登录,看是否支持断点续传
    9、打开视频通话功能的同时进行发送文件,此项属于压力测试一
    10、在上条的基础上再次开启窗口式网络游戏,此项属于压力测试二
    11、发送大号文件,一般情况下要求上700M,此项属于压力测试三
    12、同时给多个人发送文件,看什么时候机器或者QQ处于暴死状态,压力测试四
  • 转载 网络协议知识。

    2011-04-25 09:43:58

    网络协议:

    SMTP-25,
    POP3-110,
    HTTP-80
    http://blog.sina.com.cn/s/blog_7f83f8890100xnsm.html
    OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 其中高层,既7、6、5、4层定义了应用程序的功能,下面3层,既3、2、1层主要面向通过网络的端到端的数据流。

     

    Telnet(Remote Login):提供远程登录功能,一台计算机用户可以登录到远程的另一台计算机上,如同在远程主机上直接操作一样。

    2、FTP(File Transfer Protocol):远程文件传输协议,允许用户将远程主机上的文件拷贝到自己的计算机上。

    3、SMTP(Simple Mail transfer Protocol):简单邮政传输协议,用于传输电子邮件。

    4、NFS(Network File Server):网络文件服务器,可使多台计算机透明地访问彼此的目录。

    5、UDP(User Datagram Protocol):用户数据包协议,它和TCP一样位于传输层,和IP协议配合使用,在传输数据时省去包头,但它不能提供数据包的重传,所以适合传输较短的文件。

     

    HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
    HTTP协议的主要特点可概括如下:
    1.支持客户/服务器模式。
    2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。
    由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
    3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
    4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
    5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
    ARP(Address Resolution Protocol)地址解析协议

    它是用于映射计算机的物理地址和临时指定的网络地址。启动时它选择一个协议(网络层)地址,并检查这个地址是否已经有别的计算机使用,如果没有被使用,此结点被使用这个地址,如果此地址已经被别的计算机使用,正在使用此地址的计算机会通告这一信息,只有再选另一个地址了。

    SNMP(Simple Network Management P)网络管理协议

    它是TCP/IP协议中的一部份,它为本地和远端的网络设备管理提供了一个标准化途径,是分布式环境中的集中化管理的重要组成部份。

    BGP4(Border Gateway Protocol Vertion 4)边界网关协议-版本4

    它是用于在自治网络中网关主机(每个主机有自己的路由)之间交换路由信息的协议,它使管理员能够在已知的路由策略上配置路由加权,可以更方便地使用无级内部域名路由(CIDR),它是一种在网络中可以容纳更多地址的机制,它比外部网关协议(EGP)更新。BGP4经常用于网关主机之间,主机中的路由表包括了已知路由的列表,可达的地址和路由加权,这样就可以在路由中选择最好的通路了。BGP在局域网中通信时使用内部BGP(IBGP),因为IBGP不能很好工作。

    DHCP(Dynamic Host Configuration Protocol)动态主机配置协议

    它是在TCP/IP网络上使客户机获得配置信息的协议,它是基于BOOTP协议,并在BOOTP协议的基础上添加了自动分配可用网络地址等功能。这两个协议可以通过一些机制互操作。DHCP协议在安装TCP/IP协议和使用TCP/IP协议进行通迅时,必须配置IP地址、子网掩码、缺省网关三个参数,这三个参数可以手动配置,也可以使用DHCP自动配置。

    FTP(File Transfer Protocol)文件传输协议

    它是一个标准协议,是在计算机和网络之间交换文件的最简单的方法。象传送可显示文件的HTTP和电子邮件的SMTP一样,FTP也是应用TCP/IP协议的应用协议标准。FTP通常用于将网页从创作者上传到服务器上供人使用,而从服务器上下传文件也是一种非常普遍的使用方式。作为用户,您可以用非常简单的DOS界面来使用FTP,也可以使用由第三方提供的图形界面的FTP来更新(删除,重命名,移动和复制)服务器上的文件。现在有许多服务器支持匿名登录,允许用户使用FTP和ANONYMOUS作为用户名进行登录,通常可使用任何口令或只按回车键。

    HDLC(High-Level Data Link Control)高层数据链路协议

    它是一组用于在网络结点间传送数据的协议。在HDLC中,数据被组成一个个的单元(称为帧)通过网络发送,并由接收方确认收到。HDLC协议也管理数据流和数据发送的间隔时间。HDLC是在数据链路层中最广泛最使用的协议之一。现在作为ISO的标准,HDLC是基于IBM的SDLC协议的,SDLC被广泛用于IBM的大型机环境之中。在HDLC中,属于SDLC的被称为通响应模式(NRM)。在通常响应模式中,基站(通常是大型机)发送数据给本地或远程的二级站。不同类型的HDLC被用于使用X.25协议的网络和帧中继网络,这种协议可以在局域网或广域网中使用,无论此网是公共的还是私人的。

    HTTP1.1(Hypertext Transfer Protocol Vertion 1.1)超文本传输协议-版本1.1

    它是用来在Internet上传送超文本的传送协议。它是运行在TCP/IP协议族之上的HTTP应用协议,它可以使浏览器更加高效,使网络传输减少。任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用用户请求。您的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。

    HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议

    它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

    ICMP(Internet Control Message Protocol)Internet控制信息协议

    它是一个在主机和网关之间消息控制和差错报告协议。ICMP使用IP数据报,但消息由TCP/IP软件处理,对于应用程序使用者是不可见的。在被称为Catenet的系统中,IP协议被用作主机到主机的数据报服务。网络连接设备称为网关。这些网关通过网关到网关协议(GGP)相互交换用于控制的信息。通常,赡养或目的主机将和源主机通信,例如,为报告在数据报过程中的错误。为了这个目的才使用了ICMP,它使用IP做于底层支持,好象它是一个高层协议,而实际上它是IP的一部分,必须由其它IP模块实现。ICMP消息在以下几种情况下发送:当数据报不能到达目的地时,当网关的已经失去缓存功能,当网关能够引导主机在更短路由上发送。IP并非设计为设计为绝对可靠,这个协议的目的是为了当网络出现问题的时候返回控制信息,而不是使IP协议变得绝对可靠,并不保证数据报或控制信息能够返回。一些数据报仍将在没有任何报告的情况下丢失。

    IPv6(Internet Protocol Version 6)Internet协议-版本6

    它是Internet协议的最新版本,已作为IP的一部分并被许多主要的操作系统所支持。IPv6也被称为“Ipng”(下一代IP),它对现行的IP(版本4)进行重大的改进。使用IPv4和IPv6的网络主机和中间结点可以处理IP协议中任何一层的包。用户和服务商可以直接安装IPv6而不用对系统进行什么重大的修改。相对于版本4新版本的最大改进在于将IP地址从32位改为128位,这一改进是为了适应网络快速的发展对IP地址的需求,也从根本上改变了IP地址短缺的问题。简化IPv4首部字段被删除或者成为可选字段,减少了一般情况下包的处理开销以及IPv6首部占用的带宽。改进IP 首部选项编码方式的修改导致更加高效的传输,在选项长度方面更少的限制,以及将来引入新的选项时更强的适应性。加入一个新的能力,使得那些发送者要求特殊处理的属于特别的传输流的包能够贴上标签,比如非缺省质量的服务或者实时服务。为支持认证,数据完整性以及(可选的)数据保密的扩展都在IPv6中说明。本文描述IPv6基本首部以及最初定义的IPv6 扩展首部和选项。还将讨论包的大小问题,数据流标签和传输类别的语法,以及IPv6对上层协议的影响。IPv6 地址的格式和语法在其它文章中单独说明。IPv6版的 ICMP 是所有IPv6应用都需要包含的。

    OSPF(Open Shortest Path First)开放最短路优先

    OSPF是用于大型自主网络中替代路由信息协议的协议标准。象RIP一样,OSPF也是由IETF设计用作内部网关协议族中的一个标准。在使用OSPF时网络拓朴结构的变化可以立即在路由器上反映出来。不象RIP,OSPF不是全部当前结点保存的路由表,而是通过最短路优先算法计算得到最短路,这样可以降低网络通信量。如果您熟悉最短路优先算法就会知道,它是一种只关心网络拓朴结构的算法,而不关心其它情况,如优先权的问题,对于这一点,OSPF改变了算法使它根据不同的情况给某些通路以优先权。

    POP3(Post Office Protocol Version 3)邮局协议-版本3

    它是一个关于接收电子邮件的客户/服务器协议。电子邮件由服务器接收并保存,在一定时间之后,由客户电子邮件接收程序检查邮箱并下载邮件。POP3它内置于IE和Netscape浏览器中。另一个替代协议是交互邮件访问协议(IMAP)。使用IMAP您可以将服务器上的邮件视为本地客户机上的邮件。在本地机上删除的邮件还可以从服务器上找到。E-mail 可以被保存在服务器上,并且可以从服务器上找回。

    PPP(Point to Point Protocol)点对点协议

    它是用于串行接口的两台计算机的通信协议,是为通过电话线连接计算机和服务器而彼此通信而制定的协议。网络服务提供商可以提供您点对点连接,这样提供商的服务器就可以响应您的请求,将您的请求接收并发送到网络上,然后将网络上的响应送回。PPP是使用IP协议,有时它被认为是TCP/IP协议族的一员。PPP协议可用于不同介质上包括双绞线,光纤和卫星传输的全双工协议,它使用HDLC进行包的装入。PPP协议既可以处理同步通信也可以处理异步通信,可以允许多个用户共享一个线路,又可发进行SLIP协议所没有的差错控制。

    RIP(Routing Infomation Protocol)路由信息协议

    RIP是最早的路由协议之一,而且现在仍然在广泛使用。它从类别上应该属于内部网关协议(IGP)类,它是距离向量路由式协议,这种协议在计算两个地方的距离时只计算经过的路由器的数目,如果到相同目标有两个不等速或带宽不同的路由器,但是经过的路由器的个数一样,RIP认为两者距离一样,而实际传送数据时,很明显一个快一个慢,这就是RIP协议的不足之处,而OSPF在它的基础上克服了RIP的缺点。

    SMTP(Simple Mail Transfer Protocol)简单邮件传送协议

    它是用来发送电子邮件的TCP/IP协议。它的内容由IETF的RFC 821定义。另外一个和SMTP相同功能的协议是X.400。SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。理解到传送系统(或IPCE)不是一对一的是很重要的。进程可能直接和其它进程通过已知的IPCE通信。邮件是一个应用程序或进程间通信。邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。更特别的是,邮件可以通过不同网络上的主机接力式传送。

    TCP/IP(Transmission Control Protocol/Internet Protocol)传输控制协议/Internet协议

    TCP/IP协议起源于美国国防高级研究计划局。提供可靠数据传输的协议称为传输控制协议TCP,好比货物装箱单,保证数据在传输过程中不会丢失;提供无连接数据报服务的协议称为网络协议IP,好比收发货人的地址和姓名,保证数据到达指定的地点。TCP/IP协议是互联网上广泛使用的一种协议,使用TCP/IP协议的因特网等网络提供的主要服务有:电子邮件、文件传送、远程登录、网络文件系统、电视会议系统和万维网。它是Interent的基础,它提供了在广域网内的路由功能,而且使Internet上的不同主机可以互联。从概念上,它可以映射到四层:网络接口层,这一层负责在线路上传输帧并从线路上接收帧;Internet层,这一层中包括了IP协议,IP协议生成Internet数据报,进行必要的路由算法,IP协议实际上可以分为四部分:ARP,ICMP,IGMP和IP;再上向就是传输层,这一层负责管理计算机间的会话,这一层包括两个协议TCP和UDP,由应用程序的要求不同可以使用不同的协议进行通信;最后一层是应用层,就是我们熟悉的FTP,DNS,TELNET等。熟悉TCP/IP是熟悉Internet的必由之路。

    TELNET Protocol虚拟终端协议

    TELNET协议的目的是提供一个相对通用的,双向的,面向八位字节的通信方法,它主要的目标是允许接口终端设备的标准方法和面向终端的相互作用。是让用户在远程计算机登录,并使用远程计算机上对外开放的所有资源。

    Time Protocol时间协议

    该协议提供了一个独立于站点的,机器可读的日期和时间信息。时间服务返回的是以秒数,是从1900年1月1日午夜到现在的秒数。设计这个协议的一个重要目的在于,网络上的许多主机并没有时间的观念,在分布式的系统上,我们可以想一想,北京的时间和东京的时间如何分呢?主机的时间往往可以人为改变,而且因为机器时钟内的误差而变得不一致,因此需要使用时间服务器通过选举方式得到网络时间,让服务器有一个准确的时间观念。不要小看时间,这对于一些以时间为标准的分布运行的程序简单是太重要了。这个协议可以工作在TCP和UDP协议下。时间是由32位表示的,是自1900年1月1日0时到当前的秒数,我们可以计算一下,这个协议只能表示到2036年就不能用了,但是我们也知道计算机发展速度这么快,到时候可能就会有更好的协议代替这个协议。

    TFTP(Trivial File Transfer Protocol)小文件传输协议

    它是一个网络应用程序,它比FTP简单也比FTP功能少。它在不需要用户权限或目录可见的情况下使用,它使用UDP协议而不是TCP协议。

    UDP(User Datagram Protocol)用户数据报协议

    它是定义用来在互连网络环境中提供包交换的计算机通信的协议,此协议默认认为网路协议(IP)是其下层协议。UDP是TCP的另外一种方法,象TCP一样,UDP使用IP协议来获得数据单元(叫做数据报),不象TCP的是,它不提供包(数据报)的分组和组装服务。而且,它还不提供对包的排序,这意味着,程序程序必须自己确定信息是否完全地正确地到达目的地。如果网络程序要加快处理速度,那使用UPD就比TCP要好。UDP提供两种不由IP层提供的服务,它提供端口号来区别不同用户的请求,而且可以提供奇偶校验。在OSI模式中,UDP和TCP一样处于第四层,传输层。

     

    为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer)。   其中低四层完成数据传送服务,上面三层面向用户。对于每一层,至少制定两项标准:服务定义和协议规范。前者给出了该层所提供的服务的准确定义,后者详细描述了该协议的动作和各种有关规程,以保证服务的提供。

    [2]TCP/IP协议毫无疑问是这三大协议中最重要的一个,作为互联网的基础协议,没有它就根本不可能上网,任何和互联网有关的操作都离不开TCP/IP协议。不过TCP/IP协议也是这三大协议中配置起来最麻烦的一个,单机上网还好,而通过局域网访问互联网的话,就要详细设置IP地址,网关,子网掩码,DNS服务器等参数。   TCP/IP尽管是目前最流行的网络协议,但TCP/IP协议在局域网中的通信效率并不高,使用它在浏览“网上邻居”中的计算机时,经常会出现不能正常浏览的现象。此时安装NetBEUI协议就会解决这个问题。   NetBEUI即NetBios Enhanced User Interface ,或NetBios增强用户接口。它是NetBIOS协议的增强版本,曾被许多操作系统采用,例如Windows for Workgroup、Win 9x系列、Windows NT等。NETBEUI协议在许多情形下很有用,是WINDOWS98之前的操作系统的缺省协议。NetBEUI协议是一种短小精悍、通信效率高的广播型协议,安装后不需要进行设置,特别适合于在“网络邻居”传送数据。所以建议除了TCP/IP协议之外,小型局域网的计算机也可以安上NetBEUI协议。另外还有一点要注意,如果一台只装了TCP/IP协议的WINDOWS98机器要想加入到WINNT域,也必须安装NetBEUI协议。   IPX/SPX协议本来就是Novell开发的专用于NetWare网络中的协议,但是现在也非常常用--大部分可以联机的游戏都支持IPX/SPX协议,比如星际争霸,反恐精英等等。虽然这些游戏通过TCP/IP协议也能联机,但显然还是通过IPX/SPX协议更省事,因为根本不需要任何设置。除此之外,IPX/SPX协议在局域网络中的用途似乎并不是很大,如果确定不在局域网中联机玩游戏,那么这个协议可有可无。


    网络层协议:包括:IP协议、ICMP协议、ARP协议、RARP协议。

    传输层协议:TCP协议、UDP协议。

    应用层协议:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS。

     

    HTTP:80:www服务。

    DHCP:服务器端的端口号是67

    DHCP:客户机端的端口号是68

    POP3:POP3仅仅是接收协议,POP3客户端使用SMTP向服务器发送邮件。POP3所用的端口号是110。

    SMTP: 端口号是25。SMTP真正关心的不是邮件如何被传送,而只关心邮件是否能顺利到达目的地。SMTP具有健壮的邮件处理特性,这种特性允许邮件依据一定标 准自动路由,SMTP具有当邮件地址不存在时立即通知用户的能力,并且具有在一定时间内将不可传输的邮件返回发送方的特点。

    Telnet:端口号是23。Telnet是一种最老的Internet应用,起源于ARPNET。它的名字是“电信网络协议(Telecommunication Network Protocol)”的缩写。

    FTP:FTP使用的端口有20和21。20端口用于数据传输,21端口用于控制信令的传输,控制信息和数据能够同时传输,这是FTP的特殊这处。FTP采用的是TCP<SPAN lang=ZH-CN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 

  • 测试技巧(转载总结)——用户密码和相关性测试

    2011-02-18 16:41:45

    注册和登录模块的测试

    在测试该部分时,给我印象最深的就是:

    1)注册成功,但登陆失败:注册时,密码设置为一些特殊的符号,比如:空格、%等,但登录时,失败。

    后来经开发人反映出现这样的问题,原因是:在登录模块,对密码设置了一些限定。

    2)登录时,没区分大小写,就是说,用小写字母注册的,登录时,用相应的大写字母登录也能成功。

    出现问题的原因:登录时,没用MD5加密进行验证

    2、购物车的测试

    1)测试产品能否放入购物车中

    2)当某种产品有购物数量限制时,超过这一数值,能否也能放入购物车中

    3)购物车中的购物限制是否正确

    3、支付流程测试

    1)购物车中的产品能否正常支付

    2)当支付完成,不等页面跳转,直接关闭浏览器,数据传递是否正确

    3)当支付完成,等待页面跳转,跳转到得页面是否正确

    4、网站某个模块间的数据传递是否正确

    当网站某个模块涉及的数据传递比较多而且比较复杂时,一定要搞清楚数据是怎么传递的,因为这是最容易出现bug的地方。比如:下拉菜单的数据没有传递过来,或传递过来了,但不正确,这时就要静下心来,慢慢滤清思考,耐心去测试。

        最后一点就是,在购买的过程中,也要考虑到并发,比如,当某种产品只剩一件了,这时两个用户或更多同时并发点击该产品,放入购物车中,那么在多个用户同时点击这个只剩一件的产品时,系统是否有相应的提示,或是,该产品能否都放入不同用户的购物车中,我上周测试的过程中,该问题是存在的,等待明天程序的解答和修改。


    2. 相关性检查:

      * 功能相关性:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确,常见的情况是,增加某个数据记录以后,如果该数据记录某个字段内容较长,可能会在查询的时候让数据列表变形。

      * 数据相关性:下来列表默认值检查,下来列表值检查,如果某个列表的数据项依赖于其他模块中的数据,同样需要检查,比如,某个数据如果被禁用了,可能在引用该数据项的列表中不可见。

      3. 检查按钮的功能是否正确:如新建、编辑、删除、关闭、返回、保存、导入,上一页,下一页,页面跳转,重置等功能是否正确。常见的错误会出现在重置按钮上,表现为功能失效。

      4. 字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度。还要检查需求规定的字符串长度是否是正确的,有时候会出现,需求规定的字符串长度太短而无法输入业务数据。

      5. 字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型

      6. 标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键。看系统处理是否正确。常见的错误是系统对空格的处理,可能添加的时候,将空格当作一个字符,而在查询的时候空格被屏蔽,导致无法查询到添加的内容

      7.特殊字符检查:输入特殊符号,如@、#、$、%、!等,看系统处理是否正确。常见的错误是出现在% ‘ \ 这几个特殊字符

      8. 中文字符处理: 在可以输入中、英文的系统输入中文,看会否出现乱码或出错。

      9. 检查信息的完整性: 在查看信息和更新信息时,查看所填写的信息是不是全部更新,更新信息和添加信息是否一致。要注意检查的时候每个字段都应该检查,有时候,会出现部分字段更新了而个别字段没有更新的情况

      10. 信息重复: 在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理。

      11. 检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按“delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理。如果有多页,翻页选,看系统是否都正确删除,并且要注意,删除的时候是否有提示,让用户能够更正错误,不误删除。

      12. 检查添加和修改是否一致: 检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.

      13. 检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错.

      14. 重复提交表单:一条已经成功提交的纪录,返回后再提交,看看系统是否做了处理。对于Web系统来说,可以通过浏览器返回键或者系统提供的返回功能。

      15. 检查多次使用返回键的情况: 在有返回键的地方,返回到原来页面,重复多次,看会否出错。

      16. 搜索检查: 有搜索功能的地方输入系统存在和不存在的内容,看搜索结果是否正确.如果可以输入多个搜索条件,可以同时添加合理和不合理的条件,看系统处理是否正确,搜索的时候同样要注意特殊字符,某些系统会在输入特殊字符的时候,将系统中所有的信息都搜索到。

     

     

  • 测试方法(转载)

    2011-02-16 15:24:07

    可编辑文本框的测试:主要是字符长度、字符类型、文本格式的测试

      字符长度的验证:最大值、最小值、适当值、超长值。

      字符类型的验证:中(简、繁)、英(大小写)、数字(整数、小数、负数)、标点符号(全角、半角)、特殊符号(回车、空格、TAB、脚本语言、NULLnull)、转义字符,及这些字符类型的组合。

      文本格式的验证:比如日期(控件、手动输入)、邮箱、手机号。

      2、文件上传下载的测试:主要是文件格式、文件内容格式、文件信息、文件大小、文件重复上传、文件下载的测试

      文件格式的验证:文本格式、图片格式、音频格式、压缩包等等。

      文件内容格式的验证:系统要求上传的文件的内容是一定格式的(系统给出一定的内容模板)。

      文件信息的验证:文件具体内容(有时文件数据的合理性是要经过校验的)、文件内容包含特殊字符、文件名(参考1中的字符类型验证)、文件路径(直接导入、手动输入)。

      文件大小的验证:0、适当值、超大值。

      文件重复上传的验证:系统是否具备去重处理的能力。

      文件下载的验证:左键(打开时文件内容是否正确显示)、右键。

      3、查询功能的测试:主要是查询条件、查询结果列表、查询处理时间是否能够接受的测试

      查询条件的验证:空格、查询条件前后中加空格、数据库中的值、非数据库中的值(参考1中的字符类型验证)、是否支持模糊查询、组合查询。

      查询结果列表的验证:结果列表表头内容是否正确、结果数据是否正确、结果列表是否具备翻页功能。

      查询处理时间的验证:数据库中存在大数据量数据时,查询时间是否能接受。

    6、数据增、删、改功能的测试

      增加功能的验证:增加后的显示效果(内容是否正确、是直接显示还是需刷新才能显示)、多次增加相同的记录。

      删除功能的验证:删除时的提示信息、删除0/1/多条数据、删除后列表是否更新、列表条数是否更新。

      修改功能的验证:增加后的显示效果(内容是否正确、是直接显示还是需刷新才能显示)、多次增加相同的记录。

    列表的翻页功能的测试:页项数、页面跳转、翻页按钮

      页项数的验证:每页固定显示数据项数是合理的定值。

      页面跳转的验证:正确跳转(输入想要打开的页数)、错误跳转(输入乱字符:01.1、最大值+1、最小值-1)。

    翻页按钮的验证:前翻、后翻。

     

     

     

    记录B 是依赖于A的 在A没有被添加之前是不能成共加上B 的并且B 的时间短必须落在A

    在测试的时候需要注意 :

    1.   直接添加B是不是可以

    2.   添加A 后, 添加B 但是时间段中有一部分时间不是落在A 中 查看B 是不是可以添加上

    3.   添加A B 成功后 删除或是修改A 使B 中的一部分时间不能落在A 中 看能不能修改成功。

    4.   添加A B, 完全修改A为另一条数据的时候  看是不是可以修改成功。

  • 用户名和密码的测试方法:(转载)

    2011-02-16 15:19:10

    别小看了这个用户名密码这么简单的输入框。可测试的内容还是很多的,并且引发的问题也有很多种类。下面就说一说他的测试方法。

    一、用户注册


    只从用户名和密码角度写了几个要考虑的测试点,如果需求中明确规定了安全问题,Email,出生日期,地址,性别等等一系列的格式和字符要求,那就都要写用例测了~

    以等价类划分和边界值法来分析

    1.填写符合要求的数据注册: 用户名字和密码都为最大长度(边界值分析,取上点)

    2.填写符合要求的数据注册 :用户名字和密码都为最小长度(边界值分析,取上点)

    3.填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)

    4.必填项分别为空注册

    5.用户名长度大于要求注册1位(边界值分析,取离点)

    6.用户名长度小于要求注册1位(边界值分析,取离点)

    7.密码长度大于要求注册1位(边界值分析,取离点)

    8.密码长度小于要求注册1位(边界值分析,取离点)

    9.用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~)

    10.密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了)

    11.两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的)

    12.重新注册存在的用户

    13.改变存在的用户的用户名和密码的大小写,来注册。(有的需求是区分大小写,有的不区分)

    14.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示

    备注:边界值的上点、内点和离点大家应该都知道吧,呵呵,这里我就不细说了~~

    二、修改密码

    当然具体情况具体分析哈~不能一概而论~

    实际测试中可能只用到其中几条而已,比如银行卡密码的修改,就不用考虑英文和非法字符,更不用考虑那些TAP之类的快捷键。而有的需要根据需求具体分析了,比如连续出错多少次出现的提示,和一些软件修改密码要求一定时间内有一定的修改次数限制等等。

    1.不输入旧密码,直接改密码

    2.输入错误旧密码

    3.不输入确认新密码

    4.不输入新密码

    5.新密码和确认新密码不一致

    6.新密码中有空格

    7.新密码为空

    8.新密码为符合要求的最多字符

    9.新密码为符合要求的最少字符

    10.新密码为符合要求的非最多和最少字符

    11.新密码为最多字符-1

    12.新密码为最少字符+1

    13.新密码为最多字符+1

    14.新密码为最少字符-1

    15.新密码为非允许字符(如有的密码要求必须是英文和数字组成,那么要试汉字和符号等)

    16.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号

    17.看密码是否区分大小写,新密码中英文小写,确认密码中英文大写

    18.新密码与旧密码一样能否修改成功

    另外一些其他的想法如下:

    1要测试所有规约中约定可以输入的特殊字符,字母,和数字,要求都可以正常输入、显示正常和添加成功

    2关注规约中的各种限制,比如长度,大否支持大小写。

    3考虑各种特殊情况,比如添加同名用户,系统是否正确校验给出提示信息,管理员帐户是否可以删除,因为有些系统管理员拥有最大权限,一旦删除管理员帐户,就不能在前台添加,这给最终用户会带来很多麻烦。比较特殊的是,当用户名中包括了特殊字符,那么对这类用户名的添加同名,修改,删除,系统是否能够正确实现,我就遇到了一个系统,添加同名用户时,如果以前的用户名没有特殊字符,系统可以给出提示信息,如果以前的用户名包含特殊字符,就不校验在插入数据库的时候报错。后来查到原因了,原来是在java中拼SQL语句的时候,因为有"_",所以就调用了一个方法在“_”,前面加了一个转义字符,后来发现不该调用这个方法。所以去掉就好了。所以对待输入框中的特殊字符要多关注。


    4数值上的长度 之类的,包括出错信息是否合理
    5特殊字符:比如。 / ' " \ </html> 这些是否会造成系统崩溃

    6注入式bug:比如密码输入个or 1=1

    7登录后是否会用明文传递参数

    8访问控制(不知道这个算不算):登录后保存里面的链接,关了浏览器直接复制链接看能不能访问。

  • 测试方法大全(转载)

    2011-02-16 15:17:47

    本文转自:http://www.51testing.com/html/95/n-148195.html

      β测试_Beta测试

      β测试,英文是Betatesting。又称Beta测试,用户验收测试(UAT)。

      β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。

      当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。

      α测试_Alpha测试

      α测试,英文是Alpha testing。又称Alpha测试.

      Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由该系统的程序员或测试员完成。

      在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试一般由最终用户或其他人员来完成,不能由程序员或测试员完成。

      可移植性测试

      可移植性测试,英文是Portability testing。又称兼容性测试。

      可移植性测试是指测试软件是否可以被成功移植到指定的硬件或软件平台上。

      用户界面测试-UI测试

      用户界面测试,英文是User interface testing。又称UI测试。

      用户界面,英文是User interface。是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。

      用户界面测试是指测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等等。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。

      用户界面测试用户分析软件用户界面的设计是否合乎用户期望或要求。它常常包括菜单,对话框及对话框上所有按钮,文字,出错提示,帮助信息 (Menu 和Help content)等方面的测试。比如,测试Microsoft Excel中插入符号功能所用的对话框的大小,所有按钮是否对齐,字符串字体大小,出错信息内容和字体大小,工具栏位置/图标等等。

      冒烟测试

      冒烟测试,英文是Smoke testing。

      冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。

      冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。

      随机测试

      随机测试,英文是Ad hoc testing。

      随机测试没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。

      随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例(TestCase)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试 (Regressive testing)一起进行。

      本地化测试

      本地化测试,英文是Localization testing。

      本地化就是将软件版本语言进行更改,比如将英文的windows改成中文的windows就是本地化。本地化测试的对象是软件的本地化版本。本地化测试的目的是测试特定目标区域设置的软件本地化质量。本地化测试的环境是在本地化的操作系统上安装本地化的软件。从测试方法上可以分为基本功能测试,安装/卸载测试,当地区域的软硬件兼容性测试。测试的内容主要包括软件本地化后的界面布局和软件翻译的语言质量,包含软件、文档和联机帮助等部分。

      本地化能力测试

      本地化能力测试,英文是Localizability testing。

      本地化能力测试是指不需要重新设计或修改代码,将程序的用户界面翻译成任何目标语言的能力。为了降低本地化能力测试的成本,提高测试效率,本地化能力侧是通常在软件的伪本地化版本上进行。

      本地化能力测试中发现的典型错误包括:字符的硬编码(即软件中需要本地化的字符写在了代码内部),对需要本地化的字符长度设置了国定值,在软件运行时以控件位置定位,图标和位图中包含了需要本地化的文本,软件的用户界面与文档术语不一致等。

      国际化测试

      国际化测试,英文是International testing。又称国际化支持测试。

      国际化测试的目的是测试软件的国际化支持能力,发现软件的国际化的潜在问题,保证软件在世界不同区域都能正常运行。国际化测试使用每种可能的国际输入类型,针对任何区域性或区域设置检查产品的功能是否正常,软件国际化测试的重点在于执行国际字符串的输入/输出功能。国际化测试数据必须包含东亚语言、德语、复杂脚本字符和英语(可选)的混合字符。

      国际化支持测试是指验证软件程序在不同国家或区域的平台上也能够如预期的那样运行,而且还可以按照原设计尊重和支持使用当地常用的日期,字体,文字表示,特殊格式等等。比如,用英文版的 Windows XP 和 Microsoft Word 能否展示阿拉伯字符串?用阿拉伯版的 Windows XP 和 阿拉伯版的Microsoft Word 能否展示阿拉伯字符串?又比如,日文版的Microsoft Excel对话框是否显示正确翻译的日语?一旦来说执行国际化支持测试的测试人员往往需要基本上了解这些国家或地区的语言要求和期望行为是什么。

      安装测试

      安装测试,英文是Installing testing。

      安装测试是确保软件在正常情况和异常情况下,例如,进行首次安装、升级、完整的或自定义的安装都能进行安装的测试。异常情况包括磁盘空间不足、缺少目录创建权限等场景。核实软件在安装后可立即正常运行。安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。

      白盒测试-结构测试-逻辑驱动测试

      白盒测试,英文是White Box Testing。又称结构测试或者逻辑驱动测试。

      白盒测试是把测试对象看作一个打开的盒子。利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。

      白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

      白盒测试是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

      白盒测试常用工具有:Jtest、VcSmith、Jcontract、C++Test、CodeWizard、logiscope。

      黑盒测试-功能测试-数据驱动测试

      黑盒测试,英文是Black Box Testing。又称功能测试或者数据驱动测试。

      黑盒测试是根据软件的规格对软件进行的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。

      软件测试人员以用户的角度,通过各种输入和观察软件的各种输出结果来发现软件存在的缺陷,而不关心程序具体如何实现的一种软件测试方法。

      黑盒测试常用工具有:AutoRunner、winrunner、loadrunner。

      自动化测试

      自动化测试,英文是Automated Testing。

      使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试和功能测试中用得较多。通过录制测试脚本,然后执行这个测试脚本来实现测试过程的自动化。国内领先的自动化测试服务提供商是泽众软件。自动化测试工具有AutoRunner和TAR等。

      回归测试

      回归测试,英文是Regression testing。

      回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。

      根据修复好了的缺陷再重新进行测试。回归测试的目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。通常确定所需的再测试的范围时是比较困难的,特别当临近产品发布日期时。因为为了修正某缺陷时必需更改源代码,因而就有可能影响这部分源代码所控制的功能。所以在验证修好的缺陷时不仅要服从缺陷原来出现时的步骤重新测试,而且还要测试有可能受影响的所有功能。因此应当鼓励对所有回归测试用例进行自动化测试。

      验收测试

      验收测试,英文是Acceptance testing。

      验收测试是指系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。

      验收测试一般有三种策略:正式验收、非正式验收活Alpha 测试、Beta 测试。

      动态测试

      动态测试,英文是Moment Testing。

      动态测试是指通过运行软件来检验软件的动态行为和运行结果的正确性。

      根据动态测试在软件开发过程中所处的阶段和作用,动态测试可分为如下几个步骤:

      1、单元测试

      2、集成测试

      3、系统测试

      4、验收测试

      5、回归测试

      探索测试

      探索测试,英文是Exploratory Testing。

      探索测试是指通常用于没有产品说明书的测试,这需要把软件当作产品说明书来看待,分步骤逐项探索软件特性,记录软件执行情况,详细描述功能,综合利用静态和动态技术来进行测试。探索测试人员只靠智能、洞察力和经验来对bug的位置进行判断,所以探索测试又被称为自由形式测试。

      单元测试

      单元测试,英文是Unit Testing。

      单元测试是最微小规模的测试;以测试某个功能或代码块。典型地由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。这个工作不容易做好,除非应用系统有一个设计很好的体系结构; 还可能需要开发测试驱动器模块或测试套具。

      集成测试

      集成测试,英文是Integration Testing。

      集成测试是指一个应用系统的各个部件的联合测试,以决定他们能否在一起共同工作并没有冲突。部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。这种类型的测试尤其与客户服务器和分布式系统有关。一般集成测试以前,单元测试需要完成。

      集成测试是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。

      集成测试识别组合单元时出现的问题。通过使用要求在组合单元前测试每个单元,并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别

      系统测试

      系统测试,英文是System Testing。

      系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。

      系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试。

      端到端测试

      端到端测试,英文是End to End Testing。

      端到端测试类似于系统测试,测试级的“宏大”的端点,涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。例如与数据库对话,用网络通讯,或与外部硬件、应用系统或适当的系统对话。端到端架构测试包含所有访问点的功能测试及性能测试。端到端架构测试实质上是一种"灰盒"测试,一种集合了白盒测试和黑盒测试的优点的测试方法。

      健全测试

      健全测试,英文是Sanity testing。

      健全测试是指一个初始化的测试工作,以决定一个新的软件版本测试是否足以执行下一步大的测试努力。例如,如果一个新版软件每5分钟与系统冲突,使系统陷于泥潭,说明该软件不够“健全”,目前不具备进一步测试的条件。

      衰竭测试

      衰竭测试,英文是Failure Testing。

      衰竭测试是指软件或环境的修复或更正后的“再测试”。可能很难确定需要多少遍再次测试。尤其在接近开发周期结束时。自动测试工具对这类测试尤其有用。

      接受测试

      接受测试,英文是Accept Testing。

      接受测试是基于客户或最终用户的规格书的最终测试,或基于用户一段时间的使用后,看软件是否满足客户要求。一般从功能、用户界面、性能、业务关联性进行测试。

      负载测试

      负载测试,英文是Load testing。

      负载测试是测试一个应用在重负荷下的表现。例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。

      负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。

      强迫测试

      强迫测试,英文是Force Testing。

      强迫测试是在交替进行负荷和性能测试时常用的术语。也用于描述象在异乎寻常的重载下的系统功能测试之类的测试,如某个动作或输入大量的重复,大量数据的输入,对一个数据库系统大量的复杂查询等。

      压力测试

      压力测试,英文是Stress Testing。和负载测试差不多。

      压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽等。一般用并发来做压力测试。

      性能测试

      性能测试,英文是Performance Testing。

      性能测试是在交替进行负荷和强迫测试时常用的术语。理想的“性能测试”(和其他类型的测试)应在需求文档或质量保证、测试计划中定义。性能测试一般包括负载测试和压力测试。

      通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。或者执行同样任务时新版本不比旧版本慢。一般还检查系统记忆容量在运行程序时会不会流失(memory leak)。比如,验证程序保存一个巨大的文件新版本不比旧版本慢。

      可用性测试

      可用性测试,英文是Practical Usability Testing。

      可用性测试是对“用户友好性”的测试。显然这是主观的,且将取决于目标最终用户或客户。用户面谈、调查、用户对话的录象和其他一些技术都可使用。程序员和测试员通常都不宜作可用性测试员。

      卸载测试

      卸载测试,英文是Uninstall Testing。

      卸载测试是对软件的全部、部分或升级卸载处理过程的测试。主要是测试软件能否卸载,卸载是否干净,对系统有无更改,在系统中的残留与后来的生成文件如何处理等。还有原来更改的系统值是否修改回去

      恢复测试

      恢复测试,英文是Recovery testing。

      恢复测试是测试一个系统从如下灾难中能否很好地恢复,如遇到系统崩溃、硬件损坏或其他灾难性问题。恢复测试指通过人为的让软件(或者硬件)出现故障来检测系统是否能正确的恢复,通常关注恢复所需的时间以及恢复的程度。

      恢复测试主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。恢复测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。对于自动恢复需验证重新初始化(reinitialization)、检查点(checkpointing mechanisms)、数据恢复(data recovery)和重新启动 (restart)等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。

      安全测试

      安全测试,英文是Security Testing。

      安全测试是测试系统在防止非授权的内部或外部用户的访问或故意破坏等情况时怎么样。这可能需要复杂的测试技术。安全测试检查系统对非法侵入的防范能力。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。例如:

      ①想方设法截取或破译口令;

      ②专门定做软件破坏系统的保护机制;

      ③故意导致系统失败,企图趁恢复之机非法进入;

      ④试图通过浏览非保密数据,推导所需信息,等等。理论上讲,只要有足够的时间和资源,没有不可进入的系统。因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值。此时非法侵入者已无利可图。

      兼容性测试

      兼容测试,英文是Compatibility Testing。

      兼容测试是测试软件在一个特定的硬件/软件/操作系统/网络等环境下的性能如何。向上兼容向下兼容,软件兼容硬件兼容。软件的兼容性有很多需要考虑的地方。

      比较测试

      比较测试,英文是Compare Testing。

      比较测试是指与竞争伙伴的产品的比较测试,如软件的弱点、优点或实力。来取长补短,以增强产品的竞争力。

      可接受性测试

      可接受性测试,英文是Acceptability Testing。

      可接受性测试是在把测试的版本交付测试部门大范围测试以前进行的对最基本功能的简单测试。因为在把测试的版本交付测试部门大范围测试以前应该先验证该版本对于所测试的功能基本上比较稳定。必须满足一些最低要求。比如不会很容易程序就挂起或崩溃。如果一个新版本没通过可测试性的验证,就应该阻拦测试部门花时间在该测试版本上测试。同时还要找到造成该版本不稳定的主要缺陷并督促尽快加以修正

      边界条件测试

      边界条件测试,英文是Boudary Testing。又称边界值测试。

      一种黑盒测试方法,适度等价类分析方法的一种补充,由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。因此针对各种边界情况设计测试用例,可以查出更多的错误。

      边界条件测试是环绕边界值的测试。通常意味着测试软件各功能是否能正确处理最大值,最小值或者所设计软件能够处理的最长的字符串等等。

      强力测试

      强力测试,英文是Mightiness Testing。

      强力测试通常验证软件的性能在各种极端的环境和系统条件下是否还能正常工作。或者说是验证软件的性能在各种极端环境和系统条件下的承受能力。比如,在最低的硬盘驱动器空间或系统记忆容量条件下,验证程序重复执行打开和保存一个巨大的文件1000次后也不会崩溃或死机。

      装配/安装/配置测试

      装配/安装/配置测试是验证软件程序在不同厂家的硬件上,所支持的不同语言的新旧版本平台上,和不同方式安装的软件都能够如预期的那样正确运行。比如,把英文版的 Microsoft Office 2003安装在韩文版 的Windows Me 上,再验证所有功能都正常运行。

      静态测试

      静态测试,英文是Static Testing。

      静态测试指测试不运行的部分,例如测试产品说明书,对此进行检查和审阅.。静态方法是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

      静态测试常用工具有:Logiscope、PRQA;

      隐藏数据测试

      隐藏数据测试在软件验收和确认阶段是十分必要和重要的一部分。程序的质量不仅仅通过用户界面的可视化数据来验证,而且必须包括遍历系统的所有数据。

      假设一个应用程序要求用户两条信息-----用户名和密码来创建帐户。这个用户输入这两条数据后保存。最后,一个确认窗口将通过数据库中找到这条数据来显示用户名和密码给用户。为了验证所有的数据保存是否正确,一个QA测试人员会在这个确认窗口简单的查看下用户名和密码。如果他们成功了?假设数据库记录了第三条信息----创建日期,它可能不会出现在确认窗口,而只在存档中才出现。如果创建日期保留的不正确,而QA测试人员只验证屏幕上的数据,那么这个问题就不可能被发现。创建日期可能就是一个bug,由于一个用户帐户保存了一个错误的日期到数据库中,这个问题也不可能会被引起注意,因为它被用户界面所隐藏。这只是一个简单的例子,但是它却演化出了一点:隐藏数据测试的重要性。


  • Firefox 插件

    2011-02-15 10:18:21

    下面为您介绍在网页设计制作中经常使用到的火狐浏览器插件工具:
    \T1X)}2o*r'zs Cs0
    cc ?%})\ |"R01.Firebug
    ?/N/cB;c"a1e$W0
    '|B#}w7y:Q0Firebug是开发人员们钟爱火狐浏览器的一个重要原因,Firebug是火狐浏览器上一个集成式的强大调试环境,很多调试应用插件都 必须基于Firebug平台,包括下面会介绍到了一些Web测试和调试工具,所以Firebug可以说是每一个Web设计开发人员必备的工具。
    e&\@T2w2}051Testing软件测试网0|0V;T RB.M
    Firebug – Firefox 插件安装
    +K!L|#S ]]0
    ,b W4Tk)KlP:x _i x0按照提示安装到Firefox中之后,在浏览器底部状态栏就可以看到Firebug的图标,点击之后弹出firebug调试窗口,这里面有除了Firebug自身的工具外,其他选择性安装的Firebug平台插件的调试入口,比如Page Speed等。51Testing软件测试网BMm-N{V C/P

    6f3rRnKu02.Page Speed
    -g5t:z;Ld+Fy2D051Testing软件测试网W,~j:UC*`k2Z
    Google于今年4月确认将网页加载速度作为排名因素之后,站长们对页面性能更加重视。其实无论是对SEO而言,还是对用户体验而言,提高页面的加载速度都相当重要。Google也提供了这枚检测页面加载速度的工具。
    i9s5IRF051Testing软件测试网&m8J$P b ]i"w V]
    Page Speed插件是基于firebug平台的火狐插件,它为每一个页面进行加载速度评分,不仅如此,更提供了优化建议,因此,有改进网页加载性能的页面优化人员,这个工具是非常的必须。
    -P^*]%y_RE051Testing软件测试网1pcoro7R Tc&w Q
    Page Speed for firefox– Google官方插件安装51Testing软件测试网_cQPX { {%~
    51Testing软件测试网?d%lUC7q Ek A
    安装以后,Page Speed就会出现在Firebug窗口中,可以为浏览器的当前页面检测加载性能,点击Page Speed界面中的“Analyze Performance”按钮执行分析,Page Speed会为分析的页面进行评分,满分100分,评分当然越高越好,不过优化的目标应该是达到85分以上。51Testing软件测试网B1J2yyus`

    6Rjs&H3H!`03.Web Developer
    )GD%@}4nJ ggmY051Testing软件测试网|}%O]+~5e
    从这个工具名称应该能够大概猜到它的用途,没错,这是一个集众多页面测试功能于一身的强大火狐插件,能够查看CSS错误和Cookies 信息,设置突出显示表格、Heading、图片URL等几乎所有页面元素,这对页面调试非常有用,尤其当页面结构非常复杂的时候,这些工具能够让你快速找 到特定元素的分布。51Testing软件测试网1reDQg8|a2b
    51Testing软件测试网"{U)Ksx,W#g
    小陆平时很喜欢用这个工具来查找页面的实效图片,因为在火狐里,实效的图片不会像IE那些显示小红叉。51Testing软件测试网:ZON$[tb{:E"W:`

    /W]5q"_h@3Cm1[3VC b0Web Developer – Firefox插件安装
    )N{_,|e3x|0
    omu$? J0安装以后作为一个工具栏出现在浏览器中,如下图:
    "@d[;R!~}051Testing软件测试网o3Ej/\]/V^
    4.HTML Validator
    :D$\l[4W,G z N051Testing软件测试网 Z7lj9N Nc
    网页符合W3C标准十分重要,一方面是为了让页面能够跨浏览器兼容,另一方面也是为了让搜索引擎能够顺利的抓取和理解你的页面。所有让页 面通过W3C校验是网页优化工作很重要的一方面,使用HTML Validator能够高效的检测页面的HTML代码有效性,不仅如此,它还能显示出错的代码位置,并给出错误说明和修改建议,是个非常不错的工具。51Testing软件测试网VE3_e [2av.~-s:c9l
    51Testing软件测试网Q ?'AgRmN{-i
    HTML Validator – Firefox插件安装51Testing软件测试网tP4BCMg
    51Testing软件测试网^+hPb#Al b
    安装完成以后,在火狐浏览器右下角会出现一个红色的“叉”或者一个绿色的“勾”,分别表示页面无效和有效。如果在你的页面显示的是绿勾,那恭喜你,你的代码非常规范,如果有错也不用着急,双击红叉标志能够显示错误信息,根据提示逐个修改就行。
    aC%@D$H8B U(iD I^051Testing软件测试网;Jd As0S9D2gC|
    另外值得注意的是,HTML代码的有效性还是要以W3C官方的校验为准,小陆在使用此工具过程中发现它的校验规则跟W3C标准有些非常细微的差别,不过大部分时候还是一致,如果不放心,请使用W3C Markup Validation Service确认验证。
    `i(F c+h5J051Testing软件测试网4\J{H0bkDE
    5.Simple Links Counter51Testing软件测试网FB.D)v*r%@ lG

    7cH~%^Qh0在网站维护的时候,链接的有效性检测是一个让人头疼的工作,页面中繁多的链接着实让维护难度倍增,可能一次不严谨的批量查找替换让很多链 接出错,这个错误是老板和用户都无法容忍的,所有对于这个问题,尤其要倍加小心。SLC(Simple Links Counter)能够自动检测页面中的链接是否有效,你能够会说Dreamweaver里也有链接检查,没错,DW自带了链接检查功能,不过DW的检测仅 限于站内链接,对站外链接便无能为力。
    7T\\ R_%H8D:OC0
    #LYk$`^LFGo0除了检测链接有效性,SLC还能显示页面分别有多少站外链接,多少站内链接,以及具体的链接URL地址,对网站不良外链检查也是很方便的。51Testing软件测试网(Jc[r6m3M!S

    L vZ,O(ht QVC^4D0Simple Links Counter – Firefox插件安装51Testing软件测试网.zu7A$lJ
    51Testing软件测试网~-W{i e7s
    6.X-Ray51Testing软件测试网E C!NK l\

    n;i7D{P|7y0如果能在浏览器里看到页面内容是被那一些HTML标签所包含,是不是很直观呢,X-Ray就是这样一款工具。普通的一个网页在前端设计师 们眼中,不仅是单纯的文字图片,而是各种网页标签组成的结构图,但这些画面纯粹存在于设计师们的大脑中,X-Ray提供了一个让让它视觉化的方法,尤其是 在浏览别人的网站时尤其有用。51Testing软件测试网k.y%V$}|#v:qb.Xa
    51Testing软件测试网 _sD*|%YEE6uTg
    X-Ray – Firefox插件安装51Testing软件测试网+S.hu3X8XS2m

    QKT,xV9]U0安装以后,浏览器邮件菜单就多了一个“X-Ray”选项。这个工具的缺点是会让页面变得很乱,不过只要研究的页面对象不是太多,还是能够应付得过来。51Testing软件测试网K?1zO:L"kc

    @V7ob7k5eX?07.YSlow51Testing软件测试网VW%n:o%s^:g8M

    %z8p1d*Vm7Fa5L7IA0有一个比Google Page Speed更强大网页性能优化工具,那就是YSlow,它是由Yahoo提供的页面性能评测和优化工具,YSlow也有页面性能评分,有趣的 是,YSlow评分接近的两个页面,Page Speed评分却相去甚远,在实际的页面优化时,YSlow的评分并不作为重要参考,因为YSlow提供了其他更多有用的信息。它能够统计一个网页中包含 的所有元素,包括图片文件、CSS文件、JS文件等,而且显示了页面的HTTP请求数,小陆认为这是页面性能优化最重要的指标之一,所以根据YSlow提 供的信息进行针对性的优化,能够产生非常明显的效果。
    #OG'l)hmN7a051Testing软件测试网$Cf6Fc:^]Hq'S;L
    YSlow – Firefox插件安装51Testing软件测试网nC V,~![{4C7z

    n r!z$T"Kn8]w7P0YSlow同样是一个Firebug平台的插件,需要在Firebug里运行。
    ]Ads-R["h0
    $c8NtE0Lb aqXz"J;}08.Colorzilla51Testing软件测试网 dze(uC~p

    -x}qG}v*K%I0回忆一下我们是如何给网页配色的?首先打开图形软件(比如PS或者Fireworks等),导入页面效果图,使用软件中的拾色器取得图片 上某个位置的颜色,然后将颜色的RGB或者十六进制值复制到Dreamweaver中,如果没有效果图的时候,我们还要先截图,额,这样实在太浪费时间。51Testing软件测试网D w9|!h,a&F

    7D\h*F8nw0除了一些常用的颜色之外,很少有人能够在看到颜色时立刻准确的说得出它的颜色值,其实有一款火狐插件能够帮你“说出”颜色 值:Colorzilla能够取得浏览器中任何一点的颜色值,并且表示为RGB和十六进制值,可以非常方便的复制使用,在制作和修改页面时候大大提高工作 效率。51Testing软件测试网O)Zs'w9J*b!S
    51Testing软件测试网 g"xE;y"U6v{
    Colorzilla – Firefox插件安装51Testing软件测试网1X?@+R3h;iF
    51Testing软件测试网u\#~2zuA
    9.MeasureIt51Testing软件测试网!o6c!N@;k'^4h,\$K

    wS5a#oy"J0除了取色以外,精确度量页面元素尺寸也是非常重要的操作,尤其是对像小陆这样页面设计“像素派”,并且很多时候在页面调试的时候,也需要 知道某些元素的尺寸以确定是否符合预留的空间。MeasureIt是一个很方便的页面测量工具,只需要拖动鼠标就能完成度量,是不是很直观?
    /N$[5I~&Z mK(c4r0
    `)P N%_1xQ$L0MeasureIt – Firefox插件安装"
  • Web 测试技巧

    2011-01-21 08:42:06

    3、添加、修改功能

    1)是否支持tab

    2)是否支持enter

    3)不符合要求的地方是否有错误提示

    4)保存后,是否也插入到数据库中?

    5)字段唯一的,是否可以重复添加

    6)对编辑页列表中的每个编辑项进行修改,点击保存,是否保存成功?

    7)对于必填项,修改为空、空格或其他特殊符号,是否可以编辑成功

    8)在输入框中,直接回车

    9)是否能够连续添加

    10)在编辑的时候,要注意编辑项的长度限制,有时,添加时有长度限制,但编辑时却没有(添加和修改规则是否一致)

    11)添加时,字段是唯一的,不允许重复,但有时,编辑时,却可以修改为相同字段(相同字段包括是否区分大小写以及在输入内容的前后输入空格)

    12)添加含有特殊符号或空格的内容

    13)对于有图片上传功能的编辑框,对于没有上传的图片,查看编辑页面时,是否显示默认图片,如果上传了图片,是否显示为上传图片?

     

    4、删除功能

    1)输入正确数据前加空格,看是否能正确删除?

    2)是否支持enter

    3)是否能连续删除多个产品?当只有一条数据时,能否成功删除?

     

     

    4)删除一条数据后,能否再添加相同的数据?

    5)当提供能一次删除多条信息的功能时,注意,删除的数据是否正确?

    6)不选择任何信息,直接点击删除按钮,看有什么错误提示?

    7)删除某条信息时,应该有错误提示信息

     

    5、注册、登录模块

    1)注册成功,但登录失败:注册时,密码设置为一些特殊符号,但登录时,失败

    2)注册时,连续点击提交按钮

    3)注册成功后,页面应该以登录状态跳转到首页

    3)登录时,没区分大小写,注册时,是小写字母,但登录时,用大写字母也能登录进去

    4)登录时,当页面刷新或重新输入新数据时,验证码是否也随之更新

    5)对密码的修改,当把密码修改为很长,或含有特殊符号时,能够修改成功,但却不能成功登录。

     

    6、上传图片测试

     1)文件类型正确,文件大小合适

    2)文件类型正确,文件大小不合适

    3)文件类型错误,文件大小合适

    4)文件类型和大小都合适,上传一个正在使用中的图片

    5)文件类型和大小合适,手动输入一个存在的图片地址来上传

    6)文件类型和大小合适,手动输入一个不存在的图片地址上传

    7)文件类型和大小都合适,手动输入图片名称来上传

     

    7、返回键检查

    1)一条已经成功提交的记录,返回后再提交,看系统是否做了处理

    2)检查多次使用返回键的情况,在有返回键的地方,返回到原来页面重复多次,看是否会出错

    8、回车键检查

    在输入结束后,直接按回车键,看系统处理如何,是否会报错

    9、刷新键检查

    web系统中,使用浏览器的刷新键,看系统处理如何,是否会报错

    10、直接URL链接检查

    web系统中,直接输入各功能页面的URL地址,看系统如何处理

    11、其他

    1)在测试时,有与网络有关的步骤必须考虑到断网的情况

    2)每个页面都有相应的页面title

    3)在测试的时候要尽量考虑在页面出现滚动条时(滚动条上下滚动下),页面显示是否正常

    4URL不区分大小写

     

    12、测试中,并发情况的考虑

    总结了以下两种情况:

    1)某个字段是唯一的,当多个用户并发点击产生该字段时,检查系统是怎么处理的

    2)对于电子商务网站,当两个或多个用户并发购买量总和大于产品库存量时,能否购买成功

    二、界面和易用性测试

    1、界面测试,主要测试网站的界面是否和设计一致,是否有错别字,页面布局是否合理,格式是否正确,是否有相应的错误提示信息等。

    2、易用性测试,主要是考察所开发出的功能是否人性化,是否易用,是否符合大多数用户的使用习惯等。

    3、对TabEnter键的测试。

    三、兼容性测试

    兼容性测试不只是指界面在不同操作系统或浏览器下的兼容,有些功能方面的测试,也要考虑到兼容性,比如涉及到ajax jqueryjavascript等技术的,都要考虑到不同浏览器下的兼容性问题。

    四、链接测试

    主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。

    五、业务流程测试

    业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。

    六、安全性测试

    1SQL注入

    2XSS 跨网站脚本攻击:程序或数据库没有对一些特殊字符进行过滤或处理,导致用户

    所输入的一些破坏性的脚本语句能够直接写进数据库中,浏览器会直接执行这些脚本语句,破坏网站的正常显示,或网站用户的信息被盗,构造脚本语句时,要保证脚本的完整性。

    document.write("abc")

    <script>alter("abc")</script>

    3URL地址后面随便输入一些符号

    (4) 验证码更新问题

     

    以上就是对Web测试的一个总结,相信一定还存在某些的遗漏,欢迎大家指正、补充。

     

     

    -------------------

     

    看了别人的东西后自己的终结:

     

    1. 在购物网站中如果就剩一个商品了 然后多个人同时去点击购买的时候会怎么处理。

     

    2. 搜索功能

    1)比较长的名称是否能查到?

    2)空格 或空

    3)名称中含有特殊字符,如:' $ % & *以及空格等

    4)关键词前面或后面有空格

    5)如果支持模糊查询,搜索名称中任意一个字符是否能搜索到

    6)输入系统中不存在与之匹配的条件

    7)两个查询条件是否为21,来回选择是否出现页面错误

    8)输入脚本语言,如:<script>alter(abc)</script>

     

    3. 添加、修改功能

    1)是否支持tab

     

    4. 安全测试:

     

    在输入框中输入 >'><script>alert(“XSS”)</script>后,竟然能执行,记录下来.......

     

     

    ============

     

     

    以下总结中,输入一些特殊符号进行查询,是我没有想到的:

    查询输入

      (1)分别对单条件进行精确查询

      (2)输入长度的检验,输入允许的最长值进行查询,是否支持

      (3)两个查询条件是否为2选1,来回选择是否出现页面错误

      (4)输入字符

      (5)输入特殊字符

      (6)输入数字

      (7)输入汉字

      (8)输入关系表达式 与、或、异或、非、等于

      (9)输入空格

      (10)条件中含有空格

      (11)输入超长字符

      (12)输入全角字符

      (13)输入单引号

      (14)输入单引号引起来的数据

      (15)输入双引号

      (16)输入双引号引起来的数据

      (17)如果支持模糊查询,输入部分查询条件

      (18)输入系统中不存在与之匹配的条件

      查询结果检查

      (1)查询结果按什么顺利排序

      (2)查询结果是否根据字段显示排序功能

      (3)查询结果是否有分页,如果有,每页最多包含多少记录

      (4)查询结果是否匹配

      (5)查询结果是否与数据库一致

      (6)查询结果是精确查询还是模糊查询

      UI验证

      (1)文字显示是否正确

      (2)页面是否有错别字

      (3)输入框大小、文字大小是否合适

      (4)页面是否美观

      (5)查询结果字段显示是否与需求一致

      性能方面

      (1)查询处理时间是否能接受

      (2)数据库中存在大数据量数据时,查询时间是否能接受

      (3)当多个用户同时查询时,输入相同或不同的查询条件系统响应是否及时

    以下是我自己总结的:

    对于查询功能,同样可以从以下几个方面来进行用例的设计:

    1、功能方面考虑:应用边界值和等价类划分法进行用例的设计

    边界值:输入最大长度的文本,能否搜出来?输入空格或空,能否搜索出来?

    等价类:要考虑到一些特殊符号的输入查询。

    2、易用性方面

    3、界面方面

    4、安全角度:比如输入一些脚本语言,看是否执行,主要是防XSS攻击问题

    5、性能角度:查询效率、并发、响应时间问题的考虑

     

    ==========================

     

    网页安全缺陷

      现在网站开发已经注意到:登陆网站进入其内部网页后,直接拷贝网址,然后粘贴到另一IE窗口输入,可以绕过登陆直接访问。也许商业网站很关注这个问题,但是很多行业软件却很容易忽略。

      网页安全缺陷还可能存在于IE弹出的子窗口。有些设计不严格的软件,在主页面关闭的时候子页面还可以运行,这是一个明显的漏洞,而且还大大增加了错误发生的几率。
    ================================

     

    判断顺序/逻辑缺陷

      对界面进行多个输入判断的时候,非常容易出现这种问题。例如判断年月顺序,判断长度,判断非空等。假如操作员仅仅满足单个条件,保存不能成功;而按界面从上之下顺序一一满足条件之后,保存是没有问题的。但是,改变一下输入的次序,校验失效。例如,一一满足条件之后,不保存,倒过来将上面的输入改成非法输入,然后保存,结果居然也能成功,这是因为原先的判断由于发生过,或者根据语句顺序只检查最后一个判断,所以没有报错。这种错误尤其在Java scrīpt脚本的页面中要注意。能够保存不能保证数据正确,有可能引起系统崩溃或者后续数据错误。所以,在测试的时候,不要按照正常的顺序输入,而是要打乱步骤,看看代码是否强健,是否在判断逻辑上没有错误。良好的代码应该经得起折腾,至少保存时会再此全部进行判断,而不只是简简单单走到判断的最后一行。

     

    ==============

     

    调试语句和冗余信息

      维护项目和升级改造的推广系统最容易潜伏这类缺陷。典型表现在没有删除或者屏蔽调试语句。弹出一个界面不友好的提示信息,会使不明真相的用户产生误以为系统发生了严重故障,从而引起对软件的不信任感。页面中某个角落存在当前客户不需要的冗余按钮和功能也是一种缺陷。多余的功能会使用户以为是额外附加部分而去使用,其结果可想而知;而多余的按钮会误导好奇心强的用户操作,产生不必要的错误。

      同样值得关注的还有参数设置,由于没有实际数据,开发人员在调试或者单元测试的时候,习惯性的进行自我设定而忘了删除,软件测试人员可能会忽略掉了这部分测试,也可能导致在客户现场发生错误而影响系统发布和验收。

    ===========================================================

    不可重现的故障

      新参加软件测试的人员或者新来的开发人员总是要问,不可重现的缺陷是否需要记录,有必要吗?回答是肯定的。测试必须如实的记录发生的问题,也许不能重现,或者使非软件系统本身问题,但是,可能这些偶然性背后是有规律的,不记录这些,就不可能发现这些规律。

    ===============================================================
    多节点的逆向流转缺陷

      当前软件不少喜欢使用工作流来驱动。工作流的问题,就是可能出现多个流向分支。测试容易忽略的部分,就是工作流多节点的逆向流转。例如,通过不通过涉及两个分支,但是流程逆转的时候,有可能不是回到上一节点而是平级的另一个节点去了。软件测试要格外注意这类用例的设计。另外,有些时候默认分支在向前的时候是有默认值的,例如默认通过,那么保存的时候要提示用户是否通过,否则可能由于操作疲劳而走错了节点,引起回退。

    ===============================================================

    输入框缺陷

      试过往输入框粘贴数据而不是直接输入吗?可能这里会出现问题。按Ctrl+V的时候,输入框会根据长度大小自动截断输入长度。但是用鼠标,截断可能会失效。有一次测试人员就是用这种方法把一篇Word文档输入进去了,保存的时候,数据库崩溃。有些网站登陆的口令****可以拷贝下来的,只要放在剪贴板里面马上明文显示。(在以后的测试中需要注意的)

    ================================================================

     





     

  • Web 安全测试: SQL注入——学习

    2011-01-20 10:07:12

    http://wenku.baidu.com/view/a7141087bceb19e8b8f6bac6.html
    http://sec.chinabyte.com/230/8863730_2.shtml
    http://www.ltesting.net/html/89/92689-166810.html

    后来找了很多有关这方面的东西,于是概括一下,主要就是测试下面那些内容了(一些文绉绉的理论就不讲啦,我只是总结测试动作):

    一、没有进行xss过滤的情况:

    a、url中的所有参数值用  '"></script><script>alert("hello,my girl!")</script> 代替测试:

    现象:跳出“hello,my girl!”提示框;

    b、text框输入 '"></script><script>alert("hello,my girl!")</script>,点击提交:

    现象:没有正常写入数据库;或查看阅览页面或者从数据库显示时,没有被转义;

    c、副文本编辑器输入<img nerror = "alert(123)" src=http://xxx.com>;

    现象:没有正常写入数据库;查看阅览页面或从数据库显示时,出现js错误或者排版出现问题;

    d、在数据库字段中写入'"></script><script>alert("hello,my girl!")</script>,查看页面显示:

    现象:跳出alert;或者页面出现js问题等;查看源代码时,没有进行转义;

    注意点:

    1、很多时候,html代码的<title >和<meta  >中的参数会显示数据库的产品名呀,或者其他有可能显示乱码的参数,所以这种地方也需要注意,以'"/></script><script>alert("hello,my girl!")</script>为例,就会跳出alert值,或者显示</script><script>alert("hello,my girl!")</script>不应该显示的值,因为被",或者/>拦截了。

    2、有些html链接,如果url是×××.产品名.html的时候,如果产品名或者其他参数有可能会是乱码的时候,它会把前面的一些单引号或者双引号先优先使用了,以'"/></script><script>alert("hello,my girl!")</script>为例,url = "×××.'"/></script><script>alert("hello,my girl!")</script>",这样的情况的话,页面就会显示/></script><script>alert("hello,my girl!")</script>"这样的不应该显示的值。

    3、如果你的网站有搜索框,那就用包含这样的值的产品名进行搜索,有可能搜索不出来,有可能是页面跳出alert值,或者页面出现了不该出现的代码行等。

    4、主要点就是输入框,显示,链接,url输入,搜索等。

    二、关于crsf:

    1、搜索在所有我数据提交的地方,是否都加了token值;

    2、修改数据提交出的crsf,再提交,是否能正常提交,是否提示数据超时;

    3、每个不同的用户登录后,token值是否都是新值。

    注意点:

    a、虽然加token貌似看起来不难,看到有什么提交按钮就加上token就好了,所以很多时候开发会忘记软更新的时候加上token。比如说,删除这个动作是每条数据产生的时候,跟在数据后面的url链接。我在测试这个的时候,对应的开发就忘记了所有软更新的token添加。所以这个地方需要特别注意;

    b、还有一点是,每个用户登录后的token是不一致的。比如说a用户这一次登录后token值是1111,b用户这一次登录后2222.但登录后,不管什么操作,token值就是一致了。意思是比如a用户产生的token值是1111,那这个值将伴随他直到他下一次重新登录。

    这次我测试的部分只有这两个部分,关于sql注入等,还没有涉及,下次有机会整理。

    另一个就是在URL最后随意输入一些字符或数字,结果,新闻模块那出现了问题,暴露了网站的一些信息,又一个bug,高兴下。。。。。。。

     

        下面把今天看到的有关sql注入方面的知识整理如下:

     

        SQL 注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字符串传递到 SQL Server 的实例以进行分析和执行。任何构成 SQL 语句的过程都应进行注入漏洞检查,因为 SQL Server 将执行其接收到的所有语法有效的查询。一个有经验的、坚定的攻击者甚至可以操作参数化数据。

     

        SQL 注入的主要形式包括直接将代码插入到与 SQL 命令串联在一起并使其得以执行的用户输入变量。一种间接的攻击会将恶意代码注入要在表中存储或作为元数据存储的字符串。在存储的字符串随后串连到一个动态 SQL 命令中时,将执行该恶意代码。

        注入过程的工作方式是提前终止文本字符串,然后追加一个新的命令。由于插入的命令可能在执行前追加其他字符串,因此攻击者将用注释标记“--”来终止注入的字符串。执行时,此后的文本将被忽略。

     

        以下脚本显示了一个简单的 SQL 注入。此脚本通过串联硬编码字符串和用户输入的字符串而生成一个 SQL 查询:

      var Shipcity;

        ShipCity = Request.form. ("ShipCity");

        var sql = "select * from OrdersTable where ShipCity = '" + ShipCity + "'";

     

    用户将被提示输入一个市县名称。如果用户输入 Redmond,则查询将由与下面内容相似的脚本组成: 

     

        SELECT * FROM OrdersTable WHERE ShipCity = 'Redmond'

    但是,假定用户输入以下内容:

     

        Redmond'; drop table OrdersTable--

     

    此时,脚本将组成以下查询:

     

        SELECT * FROM OrdersTable WHERE ShipCity = 'Redmond';drop table OrdersTable--'

     

       分号 (;) 表示一个查询的结束和另一个查询的开始。双连字符 (--) 指示当前行余下的部分是一个注释,应该忽略。如果修改后的代码语法正确,则服务器将执行该代码。SQL Server 处理该语句时,SQL Server 将首先选择 OrdersTable 中的所有记录(其中 ShipCity Redmond)。然后,SQL Server 将删除 OrdersTable

     

         只要注入的 SQL 代码语法正确,便无法采用编程方式来检测篡改。因此,必须验证所有用户输入,并仔细检查在您所用的服务器中执行构造 SQL 命令的代码。本主题中的以下各部分说明了编写代码的最佳做法。

     

         验证所有输入

        

        始终通过测试类型、长度、格式和范围来验证用户输入。实现对恶意输入的预防时,请注意应用程序的体系结构和部署方案。请注意,设计为在安全环境中运行的程序可能会被复制到不安全的环境中。以下建议应被视为最佳做法:

     

        如果一个用户在需要邮政编码的位置无意中或恶意地输入了一个 10 MB MPEG 文件,应用程序会做出什么反应?

     

        如果在文本字段中嵌入了一个 DROP TABLE 语句,应用程序会做出什么反应?

        测试输入的大小和数据类型,强制执行适当的限制。这有助于防止有意造成的缓冲区溢出。

        

    输入字符

    Transact-SQL 中的含义

    ;

    查询分隔符。

    '

    字符数据字符串分隔符。

    --

    注释分隔符。

    /* ... */

    注释分隔符。服务器不对 /* */ 之间的注释进行处理。

    xp_

    用于目录扩展存储过程的名称的开头,如 xp_cmdshell

     

    举例说明对数据库防SQL注入


    SQL注入是防止数据库攻击的一个有效策略。攻击者将注入一个SQL语句到另外一个语句中,这个通常会损坏你的数据库。有数据库接口的Web站点通常在SQL注入的时候容易受到攻击,因为它们是基于动态的SQL;下面是一个简单的例子:
    在一个ASP页面中会请求用户输入名字和密码,然后将下面的字符串发送到数据库中:

    SELECT FROM users WHERE username =
    ’whatever’ AND password = ’mypassword’

    这看起来很安全,实际上不是,一个用户可能会这样输入他的名字:

    ’ OR 1>0 --

    当把这个输入到SQL语句中的时候,结果可能会象这样:

    SELECT FROM users WHERE username
    = ’’ OR 1>0 -- AND password = ’’

    这个注入语言将通过语句暴露密码。这将导致所有的用户名都会在用户列表中,所以,任何用户都可以进入到你的系统中。

    最简单阻止注入分类是分析SQL串并移动语句之前的任何“--”的发生。

    同时,你要小心注入的时候含有分号,因为分号是给SQL语句分界。如果一个用户的名字是下面这个:

    ’ OR 1>0 ; DELETE Customers ; --
     
     
     
    WEB攻击

    Windows SQL injection (site contain /admin/login.asp or just login.asp page)

    Instead password use one of this string

    ' or 1=1--

    " or 1=1--

    or 1=1--

    ' or 'a'='a

    " or "a"="a

    ') or ('a'='a

    ") or ("a"="a


    如果一个用户怀有恶意,那么他可以使用多种方法看穿你的系统,但是,最简单的方法就是避免动态的SQL,用存储过程来代替。使用SQL来遍历参数,注入上面所提到的将会产生进程错误,并且存储进程将不会被执行。

  • SQL 语句 基础:学习

    2011-01-20 09:11:34

    创建新表
      create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
    删除新表
      drop table tabname
    增加一个列
      Alter table tabname add column col type
    几个简单的基本的sql语句
      选择:select * from table1 where 范围   
    插入:insert into table1(field1,field2) values(value1,value2)  
     删除:delete from table1 where 范围  
     更新:update table1 set field1=value1 where 范围
     查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)---like的语法很精妙,查资料!
     排序:select * from table1 order by field1,field2 [desc]  
     总数:select count(*) as totalcount from table1  
     求和:select sum(field1) as sumvalue from table1   
         平均:select avg(field1) as avgvalue from table1  
     最大:select max(field1) as maxvalue from table1  
     最小:select min(field1) as minvalue from table1[separator]

    几个高级查询运算词
      A: UNION 运算符  
     UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。   
    B: EXCEPT 运算符   EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。   C: INTERSECT 运算符   INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。   注:使用运算词的几个查询结果行必须是一致的。
    使用外连接
      A、left outer join:   左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。   SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c  
         B:right outer join:   右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。   C:full outer join:   全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

    子查询
      (表名1:a 表名2:b)   select a,b,c from a where a IN (select d from b 或者: select a,b,c from a where a IN (1,2,3)
    外连接查询
      (表名1:a 表名2:b)   select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
    between的用法
      between限制查询数据范围时包括了边界值,not between不包括   select * from table1 where time between time1 and time2   select a,b,c, from table1 where a not between 数值1 and 数值2
    in 的使用方法
      select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

    Insert: 请注意所有的整形十进制数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别。为了增加可读性而在数字间插入逗号将会引起错误。记住,在SQL中逗号是元素的分隔符。

      同样要注意输入文字值时要使用单引号。双引号用来封装限界标识符。

      对于日期类型,我们必须使用SQL标准日期格式(yyyy-mm-dd),但是在系统中可以进行定义,以接受其他的格式。当然,2000年临近,请你最好还是使用四位来表示年份。

    INSERT INTO EMPLOYEES VALUES

       ('Jones','Indiana','1992-02-01',

       'Chicago',NULL,NULL);

    我们不知道Jones先生的工薪级别和年薪,所以我们输入NULL(不要引号)。NULL是SQL中的一种特殊情况,我们以后将进行详细的讨论。现在我们只需认为NULL表示一种未知的值。

    INSERT INTO EMPLOYEES(

       FIRST_NAME, LAST_NAME,

       HIRE_DATE, BRANCH_OFFICE)

      VALUE(

       'Indiana','Jones',

       '1992-02-01','Indianapolis');

    这样,我们先在表名之后列出一系列列名。未列出的列中将自动填入缺省值,如果没有设置缺省值则填入NULL。请注意我们改变了列的顺序,而值的顺序要对应新的列的顺序。如果该语句中省略了FIRST_NAME和LAST_NAME项(这两项规定不能为空),SQL操作将失败。

    SELECT语句

    现在已经消除了重复的行,但结果并不是按照顺序排列的。如果你希望以字母表顺序将结果列出又该怎么做呢?只要使用ORDER BY子句就可以按照升序或降序来排列结果:

      SELECT DISTINCT BRANCH_OFFICE

      FROM EMPLOYEES

      ORDER BY BRANCH_OFFICE ASC;

    将一个很长的表中的所有列名写出来是一件相当麻烦的事,所以SQL允许在选择表中所有的列时使用*号

    逻辑连接符:为了进一步定义一个WHERE子句,用户可以使用逻辑连接符AND,OR和NOT
    关键字NOT后面跟着用圆括号括起来的比较表达式。其结果是对结果取否定:WHERE NOT(BRANCH_OFFICE = 'Boston');
    断言可以与其他的断言嵌套使用。为了保证它们以正确的顺序进行求值,可以用括号将它们括起来:

    首先,在断言中进行NULL判断时需要特殊的语法。例如,如果用户需要显示所有年薪未知的职员的全部信息,用户可以使用如下SELECT语句:

      SELECT * FROM EMPLOYEES

      WHERE SALARY IS NULL;

      相反,如果用户需要所有已知年薪数据的职员的信息,你可以使用以下语句:

      SELECT * FROM EMPLOYEES

      WHERE SALARY IS NOT NULL;

      请注意我们在列名之后使用了关键字IS NULL或IS NOT NULL,而不是标准的比较形式:COLUMN = NULL、COLUMN <> NULL或是逻辑操作符NOT(NULL)。

    从而需要使用特殊的操作符IS NULL和IS NOT NULL。

    UPDATE语句

      UPDATE语句允许用户在已知的表中对现有的行进行修改。

      例如,我们刚刚发现Indiana Jones的等级为16,工资为$40,000.00,我们可以通过下面的SQL语句对数据库进行更新(并清除那些烦人的NULL)。

      UPDATE EMPLOYEES

      SET GRADE = 16, SALARY = 40000

      WHERE FIRST_NAME = 'Indiana'

       AND LAST_NAME = 'Jones';

      上面的例子说明了一个单行更新,但是UPDATE语句可以对多行进行操作。满足WHERE条件的所有行都将被更新。如果,你想让Boston办事处中的所有职员搬到New York,你可以使用如下语句:

      UPDATE EMPLOYEES

      SET BRANCH_OFFICE = 'New York'

      WHERE BRANCH_OFFICE = 'Boston';

      如果忽略WHERE子句,表中所有行中的部门值都将被更新为'New York'。

      UPDATE语句的语法流图如下面所示:

      UPDATE table

      SET column = value [{, column = value}]

      [ WHERE predicate [ { logical-connector predicate}]];

      DELETE语句

      DELETE语句用来删除已知表中的行。如同UPDATE语句中一样,所有满足WHERE子句中条件的行都将被删除。由于SQL中没有UNDO语句或是“你确认删除吗?”之类的警告,在执行这条语句时千万要小心。如果决定取消Los Angeles办事处并解雇办事处的所有职员,这一卑鄙的工作可以由以下这条语句来实现:

      DELETE FROM EMPLOYEES

      WHERE BRANCH_OFFICE = 'Los Angeles';

      如同UPDATE语句中一样,省略WHERE子句将使得操作施加到表中所有的行。

      DELETE语句的语法流图如下面所示:

      DELETE FROM table

      [WHERE predicate [ { logical-connector predicate} ] ];

     

     


     

  • QTP Index

    2011-01-19 10:36:43

    在需要唯一识别一个对象时,index属性有时候可能非常有用。index属性是对象在源代码中出现的顺序,第1次出现时,index值为0

    Index属性是object-specific的。因此,当你用index属性值“3来描述一个WebEdit对象时,QTP会在被测程序的当前页面中查找第4WebEdit对象。

    如果你使用index属性值3来描述一个WebElement对象时,QTP会在被测程序的当前页面中查找第4Web对象。

    例如,当前页面中存在下面的对象:

    • 一个名为QppleImage对象
    • 一个名为UserNameImage对象
    • 一个名为UserNameWebEdit对象
    • 一个名为PasswordImage对象
    • 一个名为PasswordWebEdit对象

    下面的语句中指的是列表中的第3个对象,因为它要求指向的是第1个名为UserNameWebEdit对象。

    WebEdit("Name:=UserName", "Index:=0")

    下面的语句中指的是列表中的第2个对象,因为它要求指向的是第1个名为UserNameWebElement对象。

    WebElement("Name:=UserName", "Index:=0")

    注:如果当前只有一个对象,使用index=0将无法查找到对象,因此就不能在对象描述中使用index属性。

     

     

      之前使用QTP测试的VB程序,知道了Index在对象识别时候起到一个很重要的主用,和条街的门牌号一样。某某街某某号,然后QTP就通过这个东西去找出来,而且也是固定不变,因此,大家就开始偏向对描述性编程的喜好与拥护。优势如下:可移植性强,对对象库的依赖减少(一会有人丢我焦皮说我扯蛋,对象库是QTP精华什么的话一句句就出来,等我说完先)
        为什么说到它的移植性强呢,首先,通过对象库去识别对象并保存对象,会出现因为机器环境不同的情况,对象在不同机器上识别为不同类别而导致脚本可移植差。关于对象库的依赖,与上边那点有点类似。
         随着时间的推移,对QTP的了解加深。现在主要是在web方面写的脚本,发现了在web的page里面,对象标示用的index是会随着对象的变化而变化着,并非一成不变(我对这个观点一直很质疑,虽然是自己发现的,但还是反复的试验着)。
         首先说下自己的质疑点
         1,关于index的生成。在VB里面,大家知道,这是开发远自己就可以定义的,但是在web里面呢?如果是可以有开发自己定义的,哪么为什么对象的标示index却在变动。
         2,这个Index是否是QTP自己在运行程序过程中,自己对该程序做的标示,也就是非window的自己标示方法,才会导致这个值在变化着。
         
         自己研究了下,后来发现,当我们添加某一个web元素时候,这个对象会对应自己的一个index,这个是window或者是web程序自己对控件的标示。而我们使用description描述出来webelemenet的对象的index,这个是QTP自己对对象的标示方法。但这样是否会冲突和矛盾呢?其实是不会的。在对象库中添加的对象,我们在代码中直接编写,QTP就自己去对象库中查找这个东西,自然这个对象的标示是web或者window自己做的。而当我们用webelement去查找这个东西时候,QTP就在网页元素自己做好了标示,类似active Screen事先把对象页面存储起来一样,已经对它们分别做好了身份识别。

         好了,说了这么多,说说用处先吧。
         大家在测试web过程,最担心的问题就是,对象识别不到,或者识别到了,不是自己理想的类型,哎,委曲求全,来个低级录制吧....
        eg:之前看到论坛有人在求救一些关于无法识别的,类似view tree之类的东西,感到很郁闷...
        哪么,根据上边的那个原理,大家可以看到,其实我们通过描述的方法做到这样:以下是一棵可以张开的树,有3个可以张开的,并且QTP对他们分别节点标示 index为1,2,3,而我们把节点张开后...

  • 单词学习。

    2010-12-10 09:55:32

    Asterisk

    Excalmatory Mark/Point.

    Comma

    Period

  • URL 的copy 在测试权限的时候很重要。

    2010-12-10 09:50:01

    如果现在测试的系统有多种角色的话 就需要是尝试测试那种低级别的用户能看到页面是不是高级别的用户有权限看到。

    那些高级别的用户可以看的权限是不是低级别的用户可以看到, 可以COPY 一个高级别的页面, 然后用低级别的用户登陆以后 在Past 的这高级别的连接, 看看是不是可以打开。

     

    另外就是:COPy Subutted 状态页面的连接,

     因为添加一些使其变成Not submitted 的装备 并不可以被浏览,

    同时粘贴之前Copy 的连接, 然后看看是不是该页面是不是可以被打开, 看看是不是容许我们看到界面。

     

     

  • GUI 测试点

    2010-04-15 09:47:39

    窗口

      * 窗口能否基于相关的输入或菜单命令适当的打开

      * 窗口能否改变大小、移动和滚动

      * 窗口中的数据能否用鼠标、功能键、方向箭头和键盘操作

      * 当被覆盖的窗口重新调用后,所有相关功能是否可操作

      * 能否使用所有窗口的相关功能,所有相关功能是否可操作

      * 相关的下拉式菜单,工具条,滚动条,对话框,按钮,图标和其它控制有否?能否正常显示?完全可用?

      * 显示多窗口时,窗口名能否正确显示,活动窗口是否加亮

      * 使用多用户时,所有窗口是否能实时更新

      * 多次或不正确按鼠标是否会产生无法预测的结果

      * 窗口的声音、颜色提示和窗口的操作顺序是否符合需求

      * 窗口能否正确关闭


    数据项

      * 字母、数据能否正确显示且输入系统

      * 图象方式数据项(如滚动条)是否正常工作

      * 数据输入、消失是否可以理解,能否识别非法数据

      下列式菜单和鼠标操作

      * 菜单条显示在合适语言环境中

      * 应用程序的菜单是否显示系统相关特性

      * 下拉式操作是否正确,功能是否正确

      * 菜单、调色板和工具条是否能正常的工作

      * 能否列出所有菜单功能和下拉式功能

      * 能否通过鼠标操作所有菜单的功能,通过文本命令激活每个菜单功能

      * 菜单功能随当前窗口操作加亮或变灰

      * 如果要求多次点击鼠标或鼠标有多个按钮时能否正确识别

      * 光标、处理指示器和识别指针能否随操作而适当改变

    -----------------------------------------------------------------------------------------------------------


    UI测试常见BUG


      录入界面

      1. 输入字段要完整,且要与列表字段相符合(参照数据库进行检查)

      2. 必填项一律在后面用*表示(必填项为空在处理之前要有相关的提示信息)

      3. 字段需要做校验,如果校验不对需要在处理之前要有相关的提示信息

       (1) 长度校验

       (2) 数字、字母、日期等等的校验

       (3) 范围的校验

      4. 录入字段的排序按照流程或使用习惯,字段特别多的时候需要进行分组显示

      5. 下拉框不选值的时候应该提供默认值

      6. 相同字段的录入方式应该统一(手动输入 、点选 、下拉选择、参照)

      7. 录入后自动计算的字段要随着别的字段修改更新(如单价变后,金额也变)

      8. 日期参照应该既能输入,又能从文本框选择


      界面格式

      1. 字体颜色、大小、对齐方式(根据字段的性质确定)、加粗的一致性

      2. 文本框、按钮、滚动条、列表等控件的大小、对齐、位置的一致性

      3. 所有新增、修改、查看页面加上页面说明(如:XXX新增、XXX编辑、XXX查看等说明字样),(弹出的)界面要有标题,标题与内容要一致

      4. 不同界面显示相同字段的一致性(如列表界面和编辑界面)

      5. 界面按钮显示要求(查询、新增、删除顺序)

      6. 列表的顺序排列应该统一(按照某些特定条件排序)

      7. 下拉框中的排列顺序需要符合使用习惯或者是按照特定的规则排定

      8. 所有弹出窗口居中显示或者最大化显示

      9. 信息列表中如果某个字段显示过长用“…”或者分行显示

      10. 人员、时间的缺省值一般取当前登录人员和时间

      11. 对于带有单位的字段,需要字段的标签后面添加如下内容:“(单位)”


           功能问题

      1. 按钮功能的实现(如返回按钮能否返回)

      2. 信息保存提交后系统给出“保存/提交成功”提示信息,并自动更新显示

      3. 所有有提交按钮的页面都要有保存按钮(每个界面风格一致)

      4. 凡是点选或者下拉选择的界面,如果一旦选择完了无法回到不选择的情况,需要加上“清除选择”功能按钮

      5. 没有选择记录点击删除/修改按钮要提示“请先选择记录”

      6. 选择记录后点击删除按钮要提示“确实要删除吗?”

      7. 需要考虑删除的关联性,即删除某一个内容需要同时删除其关联的某些内容

      8. 界面只读的时候(查询、统计、导入)等,应该不能编辑


      查询问题

      1. 查询条件缺少一些可以查询的字段

      2. 有些查询条件需要支持模糊查询

      3. 需要考虑有些查询条件本身的关联性(即某个查询条件的取值范围是依赖于其它查询条件的取值)

      4. 查询条件名称与信息列表及信息编辑页面相应的字段名称完全统一

      5. 不同模块相同字段的查询方式应该统一(手动输入 、点选 、下拉选择)

      6. 出报表的时候,查询条件需要显示在报表标题的下面,这样看报表的时候知道数据的依据是什么

      7. 对于范围的查询采用全闭的形式

  • 有些英文 不要不懂装懂

    2010-04-12 08:27:41

    sporting house 妓院(不是“体育室”) ­
    dead president 美钞(上印有总统头像)(并非“死了的总统”) ­
    lover 情人(不是“爱人”)
    busboy 餐馆勤杂工(不是“公汽售票员”)
    busybody 爱管闲事的人(不是“大忙人”)
    dry goods (美)纺织品;(英)谷物(不是“干货”)
    heartman 换心人(不是“有心人”) ­
    mad doctor 精神病科医生(不是“发疯的医生”)
    eleventh hour 最后时刻(不是“十一点”) ­
    blind date (由第三者安排的)男女初次会面(并非“盲目约会”或“瞎约会”) ­

    personal remark 人身攻击(不是“个人评论”) ­
    sweet water 淡水(不是“糖水”或“甜水”) ­
    confidence man 骗子(不是“信得过的人”) ­
    criminal lawyer 刑事律师(不是“犯罪的律师”) ­
    service station 加油站(不是“服务站”) ­
    rest room 厕所(不是“休息室”) ­
    dressing room 化妆室(不是“试衣室”或“更衣室”) ­
    horse sense 常识(不是“马的感觉”) ­
    capital idea 好主意(不是“资本主义思想”) ­
    familiar talk 庸俗的交谈(不是“熟悉的谈话”)

     

    black tea 红茶(不是“黑茶”) ­
    black art 妖术(不是“黑色艺术”) ­
    black stranger 完全陌生的人(不是“陌生的黑人”) ­
    white coal (作动力来源用的)水(不是“白煤”) ­
    white man 忠实可靠的人(不是“皮肤白的人”) ­
    yellow book 黄皮书(法国政府报告书,以黄纸为封)(不是“黄色书籍”) ­
    red tape 官僚习气(不是“红色带子”) ­
    green hand 新手(不是“绿手”) ­
    blue stocking 女学者、女才子(不是“蓝色长统袜”) ­
        

    China policy 对华政策(不是“中国政策”) ­
    Chinese dragon 麒麟(不是“中国龙”) ­
    American beauty 一种玫瑰,名为“美国丽人”(不是“美国美女”) ­
    English disease 软骨病(不是“英国病”) ­
    Indian summer 愉快宁静的晚年(不是“印度的夏日”) ­
    Greek gift 害人的礼品(不是“希腊礼物”) ­
    Spanish athlete 吹牛的人(不是“西班牙运动员”) ­
    French chalk 滑石粉(不是“法国粉笔”) ­
    ­

    ­

     

    pull one's leg 开玩笑(不是“拉后腿”) ­
    in one's birthday suit 赤身裸体(不是“穿着生日礼服”) ­
    eat one's words 收回前言(不是“食言”) ­
    an apple of love 西红柿(不是“爱情之果”) ­
    handwriting on the wall 不祥之兆(不是“大字报”) ­
    bring down the house 博得全场喝彩(不是“推倒房子”) ­
    have a fit 勃然大怒(不是“试穿”) ­
    make one's hair stand on end 令人毛骨悚然—恐惧(不是“令人发指——气愤”) ­
    be taken in 受骗,上当(不是“被接纳”) ­
    think a great deal of oneself 高看或看重自己(不是“为自己想得很多”) ­
    pull up one's socks 鼓起勇气(不是“提上袜子”) ­
    have the heart to do (用于否定句)忍心做……不是“有心做”或“有意做”) ­
    ­

    ­What a shame! 多可惜!真遗憾!(不是“多可耻”) ­
    You don't say! 是吗!(不是“你别说”) ­
    You can say that again! 说得好!(不是“你可以再说一遍”) ­
    I haven't slept better. 我睡得好极了。(不是“我从未睡过好觉”) ­
    You can't be too careful in your work. 你工作越仔细越好。(不是“你工作不能太仔细”) ­
    It has been 4 years since I smoked. 我戒烟4年了。(不是“我抽烟4年了”) ­
    All his friends did not turn up. 他的朋友没全到。(不是“他的朋友全没到”) ­
    People will be long forgetting her. 人们在很长时间内会记住她的。(不是“人们会永远忘记她”) ­

    He was only too pleased to let them go. 他很乐意让他们走。(不是“他太高兴了,不愿让他们走”) ­

    It can't be less interesting. 它无聊极了。(不是“它不可能没有趣”)

742/4<1234>
Open Toolbar