天天看點

業務?技術?身為測試的你,該如何看待?(上)

業務?技術?身為測試的你,該如何看待?(上)

想必大家的職業生涯中,多少都遇到過以下問題:

  • 目前就是手動功能測試,沒啥提升的,你受不了了,準備跳槽;
  • 翻了下招聘APP,全都是要求自動化/性能/安全/CI/專項,自己隻會點點點,很慌;
  • 面試造火箭,自動化/性能/安全/業務/CI,要求無所不能,無所不會;入職擰螺絲,“這些東西我們都沒開展起來,目前我們還是手動測試”,開始點點點;
  • 鋪天蓋地“純手工測試會被逐漸淘汰”讓本身就沒啥技術的你感覺更慌了,開始陷入迷茫期……

好吧,不管公司怎麼說了,我一定要學點東西!加油!努力!然後又可能會出現以下的幾種情況:

看了兩篇教程,一看就會,一寫就錯,嘤嘤嘤好難學不會惹,我還是點業務去算了……

天天對着《Python從入門到放棄》《21天精通删庫跑路》print,

print,print,寫了13個print以後煩死惹,三分鐘熱度過去,又回到了原點……

對着教程終于搞出了兩個demo,可把自己牛X壞了,叉會腰,然而并沒有解決任何實際問題……
           

不得不說,相比于開發、運維等有明确定位的技術部門,測試部門顯得比較尴尬,甚至會出現個人定位和公司定位偏差較大的情況:

比如,公司不重視品質,認為測試部門隻需要解決好業務問題,那麼大機率你的日常工作就是點點點,然後各種和業務部門扯皮,業務部門甚至會直接把你扔給客戶解答問題;這個時候的測試部門老大,很有可能也是認為業務比較重要,對技術方面則不感冒。如果長時間按照公司要求處理業務問題,同時又沒有明确的自我規劃的話,這份工作可能也隻是多了一年經驗,但是實際個人能力提升程度有限。

業務?技術?身為測試的你,該如何看待?(上)

道理我們都懂,測試的發展無非就是技術、業務和管理三條路,說起來容易,做起來呢?

測試技術:無非就是一定的開發能力、自動化、接口、性能、安全、CI、APP專項等等,每一個部分拿出來說,就算是對技術不敏感的同學也能了解個一二三,用一些成熟的工具進行相關的工作;但是一方面想在技術方面有所建樹必須有一定的開發能力,另一方面很多同學都缺少一個明确的學習思路,導緻花了很多時間來學,但是無法用來确實解決一些問題;

業務:業務是基礎,脫離了業務的測試沒有意義。但是很多時候大家眼裡的業務,都隻包括頁面上的功能、使用者體驗、業務邏輯,以及部分行業比如銀行、金融等行業要求的業務知識;但是,業務真的就隻包括這些内容?做好業務功能層面的測試,真的隻靠頁面層面的上的點點點就行??

限于篇幅原因,我們分享分為上篇和下篇,上篇談談業務層面的測試,下篇則是分享下如何有目的的規劃技術學習,并學以緻用,解決一些問題。

我們來看一個場景:

新系統,WEB登陸功能,很常見的賬号+密碼+驗證碼登陸,使用者資訊均通過資料庫存儲,你如何進行測試分析?

不談頁面上的功能,我們來看一個問題:

預計上線後,使用者數量大概在2OOOW量級并不斷增長,最終穩定在5000W左右的數量級。

使用者相關庫表是否需要做分庫分表,怎麼分?為什麼要這麼分?怎麼保證分表以後,對資料表的操作比對的庫表是準确的?

一種可行的方案是根據UserID進行Hash分表,涉及到使用者表的增删改查操作前根據UserID計算Hash值即可比對到對應的表。測試時,最簡單的粗暴的方式可以從每個表取出使用者一些登入資料,使用Jmeter進行參數化後,通路登入接口,驗證登入是否成功。具體的技術細節和測試方案不是今天的重點,提出這個問題隻是想抛磚引玉的說明一些問題。

很多測試同學如果系統設計方面接觸的比較少的話,看到這個問題第一反應肯定是懵的,有的測試同學會認為分庫分表、落點比對這種事情都是研發同學該保證的,測試同學隻需要去驗證就行了。

如果公司對測試的定位就是解決好業務功能問題,極端點測試同學甚至都不知道做了分庫分表,登入也隻是簡單的做登入功能的驗證;一旦少數資料落點比對出現問題,單純的頁面上進行功能測試測試難以發現,那麼遺留到線上将會是非常嚴重的問題。

但是如果測試部門真的對品質有追求的,這部分内容能忽略嗎?

相比于通過工具直接周遊驗證外,能不能把黑盒子一層層打開,了解這些深層次的邏輯呢?

你想了解程式内部的深層次的邏輯,如果你是妹子,賣個萌讓研發給你解釋,沒問題,如果是你是個漢子怎麼辦?和研發打一架嗎?能不能自己快速的梳理這個邏輯呢?該怎麼做?

當看到測試開發大佬拿到項目代碼權限後,幾個斷點,一點日志,10分鐘就迅速定位到問題、梳理好了業務邏輯後,而你卻要花一個小時給研發賣萌打滾扯皮,如果你會代碼呢?

最簡單的,通過代碼來梳理系統的内部邏輯。并不推薦通過部署架構和頁面功能反向梳理内部邏輯,一方面隻能知其然不能知道是以然,另一方面就是很容易出現偏差,得到錯誤的結論。

由此我們可以看到,開發能力屬于測試技術的一方面,但是在做業務測試時,合理的運用各種測試技術,不僅可以提升效率,也能提高工作品質。

我們再回過頭去看這個問題:

現在答案明顯是否定的了,業務層面的測試絕對不僅僅是前端的功能、公司業務層面的處理邏輯,想在業務上做到一定深度,必須要了解資料庫表、部署架構、資料互動、代碼邏輯、系統元件、代碼邏輯等一些深層次的内容。

理清這些深層次的内容,需要技術能力作為支撐,比如資料庫、伺服器和部署知識、接口測試,甚至是根據代碼梳理業務邏輯還需要有一些代碼能力,并熟悉一些常見的系統的程式結構,能夠迅速定位到要找的代碼。

結論:

1、好的業務測試不僅僅局限于頁面上的業務功能,更需要把黑盒子一步步打開,了解系統内部的邏輯。

2、有技術支撐能讓業務層面的測試做的更加如虎添翼,高效準确。

那麼,明确了我們要技術支撐業務測試後,我們也可以以解決實際問題為目标,重新梳理我們的學習思路,有目的的進行學習。

文末分享:這下面有我學習整理出來的自動化測試資料、大廠面試…待你來領取~ 見公衆号:【傷心的辣條】願你我都有所獲…
業務?技術?身為測試的你,該如何看待?(上)
業務?技術?身為測試的你,該如何看待?(上)

合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

我的測試學習交流群:902061117 群裡有技術大牛一起交流分享~

原文不易呀,眼睛都留眼淚了!麻煩伸出發财小手點個贊,感謝您的支援,你的點贊是我持續更新的動力。