一瘫怜、測(cè)試的原則
盡早原則,邊界和極端原則本刽,28原則鲸湃,確認(rèn)原則,回歸關(guān)聯(lián)
1.應(yīng)當(dāng)把“盡早和不斷地測(cè)試”作為開(kāi)發(fā)者的座右銘子寓。
2.設(shè)計(jì)測(cè)試用例時(shí)暗挑,應(yīng)該考慮到合法的輸入和不合法的輸入,以及各種邊界條件斜友,特殊情況下要制造極端狀態(tài)和意外狀態(tài)炸裆,比如網(wǎng)絡(luò)異常中斷、電源斷電等情況鲜屏。
3.一定要注意測(cè)試中的錯(cuò)誤集中發(fā)生現(xiàn)象烹看,這和程序員的編程水平和習(xí)慣有很大的關(guān)系。
4.對(duì)測(cè)試錯(cuò)誤結(jié)果一定要有一個(gè)確認(rèn)的過(guò)程洛史。一般有A測(cè)試出來(lái)的錯(cuò)誤惯殊,一定要有一個(gè)B來(lái)確認(rèn),嚴(yán)重的錯(cuò)誤可以召開(kāi)評(píng)審會(huì)進(jìn)行討論和分析也殖。
5.制定嚴(yán)格的測(cè)試計(jì)劃土思,并把測(cè)試時(shí)間安排得盡量寬松,不要希望在極短的時(shí)間內(nèi)完成一個(gè)高水平的測(cè)試忆嗜。
6.回歸測(cè)試的關(guān)聯(lián)性一定要引起充分的注意己儒,修改一個(gè)錯(cuò)誤而引起更多錯(cuò)誤出現(xiàn)的現(xiàn)象并不少見(jiàn)。
7.妥善保存一切測(cè)試過(guò)程文檔霎褐,意義是不言而喻的址愿,測(cè)試的重現(xiàn)性往往要靠測(cè)試文檔。
二冻璃、軟件的開(kāi)發(fā)模式
2.1線性模型與漸進(jìn)式模型
線性模型:最常見(jiàn)的“瀑布模型”响谓,基礎(chǔ)框架损合,但缺點(diǎn)在于“集成之日就是爆炸之日”。(立項(xiàng)分析-需求分析-設(shè)計(jì)-編碼-測(cè)試-維護(hù))很多企業(yè)使用后使用迭代進(jìn)行修改娘纷。
漸進(jìn)式模型:最常見(jiàn)的“螺旋模型”嫁审,(需求分析-風(fēng)險(xiǎn)分析-設(shè)計(jì)、編碼-測(cè)試赖晶、評(píng)審)律适,迭代開(kāi)發(fā)和增量開(kāi)發(fā)模式。
注意:每一次迭代原型出來(lái)后遏插,測(cè)試人員都需要從原型界面捂贿,系統(tǒng)主要功能,性能等方面對(duì)原型進(jìn)行評(píng)審胳嘲。
2.2迭代和增量的理解
三厂僧、軟件生命周期模型
軟件生命周期同任何事物一樣,一個(gè)軟件產(chǎn)品或軟件系統(tǒng)也要經(jīng)歷孕育了牛、誕生颜屠、成長(zhǎng)、成熟鹰祸、衰亡等階段甫窟,一般稱為軟件生命周期(軟件生存周期。軟件生命周期模型是指人們?yōu)殚_(kāi)發(fā)更好的軟件而歸納總結(jié)的軟件生命周期的典型實(shí)踐參考蛙婴。
3.1邊做邊改模型
許多產(chǎn)品都是使用“邊做邊改”模型來(lái)開(kāi)發(fā)的粗井。在這種模型中,既沒(méi)有規(guī)格說(shuō)明敬锐,也沒(méi)有經(jīng)過(guò)設(shè)計(jì)背传,軟件隨著客戶的需要一次又一次地不斷被修改呆瞻。
在這個(gè)模型中台夺,開(kāi)發(fā)人員拿到項(xiàng)目立即根據(jù)需求編寫程序,調(diào)試通過(guò)后生成軟件的第一個(gè)版本痴脾。在提供給用戶使用后颤介,如果程序出現(xiàn)錯(cuò)誤,或者用戶提出新的要求赞赖,開(kāi)發(fā)人員重新修改代碼滚朵,直到用戶滿意為止。
這是一種類似作坊的開(kāi)發(fā)方式前域,對(duì)編寫幾百行的小程序來(lái)說(shuō)還不錯(cuò)辕近,但這種方法對(duì)任何規(guī)模的開(kāi)發(fā)來(lái)說(shuō)都是不能令人滿意的,其主要問(wèn)題在于:
(1) 缺少規(guī)劃和設(shè)計(jì)環(huán)節(jié)匿垄,軟件的結(jié)構(gòu)隨著不斷的修改越來(lái)越糟移宅,導(dǎo)致無(wú)法繼續(xù)修改归粉;
(2) 忽略需求環(huán)節(jié),給軟件開(kāi)發(fā)帶來(lái)很大的風(fēng)險(xiǎn)漏峰;
(3) 沒(méi)有考慮測(cè)試和程序的可維護(hù)性糠悼,也沒(méi)有任何文檔,軟件的維護(hù)十分困難浅乔。
3.2瀑布模型
瀑布模型是最早出現(xiàn)的軟件開(kāi)發(fā)模型倔喂,在軟件工程中占有重要的地位,它提供了軟件開(kāi)發(fā)的基本框架靖苇。其過(guò)程是從上一項(xiàng)活動(dòng)接收該項(xiàng)活動(dòng)的工作對(duì)象作為輸入席噩,利用這一輸入實(shí)施該項(xiàng)活動(dòng)應(yīng)完成的內(nèi)容給出該項(xiàng)活動(dòng)的工作成果,并作為輸出傳給下一項(xiàng)活動(dòng)贤壁。同時(shí)評(píng)審該項(xiàng)活動(dòng)的實(shí)施班挖,若確認(rèn),則繼續(xù)下一項(xiàng)活動(dòng)芯砸;否則返回前面萧芙,甚至更前面的活動(dòng)。對(duì)于經(jīng)常變化的項(xiàng)目而言假丧,瀑布模型毫無(wú)價(jià)值双揪。
瀑布型簡(jiǎn)單地說(shuō)就是按照需求、設(shè)計(jì)包帚、編碼渔期、測(cè)試、軟件維護(hù)這個(gè)基本的順序來(lái)研發(fā)軟件渴邦,前面一個(gè)步驟不完成疯趟,后面的步驟不能開(kāi)始,否則問(wèn)題會(huì)滾到下個(gè)階段谋梭,帶來(lái)更多的問(wèn)題
優(yōu)點(diǎn):
1) 為項(xiàng)目提供了按階段劃分的檢查點(diǎn)
2)?[endif]當(dāng)前一階段完成后信峻,只需要去關(guān)注后續(xù)階段。
缺點(diǎn):
1)各個(gè)階段的劃分完全固定瓮床,階段之間產(chǎn)生大量的文檔盹舞,極大地增加了工作量。
2)由于開(kāi)發(fā)模型是線性的隘庄,用戶只有等到整個(gè)過(guò)程的末期才能見(jiàn)到開(kāi)發(fā)成果踢步,從而增加了開(kāi)發(fā)風(fēng)險(xiǎn)。
3)通過(guò)過(guò)多的強(qiáng)制完成日期和里程碑來(lái)跟蹤各個(gè)項(xiàng)目階段丑掺。
4)瀑布模型的突出缺點(diǎn)是不適應(yīng)用戶需求的變化获印。
3.3原型化模型
原型化模型的第一步是建造一個(gè)快速原型,實(shí)現(xiàn)客戶或未來(lái)的用戶與系統(tǒng)的交互街州,經(jīng)過(guò)和用戶針對(duì)原型的討論和交流兼丰,弄清需求以便真正把握用戶需要的軟件產(chǎn)品是什么樣子的绰咽。充分了解后,再在原型基礎(chǔ)上開(kāi)發(fā)出用戶滿意的產(chǎn)品地粪。
如圖所示:原型嚴(yán)格來(lái)說(shuō)不算一種軟件生命周期模型取募,它只是一種獲取需求的方法,在實(shí)際工作中該方法是相當(dāng)重要的方法蟆技。
模型要點(diǎn):瀑布和原型模型相結(jié)合玩敏,強(qiáng)調(diào)版本升級(jí)。
該模式的特點(diǎn)是一次性地獲取全部的需求质礼,然后做出分版本實(shí)現(xiàn)各需求的計(jì)劃旺聚,每個(gè)版本只實(shí)現(xiàn)一部分需求,通過(guò)多個(gè)版本逐步實(shí)現(xiàn)全部需求眶蕉,而每個(gè)版本可以認(rèn)為是一個(gè)“小瀑布”砰粹。
該模型的好處是可以盡快讓系統(tǒng)上線,讓客戶先使用部分功能造挽,盡早實(shí)現(xiàn)系統(tǒng)的價(jià)值碱璃。
該模型比較能符合實(shí)際的情況,我們往往也是通過(guò)多個(gè)版本來(lái)逐步實(shí)現(xiàn)全部需求饭入,但需求是不可能在一開(kāi)始就完全確定的嵌器,實(shí)際情況是往往只能確定80%,而后期通過(guò)各版本我們還會(huì)獲取更多的新需求以及需求調(diào)整谐丢。將此模型稍微調(diào)整后爽航,可以適用于大部分的實(shí)際項(xiàng)目。
3.4增量模型
增量模型也是原型化開(kāi)發(fā)方法乾忱。如圖所示
3.5螺旋模型
螺旋模型是一個(gè)演化軟件過(guò)程模型讥珍,將原型實(shí)現(xiàn)的迭代特征與線性順序(瀑布)模型中控制的和系統(tǒng)化的方面結(jié)合起來(lái)。使得軟件的增量版本的快速開(kāi)發(fā)成為可能窄瘟。在螺旋模型中衷佃,軟件開(kāi)發(fā)是一系列的增量發(fā)布。螺旋模型的整個(gè)開(kāi)發(fā)過(guò)程如圖所示寞肖。
圖中的螺旋線代表隨著時(shí)間推進(jìn)的工作進(jìn)展纲酗;開(kāi)發(fā)過(guò)程具有周期性重復(fù)的螺旋線形狀。4個(gè)象限分別標(biāo)志每個(gè)周期所劃分的4 個(gè)階段:制定計(jì)劃新蟆、風(fēng)險(xiǎn)分析、實(shí)施工程和客戶評(píng)估右蕊。螺旋模型要點(diǎn):統(tǒng)一了瀑布模型與原型模型琼稻,與增量模型相似,更強(qiáng)調(diào)風(fēng)險(xiǎn)分析饶囚。
1.軟件分多個(gè)版本開(kāi)發(fā)帕翻,每個(gè)版本就是一次螺旋鸠补。
2.每個(gè)版本按照這樣的順序進(jìn)行:
1)確定軟件目標(biāo),選取定實(shí)施方案嘀掸,弄清項(xiàng)目開(kāi)發(fā)的限制條件紫岩;(圖中左上象限)
2)分析所選取方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn)睬塌;(圖中右上象限)
3)實(shí)施軟件開(kāi)發(fā)泉蝌;(圖中右下象限)
4)評(píng)價(jià)開(kāi)發(fā)工作,提出修正建議揩晴,調(diào)整計(jì)劃勋陪。(圖中右下象限、左下象限)
3.需求不是一次獲取和實(shí)現(xiàn)的硫兰,通過(guò)多個(gè)螺旋來(lái)完善诅愚。
4.計(jì)劃也不是一次成型的,每次螺旋都需要調(diào)整劫映。
優(yōu)點(diǎn):
1)設(shè)計(jì)上很靈活违孝,可以在項(xiàng)目的各個(gè)階段進(jìn)行變更;
2)以小的分段來(lái)構(gòu)建大型系統(tǒng)泳赋,使成本計(jì)算變得簡(jiǎn)單容易等浊;(國(guó)企項(xiàng)目)
3)客戶始終參與每個(gè)階段的開(kāi)發(fā),保證了項(xiàng)目不偏離正確方向以及項(xiàng)目的可控性摹蘑;
4)隨著項(xiàng)目推進(jìn)筹燕,客戶始終掌握項(xiàng)目的最新信息 , 從而能夠和管理層有效地交互;
5)客戶認(rèn)可這種公司內(nèi)部的開(kāi)發(fā)方式帶來(lái)的良好的溝通和高質(zhì)量的產(chǎn)品衅鹿。
缺點(diǎn):
螺旋模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析撒踪,但要求許多客戶接受和相信這種分析,并做出相關(guān)反應(yīng)是不容易的大渤。
因此制妄,這種模型往往適應(yīng)于內(nèi)部的大規(guī)模軟件開(kāi)發(fā)。該模型建設(shè)周期長(zhǎng)泵三,而軟件技術(shù)發(fā)展比較快耕捞,所以經(jīng)常出現(xiàn)軟件開(kāi)發(fā)完畢后,和當(dāng)前的技術(shù)水平有了較大的差距烫幕,無(wú)法滿足當(dāng)前用戶需求俺抽。
3.6V模型
V模型的左邊下降的是開(kāi)發(fā)過(guò)程各階段,與此相對(duì)應(yīng)的是右邊上升的部分较曼,即各測(cè)試過(guò)程的各個(gè)階段磷斧。
V模型的優(yōu)點(diǎn)在于它非常明確地標(biāo)明了測(cè)試過(guò)程中存在的不同級(jí)別,并且清楚地描述了這些測(cè)試階段和開(kāi)發(fā)各階段的對(duì)應(yīng)關(guān)系。
1弛饭、需求分析階段對(duì)應(yīng)生成需求規(guī)格說(shuō)明書冕末,對(duì)應(yīng)測(cè)試生成系統(tǒng)測(cè)試方案,即為系統(tǒng)測(cè)試準(zhǔn)備的侣颂,該階段已經(jīng)完成了單元測(cè)試和集成測(cè)試档桃,主要是對(duì)軟件產(chǎn)品的功能與非功能進(jìn)行測(cè)試,幾乎不測(cè)試代碼憔晒,所以測(cè)試方法以黑盒為主藻肄;
2、概要設(shè)計(jì)階段對(duì)應(yīng)生成概要設(shè)計(jì)說(shuō)明書丛晌,對(duì)應(yīng)測(cè)試生成集成測(cè)試方案仅炊,該階段已完成單元測(cè)試,是將各個(gè)功能模塊組裝起來(lái)進(jìn)行的測(cè)試澎蛛,所以也叫組裝測(cè)試抚垄。主要看模塊調(diào)用是否正常,接口是否可用谋逻,數(shù)據(jù)傳輸是否正確等呆馁,所以用到的測(cè)試方法幾乎是白盒的方法,如路徑覆蓋毁兆,條件組合覆蓋等浙滤;
3、詳細(xì)設(shè)計(jì)階段對(duì)應(yīng)生成詳細(xì)設(shè)計(jì)說(shuō)明書气堕,對(duì)應(yīng)測(cè)試生成單元測(cè)試方案纺腊,該階段是開(kāi)發(fā)人員編碼后的第一個(gè)測(cè)試階段,是對(duì)開(kāi)發(fā)出來(lái)的單獨(dú)模塊進(jìn)行測(cè)試茎芭,以確保每一個(gè)功能模塊的功能正常揖膜,可以構(gòu)建樁模塊和驅(qū)動(dòng)模塊來(lái)回調(diào)用,方法也是以白盒為主梅桩。
4壹粟、白盒測(cè)試的準(zhǔn)則是盡可能覆蓋程序內(nèi)部的邏輯結(jié)構(gòu),黑盒則是盡可能覆蓋所有的輸入輸出接口宿百,包括文檔等一些靜態(tài)的測(cè)試趁仙。除常用的測(cè)試方法外,仍需補(bǔ)充大范圍的隨機(jī)測(cè)試垦页,盡可能達(dá)到覆蓋率100%雀费。
V模型的缺陷及解決思路
V模型僅僅把測(cè)試過(guò)程作為在需求分析、系統(tǒng)設(shè)計(jì)及編碼之后的一個(gè)階段外臂,忽視了測(cè)試對(duì)需求分析,系統(tǒng)設(shè)計(jì)的驗(yàn)證坐儿,需求的滿足情況一直到后期的驗(yàn)收測(cè)試才被驗(yàn)證律胀。
解決的思路是在旱,當(dāng)一個(gè)軟件開(kāi)發(fā)的時(shí)候晃择,研發(fā)人員和測(cè)試人員需要同時(shí)工作秘通,測(cè)試在軟件做需求分析的同時(shí)就會(huì)有測(cè)試用例的跟蹤,這樣逛漫,可以盡快找出程序錯(cuò)誤和需求偏離,從而更高效的提高程序質(zhì)量赘艳,最大可能的減少成本酌毡,同時(shí)滿足用戶的實(shí)際軟件需求。
3.7W模型
相對(duì)于V模型蕾管,W模型更科學(xué)枷踏。W模型是V模型的發(fā)展,強(qiáng)調(diào)的是測(cè)試伴隨著整個(gè)軟件開(kāi)發(fā)周期掰曾,而且測(cè)試的對(duì)象不僅僅是程序旭蠕,需求、功能和設(shè)計(jì)同樣要測(cè)試旷坦。測(cè)試與開(kāi)發(fā)是同步進(jìn)行的掏熬,從而有利于盡早地發(fā)現(xiàn)問(wèn)題。
四秒梅、敏捷開(kāi)發(fā)和測(cè)試
敏捷開(kāi)發(fā)
敏捷開(kāi)發(fā)是針對(duì)傳統(tǒng)的瀑布開(kāi)發(fā)模式的弊端而產(chǎn)生的一種新的開(kāi)發(fā)模式旗芬,目標(biāo)是提高開(kāi)發(fā)效率和響應(yīng)能力。敏捷開(kāi)發(fā)以用戶的需求進(jìn)化為核心捆蜀,采用迭代疮丛、循序漸進(jìn)的方法進(jìn)行軟件開(kāi)發(fā)。
由于版本節(jié)奏比較快辆它,開(kāi)發(fā)與測(cè)試幾乎并行誊薄,一個(gè)版本周期內(nèi)會(huì)有兩版在推動(dòng),也就是上圖中提到的波次發(fā)布娩井,波次發(fā)布用于嘗試新加入的功能暇屋,做小范圍快速的開(kāi)發(fā),驗(yàn)證和發(fā)布洞辣,為下個(gè)大版本的功能做實(shí)驗(yàn)和調(diào)研咐刨。快速發(fā)版的需求要求測(cè)試快速響應(yīng)扬霜,敏捷測(cè)試模式適應(yīng)項(xiàng)目需求定鸟。
模型優(yōu)勢(shì):
工作任務(wù)劃分清晰,工作效率較高
與開(kāi)發(fā)和產(chǎn)品溝通緊密著瓶,團(tuán)隊(duì)協(xié)作性強(qiáng)
測(cè)試介入到整個(gè)項(xiàng)目的所有會(huì)議中联予,對(duì)整體版本信息情況把控全面
迅速占有市場(chǎng),添加新的功能,吸引更多用戶使用沸久,提升用戶體驗(yàn)度
模型的缺陷:
模塊提交較快季眷,測(cè)試時(shí)較有壓迫感
項(xiàng)目規(guī)劃要合理,不然測(cè)試時(shí)會(huì)出現(xiàn)復(fù)測(cè)的現(xiàn)象卷胯,加大工作量
五子刮、質(zhì)量模型
5.1保密安全性:
軟件系統(tǒng)保護(hù)信息和數(shù)據(jù)的能力。
Ⅰ窑睁、防止未得到授權(quán)的人或系統(tǒng)訪問(wèn)相關(guān)的信息或數(shù)據(jù)
Ⅱ挺峡、保證得到授權(quán)的人或系統(tǒng)能正常訪問(wèn)相關(guān)的信息或數(shù)據(jù)。
不同的系統(tǒng)對(duì)于安全性的需求差別很大
常見(jiàn)的安全性測(cè)試:
⑴用戶驗(yàn)證:登錄密碼驗(yàn)證担钮、IP地址訪問(wèn)限制等 sql注入
用戶超時(shí):登錄超過(guò)30分鐘橱赠,重新登錄(安全設(shè)置,cookie過(guò)期時(shí)間30分鐘)
⑵用戶權(quán)限管理:驗(yàn)證低級(jí)別用戶是否具有了高級(jí)別用戶的權(quán)限箫津,各級(jí)別用戶權(quán)限都得到了實(shí)現(xiàn)狭姨。
⑶系統(tǒng)數(shù)據(jù)的保護(hù):對(duì)例如系統(tǒng)文件、用戶密碼文件等進(jìn)行隱藏鲤嫡、密碼驗(yàn)證送挑、內(nèi)容加密、備份暖眼。
5.2加密惕耕、解密:
在計(jì)算機(jī)通訊中,采用密碼技術(shù)將信息隱蔽起來(lái)诫肠,再將隱蔽后的信息傳輸出去司澎,使信息在傳輸過(guò)程中即使被竊取或截獲,竊取者也不能了解信息的內(nèi)容栋豫,從而保證信息傳輸?shù)陌踩?/p>
token
Cookie與session的區(qū)別:
1. cookie是明文傳輸 ?session的是隱藏專屬
2.Cookie是存在與本機(jī) session是存在與服務(wù)器
3.Cookie的大小是限制在4K ?session大小限制在5M
問(wèn):
性能測(cè)試的標(biāo)準(zhǔn):
吞吐量挤安,響應(yīng)時(shí)間,資源使用率內(nèi)存使用率cpu的使用率丧鸯,電量的損耗蛤铜,流量使用,成功率
六丛肢、測(cè)試部門的組織結(jié)構(gòu)
5個(gè)開(kāi)發(fā)(java) 1個(gè)測(cè)試 ?2個(gè)移動(dòng)(AND IOS) 1 個(gè)前端 ??1個(gè)產(chǎn)品/項(xiàng)目
按需求來(lái)分類:1個(gè)組長(zhǎng): 制定測(cè)試計(jì)劃 和 對(duì)測(cè)試用例的評(píng)審 編寫測(cè)試報(bào)告和測(cè)試總結(jié)
1個(gè)功能測(cè)試: 按照測(cè)試用例進(jìn)行點(diǎn)點(diǎn)的人
1個(gè)性能測(cè)試/接口測(cè)試: 滿足需求文檔上的性能指標(biāo)
1個(gè)自動(dòng)化測(cè)試python uI自動(dòng)化 ?接口自動(dòng)化 ?單元自動(dòng)化
Java ??????
按項(xiàng)目模塊劃分:pc移動(dòng)
具體一級(jí)菜單欄按底部導(dǎo)航欄
七围肥、測(cè)試工具側(cè)種類
文檔工具:word ?excel
Bug管理工具:禪道jira
抓包工具:?charlesfiddler ?wineshark
a. 抓包b.模擬弱網(wǎng)測(cè)試c.斷點(diǎn)替換 d.過(guò)濾 e:壓力測(cè)試
性能工具:jmeter ?Loadrunner(對(duì)業(yè)務(wù)場(chǎng)景測(cè)試)
命令:Linux ?adbMonkey
編程語(yǔ)言:python
自動(dòng)化; ?selenium appnium(ui自動(dòng)化) pytest (測(cè)試用例 單元測(cè)試) ?innerHtml ?(發(fā)送測(cè)試報(bào)告) ??alluer
數(shù)據(jù)庫(kù)mysql
測(cè)試工具的種類:
文檔工具:word ?excel
Bug管理工具:禪道jira
抓包工具:?charlesfiddler ?wineshark
a.抓包b.模擬弱網(wǎng)測(cè)試c.斷點(diǎn)替換 d.過(guò)濾 e:壓力測(cè)試
性能工具:jmeter ?Loadrunner(對(duì)業(yè)務(wù)場(chǎng)景測(cè)試)
命令:Linux ?adbMonkey
編程語(yǔ)言:python
自動(dòng)化; ?selenium appnium(ui自動(dòng)化) pytest (測(cè)試用例 單元測(cè)試) ?innerHtml ?(發(fā)送測(cè)試報(bào)告) ??alluer
數(shù)據(jù)庫(kù)mysql
Bug管理工具: ?禪道 Jary
自動(dòng)化selenium appnium(ui自動(dòng)化) pytest (測(cè)試用例 單元測(cè)試) ?innerHtml ?(發(fā)送測(cè)試報(bào)告)
性能測(cè)試工具jmeter Loadrunner、
抓包工具Fiddler charles (弱網(wǎng)測(cè)試的)
接口工具postman
錄制腳本bodyboy ?jmeter
云測(cè)騰訊云模擬不同的移動(dòng)端或者是web瀏覽器
命令Linux ?adb ?monkey
數(shù)據(jù)庫(kù)myql
語(yǔ)言python