或曰之程式測試
今天測試buff的屬性疊加的時候,犯了致命性的原則錯誤,就是為了證明自己的正確性而測試,以下便是偶的自我檢討。
或曾經曰過:程式測試是為了發現錯誤而執行程式的過程
就是在**完成後,通過執行程式來發現**或模組中錯誤。但是,這種意義上的測試是不能在**完成之前發現系統需求、設計上的問題,也就是說把發現需 求、設計上的問題遺留到後期,這樣就會可能造成設計、程式設計的部分返工。增加開發的成本、延長開發的週期等。需求階段和設計階段的缺陷產生的放大效應會加 大。也就說 為了更早地發現問題,要將測試延伸到需求評審、設計審查活動中去。我覺得正是我們在審查策劃案以及他們的設計的時候所要面對的。需要高度的重視這些問題。
要盡快盡早地發現更多的缺陷,並修正缺陷。原因很簡單:平均而言,如果在需求階段修正乙個錯誤的代價是1,那麼,在設計階段就是它的 3~6倍,在程式設計階段是它的10倍,在內部測試階段是它的20~40倍,在外部測試階段是它的30~70倍,而到了產品發布出去時,這個數字就是 40~ 1000倍。修正錯誤的代價不是隨時間線性增長,而幾乎是呈指數級增長的。
或曾經曰過:測試是為了證明程式有錯,而不是證明程式無錯誤
產生了乙個問題:測試到底是證明軟體有錯論呢?還是證明軟體無錯論呢?個人理解,各打50大板,也就是兩個方面都有道理,前者(證明所有軟體的功能特性 是正確的)是從質量保證的角度來思考軟體測試,後者(證明程式有錯)從軟體測試的直接目標和測試效率來思考,兩者應該相輔相成。在後者的思想背景下,我們 認為,測試不是為了證明所有的功能可以正常工作,恰恰相反,測試就是為了找出那些不能正常工作、不一致性的地方。也就是說,測試的一般工作就是發現缺陷, 即在軟體開發過程中,分析、設計與編碼等工作都是建設性的,而測試是帶有「破壞性」的工作。隨著我們資料大量的匯入、**的堆積、功能的不斷製作,各種代 碼的邊界、無效資料的輸入以及系統的弱點,那麼就需要我們自己試圖破壞系統、摧毀系統,目標就是發現系統中各種各樣的問題。
我們在實際工作中應該怎麼樣去面對乙個複雜龐大的系統呢:
1 不停嘗試:可能會碰到轉瞬即逝或者難以重現的缺陷,盡一切可能去尋找它的起因。
2 探索精神:不要害怕進入陌生環境。在有多個模組製作的系統中,往往不是由一人完成的,那麼在自己發現了別人可能存在的問題時,去**一下,找出問題的所在,或者能詳細的描述問題的特徵,以供同伴盡快地解決問題。
3 猜謎:對於無法確定的問題,大膽的說出自己的猜測,往往能給別人很大的啟發。
4 聯絡思考:從設計到製作的各個環節,所受的影響因素,聯絡看到的問題,然後作出問題的具體處在**,不會被侷限於某一點。
5 拓展測試:測試顯而易見的事實,這還不夠;給出超常的手段或者資料來尋找缺陷。多製造一些容易產生bug的例子,有點類似破壞性測試,以檢測系統的健壯性。
我們所需要注意的一些測試方面:
(1) 邊界測試,測試使用者輸入框中的數值的最大數和最小數,以及為空時的情況。
(2) 非法測試,例如在輸入數字的地方輸入字母。
(3) 跟蹤測試,跟蹤一條資料的流程,保證資料的正確性。
(4) 在開始測試時應保證資料的正確性,然後在從系統中找出各種bug。
(5) 介面測試,程式往往在介面的地方很容易發生錯誤,要在此模組測試勿掉以輕心。
(6) **重用測試,在開發過程中有些模組功能幾乎相同,程式設計師在重用**時可能忘記在原有**上修改或修改不全面,而造成的錯誤。
(7) 突發事件測試,伺服器上可能發生意外情況的測試。
(8) 外界環境測試,有些系統在開發時依賴於另外乙個系統,當另外乙個系統發生錯誤時,引起這個系統受到影響,從而出現錯誤,那就需要聯絡起來考慮問題可能存在的外在原因。(就是模組間,甚至是自己程式之外的輸入因素所引起的問題,我這裡統稱為另外的系統)
(9) 在程式設計師剛修復bug之後的地方,再找一找,往往程式設計師只修復報告出來的缺陷而不去考慮別的功能在修改時可能會重新造成錯誤。
(10) 認真做好測試記錄在做完一天的測試記錄之後,第二天再根據第一天的測試記錄重複測試你會發現有未修正的錯誤。
(11) 文字測試,文字使用的問題,文字的大小邊界字型等因素所導致的問題。
(12) 系統相容測試,我們面臨的問題還是不小。
(13) 使用者的操作性測試,往往前後設計上會產生,操作歧義,從而引起使用者操作上的不方便。
測試理論小結
典型的測試步驟 1 計畫 確定目標,確定測試策略,測試方法 2 執行 建立測試環境,按測試計畫執行 3 檢查 一步步驗證,是否執行完畢 4 迴圈 如果沒有改正,繼續執行 測試職責 1 驗證在整個軟體開發周期中,各個階段的軟體質量是否合格 2 驗證最終交付給客戶的軟體系統是否是客戶想要的,滿足需求的 ...
軟體測試 測試小結(2011 6 10)
工作了一段時間,我小結一下 第一 軟體測試要有耐心,因為在多數情況下,需要測試的東西會是千篇一律的,這時候就要考驗你的耐心了。第二 測試時要專注,不要忽略細節。粗心大意是發現不了問題的。做測試只有發現新問題才能體現你的價值。第三 要多與開發等溝通,有事溝通,沒事也要溝通,這對測試是有好處的。第四 測...
單元測試的小結
什麼是單元測試?編寫一段 對另一段 進行測試,觀察被測試 片段是否符合預期行為,被測試的 片段可以視為乙個單元。單元測試是最小粒度的測試單位 對乙個類或者乙個方法進行測試 編寫單元測試的關鍵是明確定義被測試 的預期行為 保證 的可測試性 測試的及時性。什麼需要單元測試 確保每個 單元的行為和預期一致...