軟件測試人員的進擊

軟件失敗的術語:

        缺點、誤差、故障、失敗、問題、矛盾、錯誤、特殊、事件、缺陷、異常。。。程序員

首先要認識一個東西叫:產品說明書:編程

        知足下列五個規則之一,便可以稱做,發生了一個軟件缺陷:編程語言

                一、軟件未實現產品說明書要求的功能工具

                二、軟件出現了成品說明書指明不該該出現的錯誤測試

                三、軟件實現了產品說明書中未說起到的功能編碼

                四、軟件爲實現產品說明書雖未說起,但應該實現的目標spa

                五、軟件難以理解,不易使用,運行緩慢,從測試人員的角度,最終用戶會認爲很差設計

爲何會出現軟件缺陷:

            產品說明書成爲形成軟件缺陷的罪魁禍首,在許多狀況下,說明書沒有寫,或者寫的不夠全面,常常更改,或者整個開發小組沒有更好的溝通。第二缺陷,來源是設計,這是程序員規劃軟件的過程,產生缺陷的緣由與產品說明書同樣,隨意、易變,溝通不足。事件

軟件測試員究竟要作些什麼?內存

            軟件測試員的目標就是發現軟件缺陷

            儘量早的找出軟件缺陷

軟件測試人員應該具有的素質:

    1.他們喜歡拿到新的軟件,安裝到本身的機器上,觀看結果

    2.善於發現問題的緣由,喜歡解謎

    3.不會放過任何蛛絲馬跡,出現一次的BUG,必然不會輕易放過,想盡一切可能的去發現它

    4.具備創造性,想出富有創意,甚至超常的手段來尋找缺陷

    5.判斷準確,要確保看到的問題,是否真正的存在缺陷

    6.知道如何冷靜的和程序員溝通,告訴他,你的程序有BUG

    7.善於說服,有一些問題,被認爲不重要,不用修復,測試人員要說明爲什麼必須修復,並推動缺陷的修復

 

 測試人員,也須要編寫測試文檔:

    1.測試計劃      是否符合產品說明書和產品需求,制定計劃

    2.測試用例       列舉測試項目,描述驗證軟件的步驟

    3.缺陷報告       描述測試出的問題,並記錄,

    4.測試工具和自動測試 

    5. 統計和總結    測試過程的彙總

 

軟件開發的幾種模式:

    1.大爆炸模式:

            大爆炸模式優勢是簡單,計劃、進度安排和正規開發過程幾乎沒有,全部精力都花在開發軟件和編寫代碼上,最終產生了優秀的產品軟件,或者一堆廢品。

        這種模式的測試 ,既容易,又困難,由於不可能回頭修復已經打亂的事情,軟件測試的工做其實就是報告發現的問題,讓客戶知道。

    2.邊寫邊改模式:

            在大爆炸的模式上更進一步,至少考慮到了產品的需求,這種模式下一般是最初只有粗略的想法,接着進行一些簡單的設計,而後開始編碼,測試,以爲 能夠了,而後發佈產品。

    3.瀑布模式:

            採用這種模式的項目,從最初的構思到最終的產品要通過一系列步驟,每個步驟結束,項目小組會組織審查,並決定是否進入下一步,沒準備好,久停滯,直到準備好。

    4.螺旋模式:

            螺旋模式的整體思想是一開始沒必要詳細定義全部細節,從小開始,定義重要功能,努力實現這些功能,接受客戶反饋,而後進入下一階段。重複上述過程,直到獲得最終的產品。

    5.敏捷軟件開發:

            敏捷開發以用戶的需求進化爲核心,採用迭代、按部就班的方法進行軟件開發。在敏捷開發中,軟件項目在構建初期被切分紅多個子項目,各個子項目的成果都通過測試,具有可視、可集成和可運行使用的特徵。換言之,就是把一個大項目分爲多個相互聯繫,但也可獨立運行的小項目,並分別完成,在此過程當中軟件一直處於可以使用狀態。

軟件測試人員在項目組中不受歡迎:

            1.早點找出缺陷:產生更小的影響,會讓人更容易接受

            2.控制情緒:找到嚴重缺陷,不要興奮,興沖沖的跑到程序員那裏,告訴他存在大問題,他是會不高興的。

             3.不要老是報告壞消息:常常找程序員聊聊天,不要老是報告壞消息,別人會對你惟恐避之不及。

 

軟件測試的術語和定義:

        1.精確和準確:

                往靶盤上擲飛鏢,擲到靶盤上交準確,擲到靶心叫精確。

        2.確認和驗證:

                確認是保證軟件符合產品說明書的過程。

                驗證是保證軟件知足客戶要求的過程。

        3.質量和可靠性:

                質量包括:軟件功能的多少,運行能力。可靠性包括:產品的可靠性,好比,多少用戶,或者多長時間會崩潰等等。

        4.測試和質量保證:

                是對確認和驗證的一個過程。

測試基礎:

    1.黑盒測試和白盒測試:

            黑盒測試中,測試人員只須要知道軟件須要作什麼,沒法看到是這麼運行的,不知道軟件如何運行,只知道結果。黑盒測試又被成爲功能性測試或者行爲測試,

            白盒測試:測試人員能夠訪問程序員的代碼,經過檢查代碼來協助測試。

    2.靜態測試和動態測試:

            靜態測試是指測試不運行的部分(好比踢下車胎,看看車漆)。

            動態測試是指使用和運行軟件(發動汽車,聽聽發動機的聲音,上路行駛)

    3.靜態黑盒測試:

        測試產品說明書,認真找出其中的缺陷。

數據測試:

    1.邊界條件:軟件是很極端的,即要麼對,要麼不對,對必定範圍內的數據進行測試,每每是對的,可是在邊界處,是最有可能出現錯誤的。

    2.測試邊界:例如 第一個減一/最後一個加1、空了再減,滿了再加等等      

    3.默認,空白,空值,零值和無

    4.非法、錯誤、不正確和垃圾數據(要求輸入數字,則不能輸入字母等)

    5.狀態測試:一旦使用某一項,使軟件改變了外觀,菜單,或者某些操做,就是改變了該軟件的狀態。

    重複測試:

            指不斷執行一樣的操做,不停的啓動關閉程序,要想找出一個軟件的缺陷,重複操做是不可避免的。

    壓迫測試:

            指軟件在不夠理想的狀態下運行,內存小,磁盤空間少,CPU速度慢等,有點相似於邊界條件測試。

    重負測試:

            與壓迫測試相反,壓迫測試是儘可能限制軟件,而重負測試是儘可能提供條件任其發揮, 讓軟件儘量的處理大的數據,最大限度發揮軟件能力,讓它不堪重負。

其餘黑盒測試技術:

        1.像笨拙用戶那樣作

        2.在已經找到軟件缺陷的地方在找找

        3.像黑客同樣考慮問題

        4.憑藉經驗,直覺和預覽

靜態白盒測試:

        不執行軟件的條件下有條理的審查軟件設計,體系結構和代碼,從而找出軟件缺陷的過程,,有時稱爲結構化分析。另外一個好處是能夠爲黑盒測試人員提供思路,他們可能沒必要了解代碼的細節,經過審查評論,能夠肯定問題或者找出容易產生問題的範圍。

通用代碼審查清單:

        數據引用錯誤:引用未經正確聲明和初始化的變量,常量,字符串等引發的缺陷。

        數據聲明錯誤:不正確的聲明或者使用變量和常量

        計算錯誤:數學問題,計算沒法的到預期的結果

        比較錯誤:大於小於等於等,比較和判斷錯誤極可能是因爲邊界條件的問題

        控制流程錯誤:編程語言中循環等未按照預期方式工做

        子程序參數錯誤:錯誤的來源是子程序不正確的傳遞數據

        輸入輸出錯誤:包括文件讀取,接收鍵盤或者鼠標輸入以及向屏幕輸出信息等

    其餘檢查:

        軟件是否使用了本語言以外的語言,是否能夠移植到其餘編譯器和CPU,是否考慮了兼容性,編譯程序是否產生警告或者提示的信息。

相關文章
相關標籤/搜索