原始碼時代軟測乾貨分享 探索語境驅動測試七大原則

2021-10-01 06:51:32 字數 2396 閱讀 7904

這條原則幾乎是不言自明的。中國人很早之前就有相似的認識,「南橘北枳」

指相同的種子在不同的環境中會結出不同的果實。因此古人建議「因地制宜」

即根據當地的具體情況,採用合適的措施。

然而,軟體開發者往往會在無意中忘記這條原則。開發團隊會照搬以往的經驗,卻不考慮經驗可能己經過時;會不假思索地採用他人建議的開發方法,卻不懷疑南橘北枳的可能;會按照高層的指示亦步亦趨,卻不思索指令合理·更糟糕的是,在感覺到情況不妙後,卻將錯就錯,不思變更。因此開發團隊需要頻繁地反思其開發實踐是否符合當前的語境,並做出相應調整。

這條原則看似有些武斷,畢竟軟體研發己經沉澱出一批公認的實踐方法,它

們是現代軟體開發必不可少的核心實踐。但是,細細一想便會發現這些方法也需

要因地制宜。「持續整合」是公認的最佳實踐,但是不同的團隊往往有不同的整合

頻率。對於小型專案,一次簽入(check-in)會觸發一次完整的構建;對於大型

專案,開發團隊可能每天做一次完整構建;對於超大型專案,做一次完整的構建

可能需要幾天甚至更長的時間。不同的構建頻率和構建代價自然會導致不同的籤

入策略和測試方法。雖然都在實施「持續整合」,但是不同的團隊會設計出不同的

流程和方法。

對於測試工作者,這條原則表示任何一種測試方法(包括探索式測試)都不

是無條件的最佳選擇。測試人員始終要評估當前情況,尋找適合當前語境的測試

風格和技術。

這條原則強調了軟體開發的社會學因素。軟體開發專家tom demarco 和tim lister指出:「本質上,我們工作中的主要問題,與其說是技術問題,不如說是社會學問題」。而社會學因素的根源是「軟體開發是乙個創造與溝通的協作遊戲」。在創造與溝通的過程中,一定是個體和他們的互動起主要作用·

在軟體測試中,以下觀點反映了人的重要性。

*軟體開發是具有挑戰性的智力活動,開發人員(包括測試人員)的責任感、技能、狀態將強烈影響軟體實現和**質量。因此,招聘、培訓、挽留高水平開發人員是軟體企業最重要的工作之一。

*軟體開發是一種創造與溝通的遊戲。軟體企業應該營造一種開放、協作的工作環境,使得開發人員能夠自如地去思考、去發明、去創造。

*軟體測試的核心任務是尋找並傳遞資訊。在尋找資訊的過程中·測試人員的能力和相互協作的水平將在很大程度上決定資訊的數量和質量。

*軟體測試提供資訊服務。服務就意味著有客戶,測試人員是否成功,主要取決於是否很好地滿足了客戶的要求和最佳利益。也就是說,測試人員的重要任務是理解客戶,並與他們展開有效的交流。

在一些語境中,專案的發展是可以預料的。隨著時間的推移,專案的不確定性逐漸降低,當專案即將結束時,開發團隊能夠準確預期專案的結局。但是,在專案的開始階段,專案的不確定性也非常高。在初始概念階段建立的估算值可能是實際值的4倍。

該原則並不是乙個悲觀的見解,相反它體現了一種實事求是的態度和對軟體風險的成熟認知。探索式測試有助於快速獲得資訊,從而降低軟體專案的不確定性。成功的測試團隊在整個專案過程中會結合廣度優先探索和深度優先探索,在特定的時間選擇適合的方法,從而更明智地利用測試資源。

成功的軟體必須幫助使用者解決現實世界中的問題,輔助他們獲得成功。在極

端情況下,乙個符合規格說明且沒有技術缺陷的軟體會遭遇失敗,因為它沒有解

決使用者的問題,甚至阻礙使用者解決問題。在需求完成時,不確定的範圍會大幅縮小。但是,如果需求存在重大缺陷,甚至初始概念就是錯誤的,那麼穩定的開發過程只會「穩定地」產生失敗的產品。

這一原則要求測試工作者用軟體使用者的視角考察整個產品,從顯式規格說明(不完整、模糊、包含錯誤的專案文件)和隱式規格說明(包括競爭對手產品、相關產品、己發布版本、電子郵件討論、口頭討論、論壇反饋、部落格文章、領域專著、測試經驗等)中,挖掘、推導、發現需求。這是探索式測試人員需要掌握的探索技能。

這又是一條不言自明的原則,相信大家也會認同該原則。雖然您可能會質疑,但是您的閱讀己經說明軟體測試的挑戰性和複雜性需要認真研究與思考·

這條原則的推論是枯燥、機械、無成就感的測試過程不是好的軟體測試,這樣的過程壓抑了測試人員的創造性,分散了他們的注意力,降低了他們的智力水平。然而,必須承認,我們在日常工作中也時常會感到枯燥、單調、缺乏創造力。對此,筆者的基本觀點是:

第一,測試人員應該以合乎要求的質量完成自己的工作,這是測試人員必須履行的職責;

第二,應該將單調的工作視為改進的訊號,通過改變工作內容和流程,將更多的時間用於具有挑戰性的工作。

軟體測試領域的一些文獻似乎在暗示,只要嚴格遵循「優秀」的測試過程或模板,就可以使普通的測試人員成為測試專家,並獲得理想的測試結果。這種觀點是不正確的,因為只有高素質的測試人員才能根據語境設計出合適的流程、計畫、策略和用例,而這些才是有效測試的基礎。

那麼該如何培養高素質的測試人員呢?cemkaner指出:「測試過程的乙個重

要成果,是更好、更聰明的測試人員。」優秀的測試人員具備高超的技能,而這種技能只能通過持續的學習和實踐才能獲得。而且在乙個合作與分享的環境中,測試人員可以學得更快、練得更好。

摘自《探索式測試實踐之路》---史亮 高翔 著

Cartographer原始碼篇 原始碼分析 1

在安裝編譯cartographer 1.0.0的時候,我們可以看到 主要包括cartorgarpher ros cartographer ceres sover三個部分。其中,ceres solver用於非線性優化,求解最小二乘問題 cartographer ros為ros平台的封裝,獲取感測器資料...

Android 親測原始碼分享

二 親測原始碼分享 1.巴士祝福原始碼奉獻 2.slidingmenudemo的各種方法的實現 4.android手機一鍵root原始碼 5.android 實現書籍翻頁效果txt閱讀器原始碼 6.乙個android猜字小遊戲源 分享 7.九宮格開機密碼 8.一找購物搜尋源 9.android 人臉...

AbstractListView原始碼分析3

normal list that does not indicate choices public static final int choice mode none 0 the list allows up to one choice public static final int choice ...