初學者入門 軟體測試從零開始(二)

2021-04-09 00:13:30 字數 4074 閱讀 8040

(二)重用同型別專案的測試用例

如果我看得遠,那是因為我站在巨人的肩上 --牛頓。

一般來說,每個軟體公司的專案可以分為固定的幾大類。可以按業務型別劃分,比如 erp 軟體、產品資料管理軟體、通訊軟體、地理資訊系統軟體等等;可以按軟體結構來劃分,比如 b/s 架構的軟體、 c/s 架構的軟體、嵌入式軟體等等。參考同類別軟體的測試用例,會有很大的借鑑意義。如果,公司中有同類別的軟體系統,千萬別忘記把相關的測試用例拿來參考。如果,系統非常接近,甚至經過對測試用例簡單修改就可以應用到當前被測試的軟體。 「 拿來主義 」 可以極大的開闊測試用例設計思路,也可以節省大量的測試用例設計時間。

(三)利用已有的軟體 checklist

在上面乙個小節中,按照不同的規則劃分了不同的軟體型別。每種型別的軟體都有一定的測試規範,比如, web 軟體系統在系統測試過程中,會有一系列的正規化,比如針對 cookie 就會有很多測試點。在設計測試用例的時候,不妨到網上去搜尋相關的 checklist ,不過國內外的**很少有這方面的資料,即便有,也不是特別系統。可以先找乙份粗糙的 checklist ,然後,在設計測試用例的時候不斷的去完善它,以作為下次測試用例設計的基礎。

(四)加強測試用例的評審

測試用例設計完畢後,最好能夠增加評審過程。同行評審是 cmm3 級的乙個 kpa ,如果因為公司沒有通過 cmm3 級,就不開展同行評審是不恰當的。測試用例應該由產品相關的軟體測試人員和軟體開發人員評審,提交評審意見,然後根據評審意見更新測試用例。 如果認真操作這個環節,測試用例中的很多問題都會暴露出來,比如用例設計錯誤、用例設計遺漏、用例設計冗餘、用例設計不充分等等;如果同行評審不充分,那麼,在測試執行的過程中,上述本應在評審階段發現的測試用例相關問題,會給測試執行帶來**煩,甚至導致測試執行掛起。

(五)定義測試用例的執行順序

在測試用例執行過程中,你會發現每個測試用例都對測試環境有特殊的要求,或者對測試環境有特殊的影響。因此,定義測試用例的執行順序,對測試的執行效率影響非常大。比如某些異常測試用例會導致伺服器頻繁重新啟動,伺服器的每次重新啟動都會消耗大量的時間,導致這部分測試用例執行也消耗很多的時間。那麼在編排測試用例執行順序的時候,應該考慮把這部分測試用例放在最後執行,如果在測試進度很緊張的情況下,如果優先執行這部分消耗時間的異常測試用例,那麼在測試執行時間過了大半的時候,測試用例執行的進度依然是緩慢的,這會影響到測試人員的心情,進而導致匆忙地測試後面的測試用例,這樣測試用例的漏測、誤測就不可避免,嚴重影響了軟體測試效果和進度。因而,合理地定義測試用例的執行順序是很有必要的。 十

二、測試用例執行

測試用例設計完畢後,接下來的工作是測試執行,測試執行中應該注意以下幾個問題:

(一)搭建軟體測試環境,執行測試用例

測試用例執行過程中,搭建測試環境是第一步。一般來說,軟體產品提交測試後,開發人員應該提交乙份產品安裝指導書,在指導書中詳細指明軟體產品執行的軟硬體環境,比如要求作業系統系統是 windows 2000 pack4 版本,資料庫是 sql server 2000 等等,此外,應該給出被測試軟體產品的詳細安裝指導書,包括安裝的操作步驟、相關配置檔案的配置方法等等。對於複雜的軟體產品,尤其是軟體專案,如果沒有安裝指導書作為參考,在搭建測試環境過程中會遇到種種問題。

如果開發人員拒絕提供相關的安裝指導書,搭建測試中遇到問題的時候,測試人員可以要求開發人員協助,這時候,一定要把開發人員解決問題的方法記錄下來,避免同樣的問題再次請教開發人員,這樣會招致開發人員的反感,也降低了開發人員對測試人員的認可程度。

(二)測試執行過程應注意的問題

測試環境搭建之後,根據定義的測試用例執行順序,逐個執行測試用例。在測試執行中需要注意以下幾個問題:

全方位的觀察測試用例執行結果: 測試執行過程中,當測試的實際輸出結果與測試用例中的預期輸出結果一致的時候,是否可以認為測試用例執行成功了?答案是否定的,即便實際測試結果與測試的預期結果一致,也要檢視軟體產品的操作日誌、系統執行日誌和系統資源使用情況,來判斷測試用例是否執行成功了。全方位觀察軟體產品的輸出可以發現很多隱蔽的問題。以前,我在測試嵌入式系統軟體的時候,執行某測試用例後,測試用例的實際輸出與預期輸出完全一致,不過在查詢 cpu 佔用率地時候,發現 cpu 佔用率高達 90 %,後來經過分析,軟體執行的時候啟動了若干個 1ms 的定時器,大量的消耗的 cpu 資源,後來通過把定時器調整到 10ms , cpu 的佔用率降為 7 %。如果觀察點單一,這個嚴重消耗資源的問題就無從發現了。

加強測試過程記錄: 測試執行過程中,一定要加強測試過程記錄。如果測試執行步驟與測試用例中描述的有差異,一定要記錄下來,作為日後更新測試用例的依據;如果軟體產品提供了日誌功能,比如有軟體執行日誌、使用者操作日誌,一定在每個測試用例執行後記錄相關的日誌檔案,作為測試過程記錄,一旦日後發現問題,開發人員可以通過這些測試記錄方便的定位問題。而不用測試人員重新搭建測試環境,為開發人員重現問題。

及時確認發現的問題: 測試執行過程中,如果確認發現了軟體的缺陷,那麼可以毫不猶豫的提交問題報告單。如果發現了可疑問題,又無法定位是否為軟體缺陷,那麼一定要保留現場,然後知會相關開發人員到現場定位問題。如果開發人員在短時間內可以確認是否為軟體缺陷,測試人員給予配合;如果開發人員定位問題需要花費很長的時間,測試人員千萬不要因此耽誤自己寶貴的測試執行時間,可以讓開發人員記錄重新問題的測試環境配置,然後,回到自己的開發環境上重現問題,繼續定位問題。

與開發人員良好的溝通: 測試執行過程中,當你提交了問題報告單,可能被開發人員無情駁回,拒絕修改。這時候,只能對開發人員曉之以理,做到有理、有據,有說服力。首先,要定義軟體缺陷的標準原則,這個原則應該是開發人員和測試人員都認可的,如果沒有共同認可的原則,那麼開發人員與測試人員對問題的爭執就不可避免了。此外,測試人員打算說服開發人員之前,考慮是否能夠先說服自己,在保證可以說服自己的前提下,再開始與開發人員交流。

(三)及時更新測試用例

總之,測試執行的過程中及時地更新測試用例是很好的習慣。不要打算在測試執行結束後,統一更新測試用例,如果這樣,往往會遺漏很多本應該更新的測試用例。 十

三、提交乙份優秀的問題報告單

軟體測試提交的問題報告單和測試**一樣,都是軟體測試人員的工作輸出,是測試人員績效的集中體現。因此,提交乙份優秀的問題報告單是很重要的。軟體測試報告單最關鍵的域就是 「 問題描述 」 ,這是開發人員重現問題,定位問題的依據。問題描述應該包括以下幾部分內容:軟體配置、硬體配置、測試用例輸入、操作步驟、輸出、當時輸出裝置的相關輸出資訊和相關的日誌等。

硬體配置: 計算機的配置情況,主要包括 cpu 、記憶體和硬碟的相關引數,其它硬體引數根據測試用例的實際情況新增。如果測試中使用網路,那麼網路的組網情況,網路的容量、流量等情況。硬體配置情況與被測試產品型別密切相關,需要根據當時的情況,準確翔實的記錄硬體配置情況。

測試用例輸入 / 操作步驟 / 輸出: 這部分內容可以根據測試用例的描述和測試用例的實際執**況如實填寫。

輸出裝置的相關輸出資訊: 輸出裝置包括計算機顯示器、印表機、磁帶等等輸出裝置,如果是顯示器可以採用抓屏的方式獲取當時的截圖,其他的輸出裝置可以採用其它方法獲取相關的輸出,在問題報告單中提供描述。

日誌資訊: 規範的軟體產品都會提供軟體的執行日誌和使用者、管理員的操作日誌,測試人員應該把測試用例執行後的軟體產品執行日誌和操作日誌作為附件,提交到問題報告單中。

根據被測試軟體產品的不同,需要在 「 問題描述 」 中增加相應的描述內容,這需要具體問題具體分析。 十

四、測試結果分析

軟體測試執行結束後,測試活動還沒有結束。測試結果分析是必不可少的重要環節, 「 編筐編簍,全在收口 」 ,測試結果的分析對下一輪測試工作的開展有很大的借鑑意義。前面的 「 測試準備工作 」 中,建議測試人員走讀缺陷跟蹤庫,查閱其他測試人員發現的軟體缺陷。測試結束後,也應該分析自己發現的軟體缺陷,對發現的缺陷分類,你會發現自己提交的問題只有固定的幾個類別;然後,再把一起完成測試執行工作的其他測試人員發現的問題也彙總起來,你會發現,你所提交問題的類別與他們有差異。這很正常,人的思維是有侷限性的,在測試的過程中,每個測試人員都有自己思考問題的盲區和測試執行的盲區,有效的自我分析和分析其他測試人員,你會發現自己的盲區,有針對性地分析盲區,必定會在下一輪測試有效避免盲區。 十

五、總結

限於文章的篇幅,本文不可能給出乙個類似於 checklist 的指導性的軟體測試新手入門。無論從事軟體測試還是從事其它的工作,技術上的和技巧上的問題都可以通過查詢相關的軟體測試技術書籍獲取,掌握一套基本的方**是最重要的。以上文字,都是作者從事軟體測試工作積累的經驗之談,如發現謬誤之處請不吝指出。

(全文完)

初學者如何入門安全測試?

這裡我們拿最熟悉的功能測試來做對比。提供證據 指設計反安全的輸入對軟體進行測試。滿足需求 安全通常不是我們的主要功能,所以我們並不會只因為更安全就去做某件事。真正的軟體安全實際上指的是風險管理。我們確保軟體的安全程度能夠滿足我們的業務需要。只要它能夠滿足業務所有者 當這些所有者意識到風險並充分理解自...

初學者如何從零開始學習人工智慧?看完你就懂了

每個專案產品都會讓你加埋點,你是願意花幾天乙個個加,還是願意幾分鐘乙個小時加完去喝茶聊天?來試試這520web工具,高效加埋點,目前我們公司100號前端都在用,因為很好用,所以很自然普及開來了,推薦給大家吧 此文是想要進入人工智慧這個領域 但不知道從 開始的初學者最佳的學習資源列表。一 機器學習 有...

初學者如何從零開始學習人工智慧?看完你就懂了

此文是想要進入人工智慧這個領域 但不知道從 開始的初學者最佳的學習資源列表。一 機器學習 有關機器學習領域的最佳介紹,請 coursera的andrew ng機器學習課程。它解釋了基本概念,並讓你很好地理解最重要的演算法。perer norvig 的udacity course on ml ml u...