Counterstrings:自描述测试数据

上一篇 / 下一篇  2007-03-29 11:21:43 / 天气: 晴朗 / 心情: 平静 / 个人分类:E文资料

51Testing软件测试网's{)M8Fy)i7K6p*~^

Counterstrings: Self-Describing Test Data

*RHdv K0
昨天去James Bach的Blog,看到有关Couterstrings的描述:
“A counterstring is a graduated string of arbitrary length. No matter where
you are in the string, you always know the character position. This comes in
handy when you are pasting huge strings into fields and they get truncated
at a certain point. You want to know how many characters that is.
Here is a 35 character counterstring:51Testing软件测试网
sU*b!Vt\z
2*4*6*8*11*14*17*20*23*26*29*32*35*
 
Each asterisk in the string occurs at a position specified by the immediately
preceding number. Thus, the asterisk following the 29 is the 29th character
in that string. So, you can chop the end of the string anywhere, and you know
exactly where it was cut. Without having to count, you know that the string
“2*4*6*8*11*14*17*2″ has exactly 18 characters in it. This saves some effort
when you’re dealing with a half million characters. I pasted a 4000 character
counterstring into the address field of Explorer and it was truncated at
“2045*20″, meaning that 2047 characters were pasted.
 
 
I realize this is may not be a very interesting sort of testing, except perhaps
for security purposes or when you’re first getting to know the app. But security
is an increasingly important issue in our field, and sometimes when no one tells
you the limits and dynamics of text fields, this can come in handy. ”
 
 
利用James Bach提供的一个小工具PerlClip做了一个小小的测试,具体如下:
使用PerlClip生成1000位的Counterstrings,见下面的数据:
*3*5*7*9*12*15*18*21*24*27*30*33*36*39*42*45*48*51*54*57*60*63*66*69*72*75*78
*81*84*87*90*93*96*99*103*107*111*115*119*123*127*131*135*139*143*147*151*155
*159*163*167*171*175*179*183*187*191*195*199*203*207*211*215*219*223*227*231
*235*239*243*247*251*255*259*263*267*271*275*279*283*287*291*295*299*303*307
*311*315*319*323*327*331*335*339*343*347*351*355*359*363*367*371*375*379*383
*387*391*395*399*403*407*411*415*419*423*427*431*435*439*443*447*451*455*459
*463*467*471*475*479*483*487*491*495*499*503*507*511*515*519*523*527*531*535
*539*543*547*551*555*559*563*567*571*575*579*583*587*591*595*599*603*607*611
*615*619*623*627*631*635*639*643*647*651*655*659*663*667*671*675*679*683*687
*691*695*699*703*707*711*715*719*723*727*731*735*739*743*747*751*755*759*763
*767*771*775*779*783*787*791*795*799*803*807*811*815*819*823*827*831*835*839
*843*847*851*855*859*863*867*871*875*879*883*887*891*895*899*903*907*911*915
*919*923*927*931*935*939*943*947*951*955*959*963*967*971*975*979*983*987*991
*995*1000*
51Testing软件测试网 Y2[)vNEe s`:E

将此数据输入到baidu的搜索框中:

h+y { L{|4t@v~0
搜索框会自动截断至*3*5*7*9*12*15*18*21*24*27*30*33*36*39*42*45*48*51*54
*57*60*63*66*69*72*75*78*81*84*87*90*93*96*99*1

%y I O6u1n&F0上面这段数据告诉我们baidu的搜索框中最多只能输入100个char(由于此段数据以1位星号开始,因此,99位处实际应为99-1位,所以总共100位,并不是101位)。51Testing软件测试网u ? i:E S

51Testing软件测试网f(c Bft6o

那么我们在输入了100位char之后,点击“百度搜索”会如何呢?51Testing软件测试网!x ^Q7};?WNzjG

*3*5*7*9*12*15*18*21*24*27*30*33*36*39*42*45*48*51*54*57*60*63*66*69*72*75*7
 

]rMHf-q e%dQ+@,o0被系统自动截断为76位(原因如上所述),同时,baidu会有一个系统提示,如下:

;f$q4e4y0O|*[@:li7s[051Testing软件测试网 _ |'f#RJn'u

“提示:"8*8" 及其后面的字词均被忽略,因为百度的查询限制在38个汉字以内。”51Testing软件测试网-S` rV'}^F

Ig2i.Ex7SHD] R*T#M0这里要说明一点,一个汉字有两个字符组成,因此,38*2=76,与第二次截断后的数据所描述的长度完全一致。

p4Ko-|;q.Mf051Testing软件测试网b7[0d p"c K

(PS:这种测试下,baidu的表现要比Google的好,虽然Google的搜索框第一次截断的char长度比baidu大的多,一直可以到2045*205,一共2048位,但是,当我点击搜索之后,Google要么全无反应,要么报错说我的网络链接有问题。)51Testing软件测试网K NA"Y&d9}l

,Hui:R[Z \+zL0厚厚,很有意思的counterstring,当然仁者见仁智者见智,该什么时候用它、该怎么用它来帮助我们测试,大家还是自己看着办吧。

6b^/[8K$g9M%z7c I051Testing软件测试网8MSE;D.v xo

(PS:无论counterstring是一种数据类型,还是一种生成数据的函数或是方法,我想重点还是我们应该如何应用它,来更好地为我们的测试服务。)

rG$yDI }0

#Q-M7{o V]U0 

y ?Wn{0yx7Y0
相关阅读:

TAG: E文资料

 

评分:0

我来说两句

我的栏目

日历

« 2023-06-18  
    123
45678910
11121314151617
18192021222324
252627282930 

数据统计

  • 访问量: 1675
  • 日志数: 3
  • 建立时间: 2006-12-25
  • 更新时间: 2007-03-29

RSS订阅

Open Toolbar