2021-12-30 21:36:19|已瀏覽:229次
什么是底層邏輯?
按照劉潤老師的解釋就是:
“事物間的共同點,就是底層邏輯。
只有不同之中的相同之處、變化背后不變的東西,才是底層邏輯。
......
底層邏輯+環境變量 = 方法論”
他還說:“只有底層邏輯,才是有生命力的。”
所以我們要來探討一下:軟件測試的底層邏輯是什么?
對軟件測試的基本認知
對軟件測試的基本認知,使我們達成共識,從而基于這個共識,更容易去討論軟件測試的底層邏輯。對軟件測試的基本認知,需要精簡到一句話來描述,即抓住軟件測試的本質,以簡潔的方式描述正確的軟件測試價值觀,但不是某個人的軟件測試價值觀,而是能被大多數人接受的軟件測試價值觀。
根據這些對軟件測試的認知,用一句話來說明軟件測試的基本認知,那就是:基于對用戶真實需求的理解,通過各種手段獲得軟件產品真實的、全方位的質量信息。無論是驗證軟件功能特性是否滿足需求、評估產品的質量還是揭示產品的質量風險,都是基于獲得的有關產品的真實的質量信息做出判斷的,而缺陷可以看做是這個活動過程中的副產品。這里強調對用戶真實需求的理解,一方面體現“沒有用戶就沒有質量,質量相對用戶而存在”,我們必須從用戶角度出發來完成測試,另方面是用戶的真實需求,而不是虛假的、錯誤的需求,業務的需求最終要分解成用戶角色的需求,而系統的功能/非功能性需求也是為了滿足用戶的需求。
這里提到的“軟件產品”不局限于程序,還包括數據、需求文檔、設計文檔、代碼、用戶手冊、技術手冊等。
了解了“什么是軟件測試”之后,下面就可以討論軟件測試的底層邏輯。
測試流程的底層邏輯
測試流程符合一般工程項目流程,經過分析、計劃、設計、實施和評估的過程,任何一個環節不可缺失,每一個環節都重要,但前面的環節會影響后面的環節,所以越在前面的環節越重要。測試分析是基礎,依次是設計、實施和評估,構成一個金字塔模型。
測試流程的另一個底層邏輯:形成閉環。如果經過評估,發現測試過程有問題,需要重新分析、修改計劃、修改設計......再經過一個完整的過程,構成一個新的閉環。從測試流程改進來看,也需要構成PDCA那樣的閉環。從今天DevOps的角度看,測試是為了讓用戶更滿意,但同時要進行用戶調查,收集用戶反饋,構成閉環,如我16年前所畫的閉環。
從缺陷帶來的成本來看,測試進行的越早越好,因為劣質成本是指數級增長。
概括起來:測試是貫穿整個研發周期,形成閉環,并持續改進。
測試分析的底層邏輯測試分析的底層邏輯是基于系統思維、結構化思維去思考,需要從項目背景、產品結構、質量要求等各個方面進行系統地思考,不容忽視一些蛛絲馬跡,順藤摸瓜,完整地呈現測試范圍,識別出各種測試風險,最終明確測試項及其優先級。系統思維可以讓我們看清楚被測對象的輸入/輸出、前置條件和后置條件、周圍環境和面臨的各種場景。
結構化思維幫助我們制定更有效的測試方案和測試策略,如分層測試、面向接口的測試等。同時,測試總是有風險的,所以測試分析時一定要采用基于風險的測試策略,并應用80/20原則,確定20%最嚴重的風險集中在什么地方、哪些功能是用戶最常用的20%功能、哪些測試項是屬于重點測試的20%等。
測試分析的底層邏輯之一:測試分析是層層剝離、逐步深入的系統分析過程。從業務需求、用戶行為、系統功能、應用場景等不同維度對被測對象進行系統的分析,最終確定測什么。測試分析的底層邏輯之二:測試分析也是一個博弈、選擇直至平衡的過程,需要定力和洞察力,做出取舍,如運用80/20原則,抓主要風險,有時需要舍棄一些次要風險。測試分析的底層邏輯之三:以終為始,從測試目標出發最終回到測試目標,如從考慮如何衡量測試充分性的要求出發,最終分析的結果——各測試項完成是能夠滿足測試充分性的要求的。
測試設計的底層邏輯
測試設計是基于測試分析的結果,運用合適的方法完成測試數據、測試場景或測試用例的設計。按照工程思維的方式,解決方案不只一個,要設計多個方案,從中選出更優或最優的方案。
測試設計的本質是以更有效的方式覆蓋測試需求,從場景覆蓋、邏輯覆蓋、路徑覆蓋和數據覆蓋等不同覆蓋策略中選擇一種或幾種。測試設計也是一個循序漸進的過程,不斷完善的過程。
測試設計是辯證統一的思維過程,既有嚴密的邏輯思維,也有跳躍式、發散性的創造性思維;既是黑盒測試方法和白盒測試方法的對立統一、靜態測試和動態測試的融合,也是主動測試和被動測試的融合......只有這樣才能更徹底地滿足設計要求,更快地完成測試以實現測試目標。
測試設計的底層邏輯:測試設計是藝術,更要創新、融合。
測試自動化的底層邏輯
測試自動化就是要充分發揮工具的作用或價值,例如工具能百分之百地執行命令、任勞任怨,所以自動化測試適合機械、單調的測試工作,如回歸測試、性能負載測試、壓力測試、兼容性測試、BVT(版本構建驗證測試)等。
測試自動化的腳本開發和執行是建立在測試分析和設計之上,如果測試分析和設計存在問題,依靠工具是無法解決這類問題的。有更好的測試分析和設計,才有更好的自動化測試,所以我們清楚測試分析/設計與自動化測試的關系顯得非常重要。
工具的開發和使用、腳本的開發和使用都是由人完成的,所以人還是第一位的,工具是第二位的。測試自動化還受到文化、流程的影響,測試自動化能否成功不是一個技術問題,今天來看,技術上已經沒有障礙了,障礙往往出現在企業的文化、研發流程和開發質量(如軟件實現的規范性、可測試性等)等方面。
測試人員的底層邏輯最后談談測試人員的底層邏輯。測試人員是否有價值,不取決于他/她目前的工作態度、知識與技能,而是取決于態度、知識與技能的進步速度,因為我們無法改變過去,但可以改變未來。只要持續學習、持續反思,就能快速完成自己的進化,快速成長起來,就沒有人能擋得住你的壯麗前程。
如果我們掌握了軟件測試的底層邏輯,只有探尋到萬變中的不變,才能動態地、持續地看清軟件測試的本質。看清軟件測試的底牌,我們就能始終如魚得水。
本文由培訓無憂網長沙牛耳教育課程顧問老師整理發布,希望能夠對想參加長沙軟件測試培訓的學生有所幫助。更多軟件測試培訓課程信息可關注培訓無憂網電腦IT培訓或添加老師微信:15033336050
注:尊重原創文章,轉載請注明出處和鏈接 http://m.dedgn.cn/news-id-11363.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注軟件測試頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050