① web測試方法有哪些測試技術又有哪些軟體測試工具又有哪些呢,優劣勢分別是什麼
web網站本質上帶有web伺服器和客戶端瀏覽器的C/S結構的應用程序。主要考慮web頁面、TCP/IP通訊、Internet鏈接、防火牆和運行在 web頁面上的一些程序(例如,applet、javascrīpt、應用程序插件),以及運行在伺服器端的應用程序(例如,CGI腳本、資料庫介面、日誌程序、動態頁面產生器,asp等)。另外,因為伺服器和瀏覽器類型很多,不同版本差別很小,但是表現出現的結果卻不同,連接速度以及日益迅速的技術和多種標准、協議。使得web測試成為一項正在不斷研究的課題。其它要考慮的如下:
1、伺服器上期望的負載是多少(例如,每單位時間內的點擊量),在這些負載下應該具有什麼樣的性能(例如,伺服器反應時間,資料庫查詢時間)。性能測試需要什麼樣的測試工具呢(例如,web負載測試工具,其它已經被採用的測試工具,web 自動下載工具,等等)?
2、系統用戶是誰?他們使用什麼樣的瀏覽器?使用什麼類型的連接速度?他們是在公司內部(這樣可能有比較快的連接速度和相似的瀏覽器)或者外部(這可能有使用多種瀏覽器和連接速度)?
3、在客戶端希望有什麼樣的性能(例如,頁面顯示速度?動畫、applets的速度等?如何引導和運行)?
4、允許網站維護或升級嗎?投入多少?
5、需要考慮安全方面(防火牆,加密、密碼等)是否需要,如何做?怎麼能被測試?需要連接的Internet網站可靠性有多高?對備份系統或冗餘鏈接請求如何處理和測試?web網站管理、升級時需要考慮哪些步驟?需求、跟蹤、控制頁面內容、圖形、鏈接等有什麼需求?
6、需要考慮哪種HTML規范?多麼嚴格?允許終端用戶瀏覽器有哪些變化?
7、頁面顯示和/或圖片占據整個頁面或頁面一部分有標准或需求嗎?
8、內部和外部的鏈接能夠被驗證和升級嗎?多久一次?
9、產品系統上能被測試嗎?或者需要一個單獨的測試系統?瀏覽器的緩存、瀏覽器操作設置改變、撥號上網連接以及Internet中產生的「交通堵塞」問題在測試中是否解決,這些考慮了嗎?
10、伺服器日誌和報告內容能定製嗎?它們是否被認為是系統測試的主要部分並需要測試嗎?
11、CGI程序、applets、javascrīpts、ActiveX 組件等能被維護、跟蹤、控制和測試嗎?
測試技術大體分為黑盒和白盒測試,當然有的還用灰盒測試。
而功能、性能、用戶界面、兼容性、安全測試都屬於測試方法。大部分的測試是手動的,用基本的辦公軟體就可以解決;部分白盒測試需要了解程序內部的語句、數據結構和演算法邏輯。
現在企業認同的高名氣軟體就是功能測試工具:QTP 性能測試工具:LOADRUNNER
bug追蹤、記錄工具:Bugfree、Bugzilla、TD等,用一個即可。
而QTP和LOADRUNNER是性能非常龐大的軟體,如果可以熟練的分析出錄制的內容,那麼就入門了。可以運用到工作上。
說道這些軟體的劣勢,就是實現自動化需要這個團隊購買正版軟體、組織和培訓組內成員進行新知識的培訓。這些都是成本的一部分。
② 開發轉測試需要知道些什麼給點建議
正常的測試人員,從技術棧上來講,進階的路線一般都是功能測試-->自動化測試-->測試開發-->全棧。
先學自動化測試:稍微學一下測試開源框架應該就能在測試開發崗位上工作。也就是寫一些簡單的測試腳本和框架,其難度比一般開發人員開發一個小web應用更低。
關鍵點是:記住你是開發轉的,你的開發技能一定得用上。必須找一個用得上開發技能,需要你寫代碼的
至於性能測試:
1.腳本編寫只需要花一個下午學習一個常用工具,就能編出來。
2.性能測試策略,即使你不會,你們組里肯定有人會。一句話總結歸根結底就是在不同負載下運行測試腳本持續不同的時間,並觀察待測應用及伺服器的性能。
3.調優,一般是多個角色一起做。不會讓測試人員挑大樑來調優。
③ 白盒測試,灰盒測試和黑盒測試的區別
白盒測試要看程序的運算過程,黑盒測試只看結果,灰盒測試介於兩者之間
④ 如何檢測一個網站是否有安全漏洞
掃描網站漏洞是要用專業的掃描工具,下面就是介紹幾種工具
1. Nikto
這是一個開源的Web伺服器掃描程序,它可以對Web伺服器的多種項目進行全面的測試。其掃描項目和插件經常更新並且可以自動更新。Nikto可以在盡可能短的周期內測試你的Web伺服器,這在其日誌文件中相當明顯。不過,如果你想試驗一下,它也可以支持 LibWhisker的反IDS方法。不過,並非每一次檢查都可以找出一個安全問題,雖然多數情況下是這樣的。有一些項目是僅提供信息類型的檢查,這種檢查可以查找一些並不存在安全漏洞的項目,不過Web管理員或安全工程師們並不知道。
2. Paros proxy
這是一個對Web應用程序的漏洞進行評估的代理程序,即一個基於Java的web代理程序,可以評估Web應用程序的漏洞。它支持動態地編輯/查看 HTTP/HTTPS,從而改變cookies和表單欄位等項目。它包括一個Web通信記錄程序,Web圈套程序,hash 計算器,還有一個可以測試常見的Web應用程序攻擊的掃描器。
3. WebScarab:
它可以分析使用HTTP和HTTPS協議進行通信的應用程序,WebScarab可以用最簡單地形式記錄它觀察的會話,並允許操作人員以各種方式觀查會話。如果你需要觀察一個基於HTTP(S)應用程序的運行狀態,那麼WebScarabi就可以滿足你這種需要。不管是幫助開發人員調試其它方面的難題,還是允許安全專業人員識別漏洞,它都是一款不錯的工具。
4. WebInspect:
這是一款強大的Web應用程序掃描程序。SPI Dynamics的這款應用程序安全評估工具有助於確認Web應用中已知的和未知的漏洞。它還可以檢查一個Web伺服器是否正確配置,並會嘗試一些常見的 Web攻擊,如參數注入、跨站腳本、目錄遍歷攻擊等等。
5. Whisker/libwhisker :
Libwhisker是一個Perla模塊,適合於HTTP測試。它可以針對許多已知的安全漏洞,測試HTTP伺服器,特別是檢測危險CGI的存在。 Whisker是一個使用libwhisker的掃描程序。
6. Burpsuite:
這是一個可以用於攻擊Web應用程序的集成平台。Burp套件允許一個攻擊者將人工的和自動的技術結合起來,以列舉、分析、攻擊Web應用程序,或利用這些程序的漏洞。各種各樣的burp工具協同工作,共享信息,並允許將一種工具發現的漏洞形成另外一種工具的基礎。
7. Wikto:
可以說這是一個Web伺服器評估工具,它可以檢查Web伺服器中的漏洞,並提供與Nikto一樣的很多功能,但增加了許多有趣的功能部分,如後端 miner和緊密的Google集成。它為MS.NET環境編寫,但用戶需要注冊才能下載其二進制文件和源代碼。
8. Acunetix Web Vulnerability Scanner :
這是一款商業級的Web漏洞掃描程序,它可以檢查Web應用程序中的漏洞,如sql注入、跨站腳本攻擊、身份驗證頁上的弱口令長度等。它擁有一個操作方便的圖形用戶界面,並且能夠創建專業級的Web站點安全審核報告。
9. Watchfire AppScan:
這也是一款商業類的Web漏洞掃描程序。AppScan在應用程序的整個開發周期都提供安全測試,從而測試簡化了部件測試和開發早期的安全保證。它可以掃描許多常見的漏洞,如跨站腳本攻擊、HTTP響應拆分漏洞、參數篡改、隱式欄位處理、後門/調試選項、緩沖區溢出等等。
10. N-Stealth:
N-Stealth是一款商業級的Web伺服器安全掃描程序。它比一些免費的Web掃描程序,如Whisker/libwhisker、 Nikto等的升級頻率更高。還要注意,實際上所有通用的VA工具,如Nessus, ISS Internet Scanner, Retina, SAINT, Sara等都包含Web 掃描部件。N-Stealth主要為Windows平台提供掃描,但並不提供源代碼。
⑤ 什麼叫灰盒測試
黑盒測試、白盒測試和灰盒測試的基本概念
1. 黑盒測試
黑盒測試也稱功能測試或數據驅動測試,它是在已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能打開的黑盆子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序介面進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數鋸而產生正確的輸出信息,並且保持外部信息(如資料庫或文件)的完整性。
黑盒測試方法主要有等價類劃分、邊值分析、因—果圖、錯誤推測等,主要用於軟體確認測試。"黑盒"法著眼於程序外部結構、不考慮內部邏輯結構、針對軟體界面和軟體功能進行測試。"黑盒"法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。
2. 白盒測試
白盒測試也稱結構測試或邏輯驅動測試,它是知道產品內部工作過程,可通過測試來檢測產品內部動作是否按照規格說明書的規定正常進行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用於軟體驗證。
"白盒"法全面了解程序內部邏輯結構、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程序的邏輯著手,得出測試數據。貫穿程序的獨立路徑數是天文數字。但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程序違反了設計規范,即程序本身是個錯誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。第三,窮舉路徑測試可能發現不了一些與數據相關的錯誤。
3. 灰盒測試
灰盒測試,確實是介於二者之間的,可以這樣理解,灰盒測試關注輸出對於輸入的正確性,同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是通過一些表徵性的現象、事件、標志來判斷內部的運行狀態,有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要採取這樣的一種灰盒的方法。
灰盒測試結合了白盒測試盒黑盒測試的要素.它考慮了用戶端、特定的系統知識和操作環境。它在系統組件的協同性環境中評價應用軟體的設計。
灰盒測試由方法和工具組成,這些方法和工具取材於應用程序的內部知識盒與之交互的環境,能夠用於黑盒測試以增強測試效率、錯誤發現和錯誤分析的效率。
灰盒測試涉及輸入和輸出,但使用關於代碼和程序操作等通常在測試人員視野之外的信息設計測試。
----------------------------------------------------------------------------------------
⑥ Jmeter的優點是什麼它和LoadRunner有什麼本質區別
1、jmeter的架構和loadrunner原理一樣,都是通過中間代理,監控和收集並發客戶端發出的指令,把他們生成腳本,再發送到應用伺服器,再監控伺服器反饋結果的一個過程;
2、分布式中間代理功能在jmeter中也有,這個分頁式代理是指可設置多台代理在不同PC中,通過遠程進行控制,即通過使用多台機器運行的謂的agant來分擔load generator自身的壓力,並借引來獲取更大的並發用戶數,loadrunner也有此功能;
3、jmeter安裝簡單,只需要解壓jmeter文件包到C盤上就可以了,不用安裝,要是你想執行調試測試腳本,前提是:裝上jdk和netbean插件,而loadrunner安裝包有1G多,在一台P3.0,1G內存的PC上安裝要一個多小時,要是裝過舊的盜版還不能再裝新版,解決辦法倒是有,但麻煩且花時間;
4、Jmeter沒有IP欺騙功能,IP欺騙是指在一台PC上多個IP地址分配給並發用戶,這個功能對於模擬較真實的用戶環境來說,是較有用,loadrunner有此功能;
5、jmeter也提供了一個利用本地proxy server(代理伺服器)來錄制生成測試腳本的功能,但是這個功能並不好用,測試對象的個別參數要手工增加上去,還得附帶裝個IE代理,如 GoogleToolbarDownloader這些插件來捕捉參數,但是有一個工具badbody,利用這個工具可以錄制操作,然後選擇將腳本保存為jmeter腳本,然後利用jmeter可以打開並修改腳本;
6、Jmeter的報表較少,對於要分析測試性能不足作為依據。如要知道資料庫伺服器或應用程序服務的cpu,money等參數,還得在相關伺服器上另外寫腳本記錄伺服器的性能;
7、jmeter做性能測試,主要是通過增加線程的數目,或者是設置循環次數來增加並發用戶,而loadrunner可以通過在場景中選擇要設置什麼樣的場景,然後選擇虛擬用戶數;
8、jmeter可以通過邏輯控制器實現復雜的測試行為,相當於loadrunner中的測試場景;
9、jmeter可以做web程序的功能測試,利用jmeter中的樣本,可以做灰盒測試,loadrunner主要用來做性能測試;
10、jmeter是開源的,但是使用的人較少,網路上相關資料不全面,需要自己去揣摩,而loadrunner是商業軟體,如果是正版本,有技術支持,同時,網路上的資料相當多;
11、Jmeter的腳本修改,主要是針對jmeter中各個部件的熟悉程序,已經相關的一些協議的掌握情況,而不依賴於編程,而loadrunner除了復雜的場景設置外,還需要掌握函數,修改腳本。
⑦ 怎樣搭建web項目測試環境
測試環境的搭建是一名合格QA必須具備的技能。下面,結合CI和CD兩種不同軟體生產實踐,總結一下如何從零開始部署一套web集成測試環境。
1.伺服器准備。根據項目和使用的中間件的規模,准備好一個或多個資源配置能夠滿足要求的伺服器,一般選用linux下 centos的某個發行版作為伺服器。
2.安裝資料庫、完成資料庫表的建立。這里以開源的mysql為例。
Yum方式安裝msyql,並啟動mysql服務。(Yum的安裝可以參考http://blog.csdn.net/iamhuanggua/article/details/60140867)
yuminstall -y mysql-server mysql mysql-devel
創建資料庫和建表。規范的的系統,一般都保留有現成的SQL腳本,執行腳本就可以完成資料庫和表的建立。
3.安裝和配置JDK、tomcat、nginx…
安裝JDK。Yum 方式安裝最新版JDK:yum install JDK。
安裝tomcat。官網下載tomcat,解壓。
wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.75/bin/apache-tomcat-7.0.75-linux-x64.zip
安裝和配置 nginx。官網下載nginx,解壓後,修改conf/nginx.conf配置請求轉發規則。
4.安裝持續集成工具jenkins.
Jenkins就是一個web服務,只需要從官方下載jenkins的war包,部署到web容器tomcat的webapp目錄下,啟動tomcat服務,就可以在瀏覽器端輸入IP和埠號(例如:部署在本機上可以通過 localhost:8080/jenkins 進行訪問)使用了。
5.配置一個Jenkins job用於編譯、打包產品、部署到測試環境
5.1 配置job完成編譯和打包。編譯打包的Jenkinsjob的配置比較簡單,可以自行網路。
5.2 在部署web服務的機器上,找一個目錄,寫一個shell腳本,拷貝jenkins job打出來的包到web伺服器的部署目錄下,並重啟服務。如果部署jenkins 和部署web服務的機器不是同一台,需要通過用戶名密碼或者建立linux機器之間的信任關系後,通過scp遠程拷貝。
5.3 在5.1的job中,增加「構建後操作」,構建後執行(或遠程執行)5.2中編寫的sh腳本。
6.配置一個或多個Jenkins job 用來完成一系列測試(包括但不限於UI自動化、介面自動化、安全測試等)
測試job的構建方式選擇步驟五中配置的job完成後觸發。到此為此,持續集成的工作就完成了。
7.從CI到CD——配置一個Jenkins ob 完成生產環境部署
如果所在組織的持續集成能力較高,在實施持續部署(Continous Deployment),就還需要配置一個jenkins job在所有測試job都通過後觸發部署生產包到生產環境。部分用戶群較大的產品還需要配置灰度發布。
⑧ 有沒有用Java寫的輕量級開源的分布式存儲系統
一個輕量級分布式KV存儲系統。
如果用K記錄文件路徑和文件名,用V記錄文件內容,就是一個輕量級分布式小文件系統。
至於大文件,幾乎一定是HDFS這種有元數據服務中心(NameNode)架構的。