2017年4月10日,就是我33歲生日了票顾,同時在測試這個行業(yè)快10年了,在項目中做測試霸旗,在公司的質量通道的職級評審中戚揭,評審別人也被別人評審,在Qcon做分享精居,見識過失敗的項目潜必、成功的項目,有不少人心懷怨念離開測試這個行業(yè)佛吓,也有不少人借測試職位為踏板垂攘,轉行去做產品和開發(fā),當然也有人一直在測試行業(yè)中辛勤勞動晒他,當中也有不少有換個公司之后陨仅,所謂的測試經驗一文不值。
做測試沒前途灼伤、沒積累狐赡、沒技術含量
可真的是這樣么?
是的猾警,確實就是這樣发皿。
不然也不會有10年工作經驗的測試拂蝎,離職后卻找不到工作的凄美故事
在我看來,最簡單的體現(xiàn)就是是個人都可以對測試指指點點玄货。可以被指指點點的事情證明什么夹界?不專業(yè)嘛隘世。別人的不說,我舉個自己團隊的例子复斥,那天團隊中械媒,在跟開發(fā)溝通AR紅包的性能指標,因為跟游戲更接近痢虹,所以我們參考了互娛對游戲的性能指標兰绣,但整個討論的過程讓我痛苦難言,因為大家都似乎在等著別人的答案臭埋,作為測試心里覺得什么指標才是正確的臀玄,完全不知道;哪怕有想法荣恐,也不敢說累贤;哪怕敢說,在討論之前也沒有準備任何支撐的證據硼被。
要知道渗磅,開發(fā)那么主動說要制定性能指標检访,那肯定是拿產品經理和設計師沒辦法了脆贵,他們內心已經在恐慌起暮,恐慌這樣提無法無天的需求和一直惡化的性能。他們祈求有個專業(yè)双泪,嚴謹?shù)慕巧芩疲拗七@一切,哪怕受傷的可能是開發(fā)自己村斟。對專業(yè)抛猫,嚴謹,測試其中一個專業(yè)性就是來自嚴謹?shù)倪壿嬘饫模邢敕ò芷ィ凶C據,有思路舔哪。當開發(fā)們被產品老大壓迫得大腦發(fā)熱發(fā)昏的時候槽棍,連續(xù)加班被疲勞蒙蔽雙眼的時候,是要冷眼旁觀缆巧、等答案豌拙;還是恥笑開發(fā)不靠譜;還是用你的冷靜嚴謹?shù)膶I(yè)素養(yǎng)幫大家一把呢墩莫?
我記得前一陣過年的紅包項目推捐,快發(fā)布,但當連續(xù)加班的開發(fā)發(fā)現(xiàn)莫名其妙的文件丟失做成了莫名其妙的CRASH牛柒。那時大腦就開始發(fā)熱皮壁,想來個全文件夾掃描。當時找我的一個測試同事說要凌晨加班測試這個大需求蛾魄,當時他了解事實滴须,翻閱svn記錄,冷靜分析原因痛侍,說很有可能是清理工具導致的魔市,而且剛好有個跟這問題相關的放置位置改變的svn記錄。最終想到了真正的解決辦法岂膳。這就叫專業(yè)嘛磅网。
在這里,測試行業(yè)中讓人感受到的沒前途簸喂、沒積累燎潮、沒技術含量,都是自己的不專業(yè)做成的除呵。大家不想再被指指點點,想自己更有前途纠拔,更多積累泛豪,關鍵在于專業(yè)。
更多的關于專業(yè):測試策略
說到這里臀叙,測試同行們价卤,我不得不提慎璧,前一陣我上github,看到有人留言問我既鞠。主要是針對我們很久遠之前寫的一本書里面盡是關于測試的案例和技術盖文,卻半字不提測試中如何設計測試方案。其實這個問題正正問的就是測試的其中一個專業(yè)素養(yǎng):測試策略洒敏。當是舉個栗子也好疙驾,當是補充我們將要出版的《Android移動性能實踐》(開始預售啦!)也好函荣,趁著這篇文章扳肛,我也認真回答一下:
這里我們把這些性能專項介入的需求分為兩類挖息,
第一類就是性能優(yōu)化類
這些需求產生的原因很簡單,大部分時候都是因為要解決或者進一步優(yōu)化某個性能點绪抛,簡單的bugfix已經不行了幢码,要對局部的架構傷筋動骨了。這里肯定需要先了解需求和優(yōu)化方法。然后
要關注性能的此消彼長瓦糕,例如為了在網絡性能上腋么,提升消息的發(fā)送速度和成功率,我們可以有更多冗余包圣勒,更多重試摧扇,但是卻會帶來耗電和流量問題。對吁峻,往往性能優(yōu)化都不是單目標的在张,需要決策的。這里測試要測啄骇,考慮全面的瘟斜。
但是更重要的是要補充對應的外網監(jiān)控螺句,最終的決策用數(shù)據來說話。例如消息成功率提升10%壹蔓,耗電惡化1%,還是成功率提升10%佣蓉,耗電惡化20%,這里的性價比疚膊,自然可以體現(xiàn)出來寓盗。
第二類就是普通功能類
同樣,要了解需求本身和概要設計基显。要關注三點善炫,除了剛剛說的監(jiān)控之外。我們可以先按照這個普通功能是app本身的核心功能還是附加功能窜醉。
核心體驗依賴核心性能艺谆,如果它是核心功能静汤,那就意味著核心體驗。那就要評估它是否對性能有強烈的依賴撒妈。例如查看并發(fā)圖片狰右,對發(fā)送速度有依賴,發(fā)送速度對圖片的壓縮率有依賴嫁佳,對過程中的CPU和內存消耗有依賴谷暮,這些功能,性能就是它的基礎功能的顯著一部分瓤漏,甚至可以直接跟產品討論這里需要訂立的交互類性能的關鍵指標,如流暢度蝶俱、啟動速度饥漫、響應延時等庸队。
影響核心體驗,如果它不是核心功能竿拆,那就意味著它最大且最容易被忽略的風險是证膨,它透過內存鼓黔,磁盤澳化,網絡,CPU資源的搶占缎谷,影響了核心功能的體驗列林。例如在手機QQ中某些功能的預啟動,就很有可能會導致大量GC者甲,搶占CPU砌创,導致并發(fā)I/O,導致如聊天之類的核心體驗被影響刽辙。又例如某功能導致大量緩存產生甲献,讓app直接OOM之類。
這里就是簡單描述下撵溃,關于測試策略缘挑,說起來有點虛。就像打仗诲宇,游擊戰(zhàn)就是策略的一種惶翻,飛機大炮,地面推進也是一種纺荧,合適的時候選擇合適的策略就是這個意思宙暇。但是話說回來议泵,如果不懂磁盤I/O的原理,不明白I/O是會有沖突的型奥;如果不明白各個資源類性能指標是如何影響流暢度的(如內存耗盡時GC for alloc會增加碉京,進而導致stop-the-world會經常觸發(fā)谐宙,再進一步導致卡頓問題),那么我相信也不存在制定什么好的測試策略厘灼。這里就要“掏出來”我的第二點了咽瓷,測試技術茅姜。
更多關于專業(yè):測試技術
有點很奇怪月匣,談起策略和技術锄开,就猶如金庸小說中華山派的劍宗和氣宗称诗,總是似乎水火不容寓免。策略婊的觀點,策略是測試的核心競爭力呀撕予,技術是開發(fā)的核心競爭力蜈首,過分強調技術,簡直舍本逐末吆寨。技術婊的觀點呢鸟废?原本測試的技術就應該比開發(fā)好姑荷,不然有什么資格和能力找開發(fā)的錯誤缩擂】瓒ⅲ可憐的我即將出一本團隊用業(yè)余時間寫了兩年的書-《Android移動性能實戰(zhàn)》,里面好死不死憎乙,基本上沒有談什么策略叉趣,只談技術疗杉,基本上就是技術婊的節(jié)奏,這里也就不談太多技術了梢什,倒是要跟大伙說說嗡午,為什么我會選擇當一個技術婊呢?原因有三
1. 因為行業(yè)中確實缺乏技術婊割以,準確來說是深挖技術应媚,用技術解決問題的技術婊,而介紹測試策略的書其實并不缺乏消玄。就像行業(yè)中談自動化測試的丢胚,都在談在什么場景下落地携龟,而避開不談自動化測試在技術上要如何解決它的天然困難,因此就有了我簡書的文章《狠狠地聊一下UI自動化測試》坟桅。而行業(yè)中沒有深挖的原因很簡單仅乓,因為技術不夠蓬戚,策略來補子漩,這很容易成為一個冠冕堂皇的“借口”。遙想那些年紧显,共軍引以為豪的游擊戰(zhàn),讓多少裝備技術精良的敵對勢力也苦不堪然旭绒,這就是技術不夠鸟妙,策略來補的威力焦人。所以這個“策略”沒有沒錯,但是倘若過分依賴重父,就會讓測試技術一直無法成長花椭,這就是我看到的一部分現(xiàn)狀。而且房午,我相信卓越的策略來自好的技術矿辽。
2. 專項測試技術墻高。當然包括其中的專項性能郭厌,它的技術墻確實比較高。需要跨過去折柠,就需要從性能專項的整個體系出發(fā)宾娜,在交互類性能和資源類性能之中,通過通俗易懂的原理扇售,分場景的實用工具和有血有肉的案例來武裝自己前塔,這就形成了這本書的內容。
3. 技術是測試和開發(fā)溝通的一條橋梁承冰,可以相互理解的實質华弓。不知道大家有沒有想過,為什么自己想不出leakcanery這種工具困乒?從我的經驗看來寂屏,我們類似的內存分析云就是開發(fā)和測試在技術這條橋上產生的果實。
自己和心愿
說到這一步娜搂,我不太清楚有多少對錯迁霎,大家也不要麻木相信我。但我還是要說涌攻,大家身處的測試行業(yè)之中欧引,會聽到很多埋冤與失望频伤,比起這些恳谎,我的愿望是身體力行來改變一點點,這些改變憋肖,包括簡書的文章因痛,包括我?guī)У膱F隊,包括那本快出版的書岸更,還包括在今年的QCon 2017北京站還有我的一個專題:
說來可惜鸵膏,其中有個跟后臺自動化壓測和分析的分享,PPT的內容絕對干貨十足怎炊,但最后這幾天因為講師臨時有急事谭企,她也就遺憾地沒有辦法來了廓译。而我就只能在這個極短時間里面,迫使Qcon的Kitty“就范”债查,讓她相信聽眾只會想“干貨”非区、“干貨”、“干貨”
盹廷,而不會理會什么專題中第三個騰訊的講師會不會有廣告的嫌疑征绸,況且我這么短時間,我準備得很痛苦的俄占,哪怕因此我也有了一次管怠,談談iOS的專項測試的機會,讓大家看看這個封閉的ios系統(tǒng)下的專項性能能玩出什么花來缸榄。
最后想說說渤弛,最近有句話讓我感觸良多,也時刻警惕自己甚带,不要看高自己暮芭,也不要看低自己,要學會正視自己欲低。測試也同樣辕宏。
不要看高,行業(yè)發(fā)展很快砾莱,沒有永遠的大牛瑞筐,什么測試架構師,高級測試工程師腊瑟,很多事情穿過測試策略&測試技術聚假,也許你已經被各種OTT了也不自覺,沒有與時俱進的技術闰非,你也會想不出什么好策略去測試音視頻膘格,AI人工智能,大數(shù)據财松,AR/VR等等瘪贱。
不要看低,不要覺得測試是很low的工作辆毡,只想逃避菜秦。相信測試的專業(yè)能力是開發(fā)無可替代的,這份專業(yè)包括你的技術舶掖,策略和嚴謹?shù)倪壿嫛?/p>
要正視球昨,測試兩大職責,提升研發(fā)效率眨攘,提升產品質量主慰。歸根結底關鍵在解決問題嚣州,無論是技術還是策略,歸根結底是解決問題的能力共螺。不斷提升自己的能力避诽,做專業(yè)的測試才是王道。
本文有三個疑似廣告璃谨,一本書沙庐,一場峰會和我的生日,來祝18歲的我生日快樂佳吞,33歲了~9俺!5装狻V帧!