以前有個(gè)開(kāi)發(fā)的同事問(wèn)我悄谐,你的生活中是不是充滿了bug介评?我對(duì)這個(gè)問(wèn)題感到很稀奇,然而這卻是個(gè)很有趣的問(wèn)題爬舰。同樣的情況们陆,在我和我的家人意見(jiàn)不統(tǒng)一,我為一件事一直堅(jiān)持的時(shí)候情屹,他們會(huì)問(wèn)我是不是有職業(yè)财撼稹?對(duì)于這些問(wèn)題垃你,在生活中椅文,我只能承認(rèn)我是一個(gè)完美主義者或者強(qiáng)迫癥患者。在工作中惜颇,我并不是一個(gè)經(jīng)驗(yàn)十分豐富的測(cè)試工作者皆刺,但是我很看好測(cè)試這份工作職責(zé)的重要性。一個(gè)團(tuán)隊(duì)凌摄,尤其是一個(gè)創(chuàng)業(yè)性的團(tuán)隊(duì)羡蛾,對(duì)于測(cè)試人員的選擇要和團(tuán)隊(duì)的整體水平一致,一個(gè)優(yōu)秀的測(cè)試工程師不但可以做好測(cè)試锨亏,還可以培養(yǎng)開(kāi)發(fā)對(duì)測(cè)試的態(tài)度痴怨,以及推動(dòng)整個(gè)團(tuán)隊(duì)的效率。?
怎樣的App受用戶喜愛(ài)
這是互聯(lián)網(wǎng)公司發(fā)展需要考慮的必要問(wèn)題器予,也是幫助測(cè)試工作者更好地測(cè)試的一個(gè)思路浪藻。站在用戶的角度去體驗(yàn),能發(fā)現(xiàn)更多的bug和可以優(yōu)化的功能點(diǎn)乾翔。一個(gè)好的app爱葵,是受用戶喜愛(ài)的,能做到維持老客戶并且能夠吸引新客戶。
用戶的角度钧惧,無(wú)非就是這個(gè)app操作起來(lái)如何暇韧,占用內(nèi)存大不大,性能如何浓瞪,干擾信息是否多,符不符合自己想要的視覺(jué)體驗(yàn)巧婶。
互聯(lián)網(wǎng)app的性能是決定app生涯的首要點(diǎn)乾颁。測(cè)試角度去看,app啟動(dòng)難艺栈,加載慢英岭,不流暢,耗流量湿右,占內(nèi)存诅妹,耗電快,影響設(shè)備運(yùn)行速度毅人,卡頓吭狡,閃退,無(wú)反應(yīng)丈莺,這些都是用戶很難接受的划煮,這樣的用戶體驗(yàn)可想而知。
在App黑盒手工測(cè)試中缔俄,最常遇到的性能相關(guān)的問(wèn)題就是卡死弛秋,閃退,反應(yīng)慢俐载。這是用戶不能接受的也是測(cè)試工作者不能接受的蟹略。一旦出現(xiàn)這樣類似的bug,一次也需要提高警惕遏佣,屬于嚴(yán)重bug范疇挖炬。
如果公司的測(cè)試團(tuán)隊(duì)不健全,或者壓根不存在測(cè)試人員贼急,App 問(wèn)題頻出茅茂,那將意味著什么?
現(xiàn)在市場(chǎng)上app軟件的數(shù)量增多太抓,用戶的選擇越來(lái)越多空闲,大家也不愿花那么多時(shí)間在一大堆應(yīng)用里試出好的應(yīng)用,更想直接找到相應(yīng)使用場(chǎng)景下最好走敌、最合適的應(yīng)用碴倾。所以一個(gè)app開(kāi)發(fā)要有明確的切入點(diǎn),以簡(jiǎn)約快捷為主。測(cè)試可以從簡(jiǎn)約角度去選擇優(yōu)化跌榔。
App項(xiàng)目生命周期
App 項(xiàng)目生命周期分為三個(gè)階段异雁,開(kāi)發(fā)階段,測(cè)試階段僧须,發(fā)布階段纲刀。測(cè)試人員是需要全程參與的。
測(cè)試的基本思路
測(cè)試范圍-測(cè)試內(nèi)容-測(cè)試計(jì)劃-測(cè)試方案-測(cè)試用例-測(cè)試執(zhí)行
一般看來(lái)担平,測(cè)試并不是拿到手就可以直接做的這樣一種工作示绊,我們需要先熟悉整個(gè)項(xiàng)目的流程,心中有個(gè)大體的框架才能入手暂论。測(cè)試的執(zhí)行是在整個(gè)項(xiàng)目的中間以及發(fā)布前所進(jìn)行的面褐。然而實(shí)際上測(cè)試是需要貫穿整個(gè)項(xiàng)目的,在一個(gè)項(xiàng)目測(cè)試任務(wù)被告知前取胎,作為測(cè)試的我們需要通過(guò)郵件展哭,會(huì)議之類了解新項(xiàng)目的框架范圍,要知道接下來(lái)整個(gè)團(tuán)隊(duì)的任務(wù)闻蛀,我們應(yīng)該如何去完善這份項(xiàng)目計(jì)劃匪傍。了解了測(cè)試的范圍,我們需要通過(guò)產(chǎn)品經(jīng)理給出的原型圖以及需求文檔去了解詳細(xì)的測(cè)試內(nèi)容循榆。在此基礎(chǔ)上析恢,我們對(duì)自己的測(cè)試任務(wù)已經(jīng)有個(gè)基本的概念了,但依然會(huì)存在一些細(xì)節(jié)方面的問(wèn)題秧饮,接下來(lái)我們要做的就是和開(kāi)發(fā)溝通映挂。測(cè)試和開(kāi)發(fā)是相輔相成的,開(kāi)發(fā)少不了測(cè)試幫助優(yōu)化盗尸,測(cè)試需要開(kāi)發(fā)的支持才能順利地完成任務(wù)柑船,雙方溝通越細(xì),后續(xù)能夠避免的問(wèn)題就越多泼各。開(kāi)發(fā)溝通完畢鞍时,需要對(duì)照已有的項(xiàng)目相關(guān)的需求文檔開(kāi)始立項(xiàng),準(zhǔn)備測(cè)試計(jì)劃方案扣蜻,列出每個(gè)功能模塊逆巍,大致的功能點(diǎn)和執(zhí)行方法。個(gè)人認(rèn)為莽使,此處測(cè)試用例可以列出雛形锐极,后續(xù)測(cè)試過(guò)程中可以加以完善。其實(shí)芳肌,這里我考慮的還有一點(diǎn)就是測(cè)試用例是永遠(yuǎn)不可能補(bǔ)全的灵再,每一個(gè)測(cè)試工程師的想法肋层,操作手法以及思維角度是不一致的,隨時(shí)都可能產(chǎn)生新的操作手法翎迁,所以我們只需要列舉出基本的功能點(diǎn)栋猖,后續(xù)的一些特殊操作可以作為測(cè)試用例附加,但不屬于基礎(chǔ)用例的范疇汪榔。這一點(diǎn)蒲拉,對(duì)于測(cè)試人員來(lái)說(shuō),更方便管理測(cè)試用例揍异,但對(duì)于公司來(lái)說(shuō)全陨,app模塊更新變動(dòng)較大,測(cè)試用例過(guò)于詳細(xì)的話維護(hù)成本過(guò)高衷掷,實(shí)際上也是節(jié)省了公司項(xiàng)目的執(zhí)行時(shí)間。
APP測(cè)試用例的那些事
初入測(cè)試的工作者來(lái)說(shuō)柿菩,一份很好的測(cè)試用例能引導(dǎo)新人跟上測(cè)試所需要的思路戚嗅,因?yàn)檫@些都是有經(jīng)驗(yàn)的老人無(wú)數(shù)次查漏補(bǔ)缺迭代更新的產(chǎn)出,可以細(xì)節(jié)到每一個(gè)常人想不到的步驟枢舶,考慮到全方位的各種情況懦胞。
在我從事的這幾年工作以來(lái),接觸過(guò)DELL的test case凉泄,雖然不用自己動(dòng)手去寫case用例躏尉,但是需要我們對(duì)test case非常熟悉。當(dāng)然后众,我見(jiàn)過(guò)一些很牛的測(cè)試工程師胀糜,他們可以做到細(xì)節(jié)到每一個(gè)步驟,以至于test case拿到手就可以想到接下來(lái)這個(gè)case有哪些操作步驟蒂誉,通常會(huì)發(fā)生哪些issue教藻。這些是需要時(shí)間經(jīng)驗(yàn)積累的。
測(cè)試用例也是有規(guī)律的右锨,一般來(lái)說(shuō)是由淺入深括堤,由表至里∩芤疲基本上可以分為幾個(gè)模塊悄窃,大標(biāo)題小標(biāo)題,測(cè)試模塊蹂窖,詳細(xì)測(cè)試步驟轧抗,附帶測(cè)試結(jié)果供后續(xù)測(cè)試工作者參考。
APP測(cè)試用例設(shè)計(jì)思路:
測(cè)試項(xiàng)目:App應(yīng)用軟件
需求測(cè)試:查看App的需求文檔恼策,原型圖
界面測(cè)試:查看App的界面外觀是否符合標(biāo)準(zhǔn)
功能測(cè)試:查看App的功能是否可以使用
可靠性測(cè)試:使用App過(guò)程中是否退出等情況
兼容性測(cè)試:安裝App到平臺(tái)(Android2.2/4.2)鸦致,不同的分辨率是否成功
疲勞測(cè)試:安裝App程序一直置于后臺(tái)是否退出或閃退等情況潮剪,idle測(cè)試
易用性測(cè)試:App程序是否容易操作、人性化分唾,用戶角度體驗(yàn)抗碰,也就是簡(jiǎn)約便捷的趨勢(shì)
壓力測(cè)試:重復(fù)安裝、卸載App程序或不斷點(diǎn)擊某一個(gè)按鈕是否退出等情況
并發(fā)測(cè)試:安裝绽乔、卸載App程序過(guò)程中或操作App程序功能時(shí)受到第三方的干擾
回歸測(cè)試:對(duì)App過(guò)程中Bug進(jìn)行回歸測(cè)試弧蝇,在回歸測(cè)試的同時(shí)要注意在bug是否修復(fù)的基礎(chǔ)上有沒(méi)有產(chǎn)生其他新的bug
數(shù)據(jù)連接測(cè)試:數(shù)據(jù)、WIFI折砸、熱點(diǎn)等情況下測(cè)試看疗,包括網(wǎng)絡(luò)切換等各種情況
用戶手冊(cè)測(cè)試:查看使用手冊(cè)是否對(duì)App程序用法、限制睦授、條件等有詳細(xì)描述
測(cè)試常用的方法
等價(jià)類劃分两芳、邊界值、場(chǎng)景法去枷、錯(cuò)誤推測(cè)法
1.等價(jià)類劃分:等價(jià)類劃分法原則是一種典型的怖辆、重要的黑盒測(cè)試方法,它將程序所有可能的輸入數(shù)據(jù)(有效的和無(wú)效的)劃分成若干個(gè)等價(jià)類删顶。然后從每個(gè)部分中選取具有代表性的數(shù)據(jù)當(dāng)做測(cè)試用例進(jìn)行合理的分類竖螃,測(cè)試用例由有效等價(jià)類和無(wú)效等價(jià)類的代表組成,從而保證測(cè)試用例具有完整性和代表性逗余。利用這一方法設(shè)計(jì)測(cè)試用例可以不考慮程序的內(nèi)部結(jié)構(gòu)特咆,以需求規(guī)格說(shuō)明書為依據(jù),選擇適當(dāng)?shù)牡湫妥蛹剂唬J(rèn)真分析和推敲說(shuō)明書的各項(xiàng)需求腻格,特別是功能需求,盡可能多地發(fā)現(xiàn)錯(cuò)誤关摇。等價(jià)類劃分法是一種系統(tǒng)性的確定要輸入的測(cè)試條件的方法荒叶。
2.邊界值:長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)告訴我們,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上输虱,而不是發(fā)生在輸入輸出范圍的內(nèi)部些楣。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤宪睹。使用邊界值分析方法設(shè)計(jì)測(cè)試用例愁茁,首先應(yīng)確定邊界情況。通常輸入和輸出等價(jià)類的邊界亭病,就是應(yīng)著重測(cè)試的邊界情況鹅很。應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù)罪帖,而不是選取等價(jià)類中的典型值或任意值作為測(cè)試數(shù)據(jù)促煮。
3.場(chǎng)景法:通過(guò)運(yùn)用場(chǎng)景來(lái)對(duì)系統(tǒng)的功能點(diǎn)或業(yè)務(wù)流程的描述邮屁,從而提高測(cè)試效果的一種方法。用例場(chǎng)景來(lái)測(cè)試需求是指模擬特定場(chǎng)景邊界發(fā)生的事情菠齿,通過(guò)事件來(lái)觸發(fā)某個(gè)動(dòng)作的發(fā)生佑吝,觀察事件的最終結(jié)果,從而用來(lái)發(fā)現(xiàn)需求中存在的問(wèn)題绳匀。我們通常以正常的用例場(chǎng)景分析開(kāi)始芋忿,然后再著手其他的場(chǎng)景分析。場(chǎng)景法一般包含基本流和備用流疾棵,從一個(gè)流程開(kāi)始戈钢,通過(guò)描述經(jīng)過(guò)的路徑來(lái)確定的過(guò)程,經(jīng)過(guò)遍歷所有的基本流和備用流來(lái)完成整個(gè)場(chǎng)景是尔。場(chǎng)景主要包括4種主要的類型:正常的用例場(chǎng)景殉了,備選的用例場(chǎng)景,異常的用例場(chǎng)景拟枚,假定推測(cè)的場(chǎng)景宣渗。
4.錯(cuò)誤推測(cè)法:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)他們選擇測(cè)試用例. 例如, 在單元測(cè)試時(shí)曾列出的許多在模塊中常見(jiàn)的錯(cuò)誤. 以前產(chǎn)品測(cè)試中曾經(jīng)發(fā)現(xiàn)的錯(cuò)誤等, 這些就是經(jīng)驗(yàn)的總結(jié)±嬷荩總之,就是進(jìn)行錯(cuò)誤的操作田轧。
測(cè)試用例的誤區(qū)
1)測(cè)試用例應(yīng)該詳細(xì)記錄所有的操作信息暴匠,使一個(gè)沒(méi)有接觸過(guò)系統(tǒng)的人員也能進(jìn)行測(cè)試。
作為一個(gè)測(cè)試人員傻粘,我一直被灌輸?shù)乃枷胝沁@些每窖。所謂的好的測(cè)試用例,就是可以讓一個(gè)從頭到尾都沒(méi)有接觸過(guò)你要測(cè)試的產(chǎn)品的人弦悉,能通過(guò)你的測(cè)試用例產(chǎn)品拿到手就會(huì)用窒典。這句話不是不對(duì)的,我也并沒(méi)有否認(rèn)這句話的意思稽莉,的確是這樣瀑志。之所以放在誤區(qū),是需要提醒大家考慮一點(diǎn)污秆,這句話是需要一個(gè)前提的劈猪。對(duì)于測(cè)試用例,我有過(guò)猶豫良拼,寫的太簡(jiǎn)單战得,擔(dān)心使用者看不懂,每一點(diǎn)都要過(guò)來(lái)親自問(wèn)我庸推,這樣反而會(huì)耗費(fèi)更多的時(shí)間常侦。寫的太詳細(xì)浇冰,個(gè)人時(shí)間耗費(fèi)太多不說(shuō),在一個(gè)互聯(lián)網(wǎng)時(shí)代聋亡,版本更新迭代太快的時(shí)代肘习,這樣的用例是很快就會(huì)被更新淘汰的。其實(shí)杀捻,我們忽略了一點(diǎn)井厌,我們之所以為了讓測(cè)試用例盡可能詳細(xì),是為了測(cè)試目的致讥,為了完善產(chǎn)品仅仆。
測(cè)試的目的是盡可能發(fā)現(xiàn)程序中存在的bug,測(cè)試活動(dòng)本身也可以被看作是一個(gè)項(xiàng)目垢袱,也需要在給定的資源條件下盡可能達(dá)成目標(biāo)墓拜,因此我們必須在測(cè)試計(jì)劃階段明確測(cè)試的目標(biāo),一切圍繞測(cè)試的目標(biāo)進(jìn)行请契。
測(cè)試用例的詳細(xì)程度也需要確定咳榜。如果測(cè)試用例的執(zhí)行者、測(cè)試用例設(shè)計(jì)者爽锥、測(cè)試活動(dòng)相關(guān)人對(duì)系統(tǒng)了解都很深刻涌韩,那測(cè)試用例就沒(méi)有必要太詳細(xì)了,文檔的作用本來(lái)就在于溝通氯夷,只要能達(dá)到溝通的目的就可以臣樱。在測(cè)試計(jì)劃階段,一般建議測(cè)試設(shè)計(jì)30% - 40%左右的時(shí)間腮考,測(cè)試設(shè)計(jì)工程師能夠根據(jù)項(xiàng)目的需要自行確定用例的詳細(xì)程度雇毫,在測(cè)試用例的評(píng)審階段由參與評(píng)審的相關(guān)人對(duì)其把關(guān)。
2)測(cè)試用例是一勞永逸的事情
這個(gè)例子可能有些極端踩蔚,但測(cè)試用例與需求和設(shè)計(jì)不同步的情況在實(shí)際開(kāi)發(fā)過(guò)程中卻是屢見(jiàn)不鮮的棚放,測(cè)試用例文檔是“活的”文檔,這一點(diǎn)應(yīng)該被測(cè)試人員牢記馅闽。
3)能發(fā)現(xiàn)到目前為止沒(méi)有發(fā)現(xiàn)的bug的用例是好的用例飘蚯。
作為測(cè)試實(shí)施依據(jù)的測(cè)試用例,必須要能完整覆蓋測(cè)試需求捞蛋,而不應(yīng)該針對(duì)單個(gè)的測(cè)試用例去評(píng)判好壞孝冒。
測(cè)試需要保證以下兩點(diǎn):
程序做了它應(yīng)該做的事情
程序沒(méi)有做它不該做的事情