从零开始学产品第六篇:更强大的测试,自动化测试和性能测试
本篇為【從零開始學(xué)產(chǎn)品】系列課第1章第5節(jié)
歡迎到公眾號(hào)菜單欄,獲取產(chǎn)品經(jīng)理課程更多資料
“測(cè)試就是拿點(diǎn)鼠標(biāo)在電腦上瞎點(diǎn),或者是用手機(jī)隨便戳幾下么?”
“不,是有計(jì)劃有意圖的測(cè)試,比如說(shuō),邊界測(cè)試,隨機(jī)測(cè)試,端到端測(cè)試等等。”
“明白了,是有計(jì)劃有意思的瞎點(diǎn)點(diǎn)?”
“.........好吧,也可以這么說(shuō),但是隨便瞎點(diǎn)點(diǎn)并不是測(cè)試的全部:
點(diǎn)哪里,不點(diǎn)哪里,是需要對(duì)業(yè)務(wù)邏輯了解很深入的。”
“但它還是瞎點(diǎn)點(diǎn),對(duì)不對(duì)?有沒(méi)有比瞎點(diǎn)點(diǎn)更厲害一點(diǎn)的?”
“emmmm,有,就是自動(dòng)化的瞎點(diǎn)點(diǎn)和大規(guī)模的瞎點(diǎn)點(diǎn)。”
第一章 從木牛流馬說(shuō)起
“懶是推動(dòng)人類進(jìn)步的第一動(dòng)力。”
剛哥寫完了一個(gè)Windows腳本的批處理程序之后,笑著說(shuō)。
這個(gè)批處理程序很簡(jiǎn)單,就是切換開發(fā)環(huán)境,測(cè)試環(huán)境和線上環(huán)境的Host文件,以便本地開發(fā)的時(shí)候可以直接切換環(huán)境。
通常我們都是手動(dòng)拷貝,更改名字,但是對(duì)于熟讀《程序員晉級(jí)手冊(cè)》的剛哥來(lái)說(shuō):
“但凡可以重復(fù)執(zhí)行的事情都可以自動(dòng)化”給了他啟發(fā)
所以他花了5分鐘的時(shí)間寫了一個(gè)腳本,只需要執(zhí)行腳本就可以自動(dòng)切換了。
而諸葛大神也是同樣的,很早就希望能夠“自動(dòng)化”的做一些事情。
木牛流馬(諸葛亮發(fā)明的運(yùn)糧工具)
木牛流馬,為三國(guó)時(shí)期蜀漢丞相諸葛亮發(fā)明的運(yùn)輸工具,分為木牛與流馬。
史載建興九年至十二年(231年-234年)諸葛亮在北伐時(shí)所使用,其載重量為“一歲糧”,大約四百斤以上,每日行程為“特行者數(shù)十里,群行三十里”,為蜀漢十萬(wàn)大軍提供糧食。
不過(guò),確實(shí)的方式、樣貌現(xiàn)在亦不明,對(duì)其亦有不同的解釋。
不管是真是假,做一些自動(dòng)化的事情,總是讓人樂(lè)此不疲。
對(duì)測(cè)試而言呢?
為什么也需要自動(dòng)化的測(cè)試,又是怎么自動(dòng)化的。
通過(guò)前幾章的學(xué)習(xí),我們知道了,正常的系統(tǒng)都會(huì)有開發(fā),測(cè)試和線上三個(gè)環(huán)境。
測(cè)試人員的工作場(chǎng)所就是在測(cè)試環(huán)境,而Bug的出現(xiàn),有可能是在測(cè)試,也有可能是在線上。
這個(gè)看起來(lái)很完美的流程其實(shí)缺少了一個(gè)關(guān)鍵的環(huán)節(jié),也是很少被人提到過(guò)的。
就是我們總是會(huì)持續(xù)不斷的維護(hù)一個(gè)項(xiàng)目,這個(gè)叫做項(xiàng)目的迭代更新。
在項(xiàng)目的迭代更新過(guò)程中,會(huì)發(fā)什么不一樣的情況么?
修真院的開放同學(xué)花了一周的時(shí)間,終于修復(fù)了7個(gè)Bug,他開開心心的打了版本號(hào),發(fā)布到了測(cè)試環(huán)境。
測(cè)試小姐姐苗苗同學(xué),驗(yàn)收了這些Bug,確認(rèn)沒(méi)有問(wèn)題,就申請(qǐng)發(fā)布到了線上環(huán)境。
修真院的用戶晚上熬夜比較多,所以發(fā)布一般都選在清晨7點(diǎn)。
發(fā)布之后,按照我們的發(fā)布流程,苗苗和開放驗(yàn)證了自己修復(fù)的Bug,確認(rèn)沒(méi)有問(wèn)題,就開開心心的補(bǔ)覺去了。
然后9點(diǎn)之后,用戶陸續(xù)掙脫了被窩的封印,逃出了住宅的魔爪,開始使用官網(wǎng)。
然后,他們發(fā)現(xiàn)修真院官網(wǎng)中的一個(gè)很重要的“評(píng)論”功能無(wú)法使用。
發(fā)生什么問(wèn)題了?
定位問(wèn)題有很多種,但是早上的發(fā)布無(wú)疑是嫌疑最大的。
定位問(wèn)題之后快速回滾,評(píng)論正常。
最后的結(jié)論是,開放同學(xué)在修復(fù)原來(lái)的Bug過(guò)程中,不小心改動(dòng)了之前關(guān)于評(píng)論的代碼,造成評(píng)論功能不可用。
為什么會(huì)出現(xiàn)這種情況,做為一個(gè)非技術(shù)人員,有時(shí)候很難理解。
在他們眼里,研發(fā)團(tuán)隊(duì)總是會(huì)出現(xiàn)莫名其妙的問(wèn)題:
總是修復(fù)了一個(gè)Bug,引起了另一個(gè)Bug
或者是這個(gè)版本沒(méi)有問(wèn)題了,下個(gè)版本又復(fù)現(xiàn)了。
但解決問(wèn)題的方案總是有兩種:
一種是研發(fā)團(tuán)隊(duì)提高自己的技術(shù)水準(zhǔn),盡可能的避免高耦合
另一種就是,能否有辦法提前在測(cè)試環(huán)境發(fā)現(xiàn)問(wèn)題?
這就是所謂的回歸測(cè)試。
回歸測(cè)試的難點(diǎn)在什么地方呢?
一個(gè)系統(tǒng)維護(hù)了近兩年,數(shù)百個(gè)功能點(diǎn)算是比較正常的。
把這些功能點(diǎn)全部做一遍回歸測(cè)試,需要多久呢?
每發(fā)布一次版本,都要全部做一遍回歸測(cè)試么?
沒(méi)有問(wèn)題,就沒(méi)有解決方案,有了問(wèn)題,就自然會(huì)有解決方案。
第二章 自動(dòng)化測(cè)試的天下
所以我們把遇到的問(wèn)題抽象出來(lái):
“我們希望找到一種自動(dòng)化測(cè)試的方法,可以將過(guò)去的測(cè)試用例而順序執(zhí)行一遍,來(lái)確認(rèn)之前的功能可用性
這可以節(jié)省測(cè)試人員大量的時(shí)間,提高發(fā)布的效率和確保測(cè)試的嚴(yán)謹(jǐn)度。”
再來(lái)看什么是自動(dòng)化測(cè)試。
如果你經(jīng)常玩網(wǎng)游,你會(huì)發(fā)現(xiàn)網(wǎng)游現(xiàn)在越來(lái)越有意思的是,前十分鐘可以升很多級(jí),然后剩下的就是各種刷刷,沒(méi)什么難度 ,就是耗費(fèi)時(shí)間而已。
想要節(jié)省時(shí)間,可以充值去加快進(jìn)度。
如果你不想充值,反正時(shí)間多的是,但是又不想重復(fù)的點(diǎn)擊怎么辦?
【鍵盤精靈】,你需要一個(gè)鍵盤精靈,讓鍵盤模擬你的電腦或者是手機(jī)的操作,無(wú)腦掛機(jī)刷。
怎么實(shí)現(xiàn)的?
其實(shí)道理很簡(jiǎn)單,記錄你鼠標(biāo)或者是手勢(shì)的位置,和操作,相當(dāng)于錄制屏幕一樣。
這就是自動(dòng)化測(cè)試的最簡(jiǎn)單的方式。
自動(dòng)化測(cè)試可以通過(guò)編寫腳本來(lái)完成一些【鍵盤精靈】相似的操作。
簡(jiǎn)單說(shuō),你可以做一些簡(jiǎn)單的游戲外掛了。
但是對(duì)于測(cè)試這個(gè)神圣的職業(yè)來(lái)說(shuō),并不是用來(lái)做游戲外掛,而是用來(lái)做回歸測(cè)試,這個(gè)利器就叫做:
selenium
selenium最簡(jiǎn)單的自動(dòng)化測(cè)試就是錄制。
點(diǎn)錄制按鈕之后,可以記錄下來(lái)你的動(dòng)作,然后重放。
除此之外,你如果想要做更多的和更深入的操作, 就需要懂一點(diǎn)編程。
用自動(dòng)化測(cè)試,其實(shí)仍然存在著很多問(wèn)題。
比如說(shuō),一旦需求變更,自動(dòng)化測(cè)試的腳本就必須跟著改。
這對(duì)于測(cè)試人員來(lái)說(shuō),也是一件壓力很大的事。
特別是對(duì)需求更新頻率的互聯(lián)網(wǎng)公司來(lái)說(shuō),更大的可能性是每周一遍,很多功能是無(wú)法做自動(dòng)化測(cè)試的。
而相對(duì)穩(wěn)定的功能,自動(dòng)化測(cè)試的意義也不會(huì)特別大,基本上模塊都比較清楚了:
有改動(dòng)的地方可以通過(guò)開發(fā)人員和測(cè)試團(tuán)隊(duì)有意識(shí)的測(cè)試來(lái)完成。
所以要不要用自動(dòng)化測(cè)試,用到什么程度,由你來(lái)決定。
第三章 性能測(cè)試的歸屬
做為測(cè)試的收尾一章,還要講最后一個(gè)很重要的性能測(cè)試。
測(cè)試整體來(lái)講,可以分成三大部分,功能測(cè)試,性能測(cè)試和自動(dòng)化測(cè)試。
自動(dòng)化測(cè)試重不重要,說(shuō)不好,大家各有自己的見解,實(shí)際情況不一樣,也沒(méi)有辦法。
但性能測(cè)試一定是非常非常關(guān)鍵的測(cè)試。
確切的說(shuō),在我們另一個(gè)專欄里聊到的【從零開始學(xué)敏捷開發(fā)】中會(huì)說(shuō),性能測(cè)試不通過(guò),是無(wú)法進(jìn)行Demo的。
小編注:
【從零開始學(xué)敏捷開發(fā)】致力于將一套可落地執(zhí)行的敏捷開發(fā)流程分享給大家
該流程面向項(xiàng)目團(tuán)隊(duì)全體成員,定位了每個(gè)職業(yè)在敏捷開發(fā)流程中扮演的角色,以及在項(xiàng)目研發(fā)不同階段的流程規(guī)范。
無(wú)論是對(duì)團(tuán)隊(duì)協(xié)作開發(fā)一無(wú)所知的項(xiàng)目新手,還是想要提高團(tuán)隊(duì)開發(fā)效率,減少BUG數(shù)量的技術(shù)總監(jiān),都能從自己的角度有所收獲。
歡迎掃碼關(guān)注
性能測(cè)試是必須要有的,這一點(diǎn)不要有任何的疑問(wèn),問(wèn)題就在于是,誰(shuí)來(lái)做性能測(cè)試?
很多人會(huì)認(rèn)為這應(yīng)該交給測(cè)試團(tuán)隊(duì)來(lái)處理,在測(cè)試環(huán)境上跑壓測(cè)。
但是對(duì)于大多數(shù)中小型公司(100研發(fā)團(tuán)隊(duì)以下,日活1000萬(wàn)以下)來(lái)說(shuō),都不必單獨(dú)為壓測(cè)搭一個(gè)環(huán)境出來(lái)。
放在測(cè)試環(huán)境跑,讓測(cè)試團(tuán)隊(duì)來(lái)做性能測(cè)試的問(wèn)題就在于,發(fā)現(xiàn)了性能的問(wèn)題怎么辦?
測(cè)試團(tuán)隊(duì)需要跟研發(fā)團(tuán)隊(duì)溝通
研發(fā)團(tuán)隊(duì)需要看到測(cè)試結(jié)果,還有可能需要重現(xiàn)步驟和場(chǎng)景
等研發(fā)團(tuán)隊(duì)做完之后還需要再重新部署,再重新演示。
這就是我們一直都覺得很有意思的問(wèn)題,為什么性能測(cè)試不讓研發(fā)團(tuán)隊(duì)在開發(fā)環(huán)境自己來(lái)呢?
我們說(shuō)過(guò)開發(fā)環(huán)境是不穩(wěn)定的
但是在項(xiàng)目研發(fā)的后期,抽出來(lái)半個(gè)小時(shí)或者是一個(gè)小時(shí)的穩(wěn)定測(cè)試時(shí)間,是沒(méi)有問(wèn)題的。
壓測(cè)不是簡(jiǎn)單的給出結(jié)果,還是要找出原因,只有開發(fā)團(tuán)隊(duì)才會(huì)清楚性能的瓶頸,可能需要反復(fù)的測(cè)試。
這和我們之前說(shuō)到的【功能測(cè)試】是同樣的道理:
我們鼓勵(lì)研發(fā)團(tuán)隊(duì)自測(cè),但是邊界測(cè)試或者是復(fù)雜情況下的測(cè)試,是需要一個(gè)穩(wěn)定的測(cè)試環(huán)境的。
性能測(cè)試通常包括后端和前端兩種。
前端的性能測(cè)試,主要是就是看網(wǎng)頁(yè)的大小和響應(yīng)的速度 。
如果修真院的官網(wǎng),首屏打開時(shí)間是1分鐘,做為PM的你,能接受么?
手機(jī)上打開一個(gè)Banner圖,發(fā)現(xiàn)圖片是12兆,做為PM的你,能接受么?
一個(gè)動(dòng)畫卡的懷疑人生,你能接受么?
不可以的。
那么后端也是一樣的。
1個(gè)人使用,好像沒(méi)問(wèn)題。100個(gè)人使用,就直接返回系統(tǒng)錯(cuò)誤了,怎么辦?或者是直接卡死了。
后端的性能測(cè)試的主要參數(shù)就是TPS,每秒鐘支持多少個(gè)請(qǐng)求,基本上可以推算出來(lái)可以支持多少人同時(shí)在線。
舉例說(shuō)明,在修真院里,獲取任務(wù)列表這個(gè)接口的TPS是100:
這表示,一秒鐘之內(nèi),我可以同時(shí)響應(yīng)100個(gè)請(qǐng)求。
那么,多少人在線,會(huì)可能100個(gè)人同時(shí)點(diǎn)擊任務(wù)呢?
可能100個(gè)人在線,同一時(shí)間只有一個(gè)人會(huì)點(diǎn)任務(wù)。
大致我們認(rèn)為,10000個(gè)人在線,才會(huì)達(dá)到TPS100的效果。
所以簡(jiǎn)單推算,如果TPS是100,我們能夠支持10000個(gè)人在線,再多了就不行了。
這些具體的數(shù)據(jù),其實(shí)都不用推送,通過(guò)數(shù)據(jù)采集和日志分析就可以得到。
但對(duì)于PM來(lái)講,除了知道這些基礎(chǔ)的概念和知識(shí)外,最關(guān)鍵的就是要理解,項(xiàng)目中的分工是什么樣子。
第四章 不情愿的結(jié)尾
這幾天因?yàn)橐恍┨厥獾氖虑?#xff0c;專欄的進(jìn)度有所延誤。
但是關(guān)于測(cè)試的介紹,已經(jīng)算是七七八八八九不離十了。
為什么PM一定要懂測(cè)試,已經(jīng)講的很清楚了,順帶也講了一下性能和回歸測(cè)試。
對(duì)于PM來(lái)說(shuō),功能測(cè)試是必須要掌握的。
再回顧一下測(cè)試的內(nèi)容,我希望你能理解到:
1.測(cè)試用例的寫法
2.Bug的優(yōu)先級(jí)
3.Bug的生命周期
4.開發(fā)環(huán)境,測(cè)試環(huán)境和線上環(huán)境的區(qū)別
5.發(fā)布流程和角色分工
6.性能測(cè)試和自動(dòng)化測(cè)試的歸屬
當(dāng)你確定這些都理解了之后
(最好的理解方式就是去修真院的官網(wǎng)做任務(wù),沒(méi)有什么比親自完成任務(wù)更能檢驗(yàn)?zāi)銓W(xué)習(xí)成果的方式了)
就可以準(zhǔn)備進(jìn)入我們的PM之門了。
這是一個(gè)令人期待的事情。
產(chǎn)品調(diào)研,競(jìng)品分析,通用模塊的設(shè)計(jì),敏捷開發(fā)流程,MVP等等各種東西即將打開在你眼前
到底你是喬布斯,還是雷布斯,還是伽汝布斯,學(xué)了就知道了。
好了~我們?cè)赑M的課程里見,愿你提前練好金鐘罩,告訴研發(fā)小伙伴:
砍我可以,砍需求不行。
第一章全五節(jié)的內(nèi)容就到此結(jié)束啦
下一屆我們進(jìn)入第二章
【不積跬步,無(wú)以成千里,從公用模塊開始吧】
第一節(jié):
【常用的功能模塊有哪些】,敬請(qǐng)期待
歡迎來(lái)交流群與大家一起學(xué)習(xí)討論,在里面進(jìn)行實(shí)時(shí)的溝通答疑
總結(jié)
以上是生活随笔為你收集整理的从零开始学产品第六篇:更强大的测试,自动化测试和性能测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到朋友死了是什么意思啊
- 下一篇: Volley 源码解析之网络请求