從2011年畢業(yè)到現(xiàn)在,從事
軟件測試工作已經(jīng)有將近三年了,隨著工作的經(jīng)驗的積累,對測試的認(rèn)識也在不斷的提高。
經(jīng)常會聽到身邊有人抱怨,我做測試天天就是點鼠標(biāo),做
功能測試,累死了,煩死了;想學(xué)學(xué)做自動化,性能方面的測試。
相信很多做測試工作的同學(xué)會有相同的感覺。
最近換了工作,
面試了兩家公司,又對測試有了更進(jìn)一步的認(rèn)識。
首先,我覺得作為一名測試人員,有兩項很重要技能:測試點的發(fā)掘和豐富的測試手段,而測試點的發(fā)掘則是最重要的。下面就這兩個方面聊一聊我眼里邊的測試。
測試點的發(fā)掘:如果作為一名測試人員,不能發(fā)掘一個需求或系統(tǒng)需要測試的點,那么就不能算是一個合格的測試人員,那么該怎么去發(fā)掘出測試點呢?
關(guān)于測試點,業(yè)界有比較成熟的模型--軟件質(zhì)量模型,供大家從不同的方面去分析需求或這系統(tǒng)需要測試的測試點。
從以上模型,基本可總結(jié)出需求或者系統(tǒng)需要測試的測試點。
比如給你一個需求或系統(tǒng),首先要考慮的就是,這個需求或者系統(tǒng)是要做什么的(功能),是不是安全(功能),好不好用(易理解性)等。
只有發(fā)掘了測試點,測試工作才有依據(jù),所以大家一定不要舍本逐末。
再者就是豐富的測試手段這個技能了。
這個技能是建立在測試點的發(fā)掘的技能之上的,不然沒法開展測試工作。
對于以上所說的,功能測試就是點擊鼠標(biāo),又累又煩躁,這點我認(rèn)同。所以想去做自動化或者
性能測試。
什么是自動化?
自動化就是用程序自動執(zhí)行的方式,替代人工去執(zhí)行
測試用例,去除重復(fù)的勞動,節(jié)省一些回歸時候的人力成本。
舉個列子來說吧。
某個人認(rèn)為整天點鼠標(biāo)是在浪費生命,不行去點擊鼠標(biāo)了,就想到了把點擊鼠標(biāo)的事情交給自動化來實現(xiàn),這個時候,同事大家所說的自動化,就是基于GUI的UI自動化,即用代碼去默認(rèn)鍵盤,鼠標(biāo)和系統(tǒng)的交互,通過這樣的方式來完成測試。
接下來,大家會面臨一個問題,
互聯(lián)網(wǎng)隨時都在變化,你的需求和系統(tǒng)也在隨時變更(我也討厭變更,哈哈),不停的改版,你會發(fā)現(xiàn)原來的UI自動化代碼也得跟著變化或者經(jīng)常找不到頁面元素(穩(wěn)定性令人抓狂),不停的去維護(hù)已經(jīng)寫好的代碼,甚至有時候要重構(gòu)你的UI自動化代碼,成本很高,投入產(chǎn)出比不理想,那這個時候該怎么辦呢?
向后挖!
GUI所展示的數(shù)據(jù)都是以后服務(wù)端的API接口返回的,經(jīng)過瀏覽器的渲染,以GUI(圖形用戶接口)的形式展現(xiàn)給用戶,那么我們?yōu)槭膊粚ο到y(tǒng)的API進(jìn)行測試呢,可以避免掉系統(tǒng)界面的頻繁變更和找不到頁面元素的問題,QA也能更早的介入測試,保證接口的質(zhì)量。所以可以對接口進(jìn)行自動化測試。
再往后,我們就可以接觸到代碼,可以對代碼進(jìn)行自動化白盒測試。
對性能測試來說也是一個道理。
拿loadrunner做性能測試來說吧。
其實loadrunner做性能測試,就是直接通過接口來做的性能測試。通過模擬API請求。然后開啟很多進(jìn)程或者線程,同時去模擬API調(diào)用,借此對服務(wù)器形成壓力。
根據(jù)系統(tǒng)結(jié)構(gòu)圖,我們知道需要優(yōu)化各個組件的配置,設(shè)置一些合適的參數(shù),這就要求我們了解這些配置是干什么用的。
對代碼來說,可以對服務(wù)進(jìn)行代碼級別的性能測試。
對數(shù)據(jù)庫來說,可能要審查一下sql語句,數(shù)據(jù)表的字段,大小,索引是否合適等。以后會寫這方面的文章。
在發(fā)掘測試點的基礎(chǔ)上,再去豐富自己的測試手段,再能在測試上走的更遠(yuǎn)。