保存Web應(yīng)用程序中各個(gè)層的歷史性能數(shù)據(jù),有利于快速確定問(wèn)題所在位置。典型的三層架構(gòu)包括Web層、應(yīng)用層和數(shù)據(jù)層。性能問(wèn)題有可能出現(xiàn)在任一層,因而此舉會(huì)增加排查問(wèn)題的難度。通過(guò)保存各個(gè)層的性能數(shù)據(jù),我們就有可能在最終用戶遇到問(wèn)題之前就檢測(cè)并解決掉,或者,更關(guān)鍵的是,在這些問(wèn)題影響到網(wǎng)站或應(yīng)用中與收益相關(guān)的功能之前就將它們排除。Web開(kāi)發(fā)人員必須與運(yùn)維人員一起協(xié)作,監(jiān)控各層的運(yùn)行狀況,確定各層的測(cè)試方式應(yīng)該是兩個(gè)團(tuán)隊(duì)的共同職責(zé)。例如,Web開(kāi)發(fā)人員可能負(fù)責(zé)保存應(yīng)用層和Web層的...
在任何網(wǎng)站上,在測(cè)試前端時(shí)都必須模擬真實(shí)用戶在網(wǎng)站上執(zhí)行真實(shí)功能的情形。這就是所謂的真實(shí)瀏覽器測(cè)試,它不同于使用工具( Apache-Bench或Jmeter)執(zhí)行的合成測(cè)試,后者只是模擬網(wǎng)站前端的流量負(fù)載。真實(shí)瀏覽器需要一定的時(shí)間才能構(gòu)造出文檔對(duì)象模型( DOM),這其中包括解析JavaScript, 然后再渲染網(wǎng)頁(yè)。Apache-Bench和Jmeter等工具無(wú)法測(cè)試真實(shí)瀏覽器在這些方面的加載過(guò)程。...
測(cè)試對(duì)象取決于Web應(yīng)用程序當(dāng)前所處的軟件開(kāi)發(fā)生命周期。在開(kāi)發(fā)早期,我們可能需要直接測(cè)試軟件的各個(gè)獨(dú)立組件,從而更好地理解各個(gè)組件的運(yùn)行方式。這是因?yàn)椋谝豢頦eb應(yīng)用程序中,實(shí)際上會(huì)有多個(gè)Web層參與到頁(yè)面的顯示與最終用戶請(qǐng)求的響應(yīng)中。...
安全至關(guān)重要,但在Web應(yīng)用程序測(cè)試中經(jīng)常被忽視。它經(jīng)常被視為測(cè)試過(guò)程中不必要的部分,這是不正確的。將漏洞測(cè)試整合到測(cè)試和持續(xù)集成周期中,我們不僅能夠發(fā)現(xiàn)安全漏洞,也能夠發(fā)現(xiàn)性能問(wèn)題、功能問(wèn)題和其他不可預(yù)期的Bug否則無(wú)法檢測(cè)到這些Bug,它們甚至在應(yīng)用程序的真實(shí)應(yīng)用中也極少出現(xiàn)。...
Web測(cè)試可以由負(fù)責(zé)開(kāi)發(fā)某個(gè)應(yīng)用程序的開(kāi)發(fā)人員編寫,也可以由其他工程師編寫,主要就是編寫功能測(cè)試。運(yùn)維人員甚至可以使用Selenium測(cè)試框架( selenium.org)這樣的工具來(lái)執(zhí)行真實(shí)測(cè)覽器的自動(dòng)監(jiān)控或測(cè)試。這里的關(guān)鍵是,使用真實(shí)瀏覽器測(cè)試Web應(yīng)用程序,Web測(cè)試的準(zhǔn)確性和真實(shí)性都會(huì)好于編寫代碼發(fā)起HTP請(qǐng)求的人工測(cè)試,而且后者還無(wú)法在瀏覽器中解析和渲染 Javascript.。用戶使用Web瀏覽器訪問(wèn)網(wǎng)站,所以不使用瀏覽器,就無(wú)法在測(cè)試中產(chǎn)生最準(zhǔn)確的結(jié)果。...
TDD的學(xué)習(xí)難度很大。我認(rèn)為BD在很多方面都是對(duì)TD0的科充和修 BDD是在TDD出現(xiàn)5年之后才面市的,BDD是TDD的延續(xù),因?yàn)檎DD修正了我們對(duì)于例試的定義和命名,還對(duì)編寫這些測(cè)試的方法以及適宜人員提出了一定的建設(shè)性意見(jiàn)。在過(guò)去六七年中,BDD一直在向前發(fā)展一也可能有8年時(shí)間了,我認(rèn)為是從200年開(kāi)始的。所以,對(duì)于我而育,現(xiàn)在BD更多是關(guān)于利益相關(guān)者、測(cè)試人員、程序員和用戶之間的交流。...
測(cè)試使我們能夠根據(jù)需要來(lái)修改軟件。在我們的環(huán)境中,客戶都是商人(手握鈔票),他們總會(huì)要求很多功能和特性,甚至一天會(huì)提幾次要求,因此我們不得不做大量的小修改。測(cè)試可以幫助我們完成這些修改,并且保證不搞壞什么東西。也就是說(shuō),所有工作都依賴于測(cè)試帶來(lái)的價(jià)值。有時(shí)候,測(cè)試很有難度,也可能變得很麻煩。如果想要快速完成軟件的修改,那么就不太可能測(cè)試所有的方面,而且維護(hù)這些測(cè)試也很困難。例如,我的上一家公司就非常注重測(cè)試,因?yàn)樗麄兊能浖粫?huì)經(jīng)常變化。但是,另一方面,我們也無(wú)法快速獲得反饋。...
持續(xù)負(fù)載測(cè)試(浸泡測(cè)試)是指在一段較長(zhǎng)時(shí)間里用不同的負(fù)載持續(xù)測(cè)試網(wǎng)站或應(yīng)用程序。這種方法可以在應(yīng)用程序正式上線之前發(fā)現(xiàn)有問(wèn)題。一般只有在軟件發(fā)生重大變化或重大版本發(fā)布時(shí),才需要執(zhí)行持續(xù)負(fù)載測(cè)試,測(cè)試的時(shí)間可能持續(xù)24小時(shí)或者幾天。...
網(wǎng)站最大容量測(cè)試(壓力測(cè)試)是指給最終用戶服務(wù)施加一定的負(fù)載確定Web應(yīng)用程序或網(wǎng)站崩潰和停止工作的臨界點(diǎn)。這個(gè)方法是容量規(guī)劃和確定應(yīng)用程序可承受壓力或負(fù)載的重要方法。這是測(cè)試環(huán)境內(nèi)部經(jīng)常會(huì)執(zhí)行的合成測(cè)試。萬(wàn)萬(wàn)不可在生產(chǎn)網(wǎng)站上執(zhí)行最大容量測(cè)試,因?yàn)樗赡軙?huì)導(dǎo)致網(wǎng)站停止響應(yīng),從而影響業(yè)務(wù)收益。最大容量測(cè)試有可能發(fā)現(xiàn)代碼問(wèn)題。負(fù)載相對(duì)較低或會(huì)話數(shù)量相對(duì)較少的應(yīng)用程序也可能會(huì)出現(xiàn)一些功能問(wèn)題,只有解決了這些問(wèn)題,我們才能繼續(xù)執(zhí)行后續(xù)的測(cè)試。...
保證軟件質(zhì)量的責(zé)任并不專屬于某個(gè)部門。只要使用一些常用的工具集,Web開(kāi)發(fā)人員、運(yùn)維工程師和QA工程師就都能執(zhí)行各種測(cè)試一所有利益相關(guān)者都應(yīng)該參與到軟件質(zhì)量的保證過(guò)程中。這就要求將測(cè)試整合到測(cè)試框架和持續(xù)集成過(guò)程中,或者用一些方法實(shí)現(xiàn)自動(dòng)化測(cè)試,這樣才能快速高效地檢查Web或應(yīng)用程序的性能。...