软件测试浅悟妄è¯
CSDN旗下水之真谛出å“(http://blog.csdn.net/FantasiaX)
妄è¯ï¼š
软件是ä¸å¯æµ‹è¯•çš„ï¼Œå› ä¸ºæˆ‘ä»¬çš„çœ¼ç•Œä¸æ˜¯æ— é™çš„ã€æ‰‹æ®µä¸æ˜¯æ— é™çš„ï¼›
软件是å¯ä»¥æµ‹è¯•çš„ï¼Œå› ä¸ºè½¯ä»¶çš„ç”¨æˆ·æ˜¯æœ‰é™çš„,用户的æ“是有é™çš„。
å°åºï¼š
近日有朋å‹æŠ±æ€¨è¯´è‡ªå·±å› 为写ä¸å‡ºæµ‹è¯•Caseã€æŠ¥ä¸å‡ºBug而压力很大,以致ç»å¸¸æ¢¦åˆ°çŒªç¬¼è‰åŠæ€è™«å‰‚,或者在厨房ä¸éé‡ä¸é•¿çœ¼çš„å°å¼ºå¹¶å°†å…¶æ‹æ»åŽç«Ÿæ¡ä»¶å射地打开电脑想报个Bugç»™Lead。朋å‹é—®æˆ‘怎么办,其实我也是一脸苦笑——抓Bug有时是è¦çœ‹è¿æ°”çš„——如果Version是在寅时Build出æ¥ï¼Œå…´è®¸Bug会多一些,如果是在申时Build出æ¥ï¼Œå…´è®¸Bug会少很多(如果开å‘团队在国外,别忘记倒时差)。
这些当然是说笑。我想说的是,目å‰å¸‚é¢ä¸Šå¤§å¤šæ•°è½¯ä»¶æµ‹è¯•ç±»ä¹¦ç±éƒ½æ˜¯å›½å¤–作者写æˆï¼Œè™½ç„¶ä¹Ÿæœ‰ä¸å°‘著作是我们ä¸å›½æµ‹è¯•ä¸“家写æˆï¼Œä½†é‡Œé¢å¼•ç»æ®å…¸äº†å¾ˆå¤šå›½å¤–作å“,使测试æ€æƒ³æ²¿ä¹ 了欧美的æ€è·¯ã€‚
一个民æ—最伟大的东西是什么?是文化和æ€æƒ³ã€‚那么我们能ä¸èƒ½ç”¨ä¸å›½çš„文化和æ€æƒ³åŽ»é‡æ–°å®¡è§†è½¯ä»¶æµ‹è¯•çš„方法,创新出自己的æ€è·¯æ¥å‘¢ï¼Ÿæœ¬æ–‡å°±æ˜¯ä¸€æ¬¡æ–—胆å°è¯•ã€‚
æ£æ–‡ï¼š
测试ä¸çš„文化
西方人善于推ç†ï¼Œå› æ¤ä»–们的测试æµç¨‹æ˜¯——
1. Test Plan
2. Test Case
3. Find Bug
4. Review fixed bug
以上这4个环节是用推ç†çš„办法é€æ¥ç»†åŒ–,并éšç€è½¯ä»¶ç‰ˆæœ¬çš„更新而è¿ä»£å‰è¡Œçš„。
ä¸å›½äººå–„于归纳,按照上é¢çš„这个æµç¨‹åšæµ‹è¯•æ—¶ï¼Œæœ€å¤§çš„困难是第一æ¥åˆ°ç¬¬äºŒæ¥çš„跨越——ä¾Test Plan去æ£æŽ¨Test Caseæ˜¯ä»¶å¾ˆç—›è‹¦çš„äº‹æƒ…ï¼Œå¾ˆå®¹æ˜“é™·å…¥ä¸¤ä¸ªè¯¯åŒºï¼šä¸€ä¸ªè¯¯åŒºæ˜¯å†™äº†ä¸€å¤§å †ä¸ç–¼ä¸ç—’çš„Case,把测试å˜æˆäº†è·‘龙套;å¦ä¸€ä¸ªè¯¯åŒºæ˜¯è¿‡åˆ†è¿½æ±‚è¦æŠ“到Bug,结果产生很多ç–æ¼ã€‚
为什么会出现这ç§æƒ…å†µå‘¢ï¼ŸåŽŸå› åœ¨äºŽæ–‡åŒ–ã€‚Test Plan本身是按“逻辑”将软件的功能分组,然åŽè¿›è¡Œæµ‹è¯•ï¼Œè€å¤–的逻辑æ€ç»´èƒ½åŠ›æ˜¯æ¯”较强的,基本上能够比较轻æ¾åœ°æŠŠç¬¦åˆTest Planä¸æŸä¸ªåˆ†æžçš„æ“作都挑出æ¥ã€Fillè¿›Test Plan里,而这在我们ä¸å›½äººçœ‹æ¥ï¼Œè¿™æ˜¯å¯¹è½¯ä»¶æ“作的一秓割裂”ï¼Œå› æ¤å¿ƒé‡Œä¼šæ„Ÿè§‰å¾ˆä¹±ã€æ— 从下手——于是测试就æˆäº†ä¸€ä¸ªæ€Žä¹ˆä¹Ÿèµ°ä¸å‡ºåŽ»çš„迷宫。
我的办法是:先写Test Plan,但ä¸ä»¥Test Plan为指导方针;按照软件的Functions写Test Case,然åŽæŠŠTest Case分门别类填充到Test Plan的框架ä¸åŽ»——这一æ¥å°±æ˜¯å½’纳——有时候对于特殊的软件,甚至å¯ä»¥å½’纳出ä¸åŒå¯»å¸¸çš„测试分支æ¥ã€‚
ä½ å¯èƒ½ä¼šé—®ï¼šä¸æŒ‰Test Plan怎么写Case啊??那ä¸æˆäº†èƒ¡å†™å…«å†™äº†ï¼Ÿ
下é¢æˆ‘å°±æ¥è¯´è¯´æˆ‘是怎么分æžåŠŸèƒ½ã€å†™Case的。
从“测试”二å—说起
一个民æ—的文化能够得以ä¿å˜ï¼Œæ˜¯å› 为有了è¯è¨€å’Œæ–‡å—。其ä¸å°¤ä»¥æ–‡å—æœ€ä¸ºåŽ‰å®³ï¼Œå› ä¸ºè¯è¨€éš¾ä»¥è®°å½•ï¼ˆå½•éŸ³æœºã€MP3å’ŒDVé‚£æ˜¯è¿‘å‡ å¹´çš„äº‹å„¿ï¼‰ï¼Œåœ¨åƒä¸‡å¹´çš„å£è€³ç›¸ä¼ ä¸éš¾å…产生讹å˜å’Œå¤±ä¼ ,而文å—是相当稳定的东西,å³ä½¿å‘生讹å˜å’Œè¯¯ç”¨ï¼ŒæœºçŽ‡ä¹Ÿæ¯”è¯è¨€è¦å°å¾—多。
特别是ä¸å›½çš„æ–¹å—å—,那就是一座å®è—。å¤äººåœ¨é€ å—之åˆçš„å«ä¹‰å°±è•´å«åœ¨è¿™æ–¹å¯¸ä¹‹é—´ï¼Œè™½åŽ†ç»ç”²éª¨é’Ÿé¼Žã€ç¯†åœ†æ¥·æ£ï¼Œå´å‡ 乎一点ä¸å˜åœ°ç©¿è¶Šæ—¶ç©ºï¼ŒæŠŠç¥–先想表达的æ„æ€ç›´æŽ¥å¸¦åˆ°æˆ‘们é¢å‰ã€‚拉ä¸æ–‡ç‰æ‹¼éŸ³æ–‡å—就差一些了,它没有“形状”,åªèƒ½ä¾é å—æ¯çš„排列组åˆæ¥ä½œä¸ºé—ä¼ çš„DNA了。
ä¸å›½äººæŠŠTest翻译æˆæµ‹è¯•ï¼Œå¦™å“‰ï¼
先看“测”å—。从“æ°´”ã€ä»Ž“则”。“则”为何物?我们常说的“规则”,规是用æ¥ç”»åœ†çš„ã€çŸ©æ˜¯ç”¨æ¥ç”»ç›´è§’的,则最早是用“刀”æŠŠç« æ³•åˆ»åœ¨“鼎”上让人们éµå®ˆçš„——åŽå¼•ç”³ä¸º“尺度”。这下,圆规ã€ç›´å°ºã€ä¸‰è§’æ¿éƒ½é½äº†ï¼Œå‘µå‘µã€‚æ‹¿å°ºå伸到水里,ä¸å°±æ˜¯æµ‹é‡æ°´çš„深度å—?这就是“测”的本愗—亘å¤æœªå˜ã€‚å†è¿›ä¸€æ¥ï¼Œå…¶å®žæµ‹é‡ä¸å…‰èƒ½æµ‹æ°´æ·±å§ï¼Œå‡¡æ˜¯ä¸Žè¢«æµ‹å¯¹è±¡çš„属性打交é“ã€è¿›è¡Œé‡åŒ–的行为,都应该算作“测”。秦始皇下大力气统一“度”(长度)“釔(体积)“è¡¡”(货å¸ï¼‰ï¼Œä¸éƒ½æ˜¯ä¸ºäº†æ–¹ä¾¿æµ‹è¯•è¡Œä¸šåœ¨å…¨å›½çš„统一å‘展å—。请大家注æ„,“测”å—ä¸ºæˆ‘ä»¬ä¼ é€’äº†ä¸€ä¸ªéžå¸¸é‡è¦çš„ä¿¡æ¯ï¼Œé‚£å°±æ˜¯“é™æ€”。基本上å¯ä»¥è¯´ï¼Œå¦‚果被测对象ä¸æ˜¯ç›¸å¯¹é™æ€çš„ï¼Œé‚£ä¹ˆå°±æ— æ³•æµ‹é‡äº†ã€‚é‡å物ç†ä¸çš„“测ä¸å‡†åŽŸç†”ä¸çš„测,也æ£æ˜¯è¯´æ˜Žè¿™ä¸€ç‚¹ã€‚
å†çœ‹“試”å—。从“言”从“弔。 试,用也——《说文》。毋庸多言,“试”å—ä¸ºæˆ‘ä»¬ä¼ é€’çš„é‡è¦ç†å¿µæ˜¯“动怔——使用,当然是动æ€çš„。而且,软件测试在国际范围内的公共定义就是“为了找到软件缺陷而进行的使用”。引申一æ¥ï¼Œ“试”å—从“言”,åˆæœ‰“考试”一个å«ä¹‰ã€‚看æ¥ï¼Œè¿™ä¸ªè€ƒè¯•æ˜¯å£è¯•äº†ï¼Œå‘µå‘µã€‚既然是考试,那么问ç”就是必è¦çš„了,所以会有一个言å—,其实这一“é—®”和一“甔就是软件的“输入”与“输出”。
软件的Build从拿到我们手里开始,就是处在“动”与“陔的交替状æ€ã€‚既然是动é™äº¤æ›¿ï¼Œæˆ‘们éžè¦å…ˆæŠŠé™çš„挑出æ¥å†™æˆCaseã€å†æŠŠå›ºå®šæŸä¸€ç§“动”挑出æ¥å†™æˆCase(而ä¸ç®¡å®ƒåœ¨ä»€ä¹ˆæ—¶å€™å‡ºçŽ°ï¼‰ï¼Œå½“然是件很麻烦的事情。那么我们应该怎么办呢?
对软件的“测”
上文æ到,é™è€…为测。让我们想想软件都在什么时候是“陔的。
我们看一个自然的æµç¨‹ï¼šBuild下载à下载完æˆà安装à安装完æˆàå¼€å¯à使用àå…³é—àå¸è½½ã€‚哪些是é™ï¼Ÿå“ªäº›æ˜¯åŠ¨ï¼Ÿè®©æˆ‘们一一剖æžã€‚
1. 下载 : 全部属性处在动æ€è€Œä¸å¯æµ‹ä¸ã€‚
2.