從零開始學產品第六篇:更強大的測試,自動化測試和性能測試

本篇為【從零開始學產品】系列課第1章第5節
歡迎到公眾號菜單欄,獲取產品經理課程更多資料

“測試就是拿點鼠標在電腦上瞎點,或者是用手機隨便戳幾下么?”

“不,是有計劃有意圖的測試,比如說,邊界測試,隨機測試,端到端測試等等。”

“明白了,是有計劃有意思的瞎點點?”

“.........好吧,也可以這么說,但是隨便瞎點點并不是測試的全部:

點哪里,不點哪里,是需要對業務邏輯了解很深入的。”

“但它還是瞎點點,對不對?有沒有比瞎點點更厲害一點的?”

“emmmm,有,就是自動化的瞎點點和大規模的瞎點點。”

第一章 從木牛流馬說起

“懶是推動人類進步的第一動力。”

剛哥寫完了一個Windows腳本的批處理程序之后,笑著說。

這個批處理程序很簡單,就是切換開發環境,測試環境和線上環境的Host文件,以便本地開發的時候可以直接切換環境。

通常我們都是手動拷貝,更改名字,但是對于熟讀《程序員晉級手冊》的剛哥來說:

“但凡可以重復執行的事情都可以自動化”給了他啟發

所以他花了5分鐘的時間寫了一個腳本,只需要執行腳本就可以自動切換了。

而諸葛大神也是同樣的,很早就希望能夠“自動化”的做一些事情。

木牛流馬(諸葛亮發明的運糧工具)

木牛流馬,為三國時期蜀漢丞相諸葛亮發明的運輸工具,分為木牛與流馬。
史載建興九年至十二年(231年-234年)諸葛亮在北伐時所使用,其載重量為“一歲糧”,大約四百斤以上,每日行程為“特行者數十里,群行三十里”,為蜀漢十萬大軍提供糧食。
不過,確實的方式、樣貌現在亦不明,對其亦有不同的解釋。

不管是真是假,做一些自動化的事情,總是讓人樂此不疲。

對測試而言呢?

為什么也需要自動化的測試,又是怎么自動化的。

通過前幾章的學習,我們知道了,正常的系統都會有開發,測試和線上三個環境。

測試人員的工作場所就是在測試環境,而Bug的出現,有可能是在測試,也有可能是在線上。

這個看起來很完美的流程其實缺少了一個關鍵的環節,也是很少被人提到過的。

就是我們總是會持續不斷的維護一個項目,這個叫做項目的迭代更新。

在項目的迭代更新過程中,會發什么不一樣的情況么?

修真院的開放同學花了一周的時間,終于修復了7個Bug,他開開心心的打了版本號,發布到了測試環境。

測試小姐姐苗苗同學,驗收了這些Bug,確認沒有問題,就申請發布到了線上環境。

修真院的用戶晚上熬夜比較多,所以發布一般都選在清晨7點。

發布之后,按照我們的發布流程,苗苗和開放驗證了自己修復的Bug,確認沒有問題,就開開心心的補覺去了。

然后9點之后,用戶陸續掙脫了被窩的封印,逃出了住宅的魔爪,開始使用官網。

然后,他們發現修真院官網中的一個很重要的“評論”功能無法使用。

發生什么問題了?

定位問題有很多種,但是早上的發布無疑是嫌疑最大的。

定位問題之后快速回滾,評論正常。

最后的結論是,開放同學在修復原來的Bug過程中,不小心改動了之前關于評論的代碼,造成評論功能不可用。

為什么會出現這種情況,做為一個非技術人員,有時候很難理解。

在他們眼里,研發團隊總是會出現莫名其妙的問題:

總是修復了一個Bug,引起了另一個Bug

或者是這個版本沒有問題了,下個版本又復現了。

但解決問題的方案總是有兩種:

一種是研發團隊提高自己的技術水準,盡可能的避免高耦合

另一種就是,能否有辦法提前在測試環境發現問題?

這就是所謂的回歸測試。

回歸測試的難點在什么地方呢?

一個系統維護了近兩年,數百個功能點算是比較正常的。

把這些功能點全部做一遍回歸測試,需要多久呢?

每發布一次版本,都要全部做一遍回歸測試么?

沒有問題,就沒有解決方案,有了問題,就自然會有解決方案。

第二章 自動化測試的天下

所以我們把遇到的問題抽象出來:

“我們希望找到一種自動化測試的方法,可以將過去的測試用例而順序執行一遍,來確認之前的功能可用性

這可以節省測試人員大量的時間,提高發布的效率和確保測試的嚴謹度。”

再來看什么是自動化測試。

如果你經常玩網游,你會發現網游現在越來越有意思的是,前十分鐘可以升很多級,然后剩下的就是各種刷刷,沒什么難度 ,就是耗費時間而已。

想要節省時間,可以充值去加快進度。

如果你不想充值,反正時間多的是,但是又不想重復的點擊怎么辦?

【鍵盤精靈】,你需要一個鍵盤精靈,讓鍵盤模擬你的電腦或者是手機的操作,無腦掛機刷。

怎么實現的?

其實道理很簡單,記錄你鼠標或者是手勢的位置,和操作,相當于錄制屏幕一樣。

這就是自動化測試的最簡單的方式。

自動化測試可以通過編寫腳本來完成一些【鍵盤精靈】相似的操作。

簡單說,你可以做一些簡單的游戲外掛了。

但是對于測試這個神圣的職業來說,并不是用來做游戲外掛,而是用來做回歸測試,這個利器就叫做:

selenium

selenium最簡單的自動化測試就是錄制。

點錄制按鈕之后,可以記錄下來你的動作,然后重放。

除此之外,你如果想要做更多的和更深入的操作, 就需要懂一點編程。

用自動化測試,其實仍然存在著很多問題。

比如說,一旦需求變更,自動化測試的腳本就必須跟著改。

這對于測試人員來說,也是一件壓力很大的事。

特別是對需求更新頻率的互聯網公司來說,更大的可能性是每周一遍,很多功能是無法做自動化測試的。

而相對穩定的功能,自動化測試的意義也不會特別大,基本上模塊都比較清楚了:

有改動的地方可以通過開發人員和測試團隊有意識的測試來完成。

所以要不要用自動化測試,用到什么程度,由你來決定。

第三章 性能測試的歸屬

做為測試的收尾一章,還要講最后一個很重要的性能測試。

測試整體來講,可以分成三大部分,功能測試,性能測試和自動化測試。

自動化測試重不重要,說不好,大家各有自己的見解,實際情況不一樣,也沒有辦法。

但性能測試一定是非常非常關鍵的測試。

確切的說,在我們另一個專欄里聊到的【從零開始學敏捷開發】中會說,性能測試不通過,是無法進行Demo的。

小編注:

【從零開始學敏捷開發】致力于將一套可落地執行的敏捷開發流程分享給大家

該流程面向項目團隊全體成員,定位了每個職業在敏捷開發流程中扮演的角色,以及在項目研發不同階段的流程規范。

無論是對團隊協作開發一無所知的項目新手,還是想要提高團隊開發效率,減少BUG數量的技術總監,都能從自己的角度有所收獲。

歡迎掃碼關注

性能測試是必須要有的,這一點不要有任何的疑問,問題就在于是,誰來做性能測試?

很多人會認為這應該交給測試團隊來處理,在測試環境上跑壓測。

但是對于大多數中小型公司(100研發團隊以下,日活1000萬以下)來說,都不必單獨為壓測搭一個環境出來。

放在測試環境跑,讓測試團隊來做性能測試的問題就在于,發現了性能的問題怎么辦?

測試團隊需要跟研發團隊溝通

研發團隊需要看到測試結果,還有可能需要重現步驟和場景

等研發團隊做完之后還需要再重新部署,再重新演示。

這就是我們一直都覺得很有意思的問題,為什么性能測試不讓研發團隊在開發環境自己來呢?

我們說過開發環境是不穩定的

但是在項目研發的后期,抽出來半個小時或者是一個小時的穩定測試時間,是沒有問題的。

壓測不是簡單的給出結果,還是要找出原因,只有開發團隊才會清楚性能的瓶頸,可能需要反復的測試。

這和我們之前說到的【功能測試】是同樣的道理:

我們鼓勵研發團隊自測,但是邊界測試或者是復雜情況下的測試,是需要一個穩定的測試環境的。

性能測試通常包括后端和前端兩種。

前端的性能測試,主要是就是看網頁的大小和響應的速度 。

如果修真院的官網,首屏打開時間是1分鐘,做為PM的你,能接受么?

手機上打開一個Banner圖,發現圖片是12兆,做為PM的你,能接受么?

一個動畫卡的懷疑人生,你能接受么?

不可以的。

那么后端也是一樣的。

1個人使用,好像沒問題。100個人使用,就直接返回系統錯誤了,怎么辦?或者是直接卡死了。

后端的性能測試的主要參數就是TPS,每秒鐘支持多少個請求,基本上可以推算出來可以支持多少人同時在線。

舉例說明,在修真院里,獲取任務列表這個接口的TPS是100:

這表示,一秒鐘之內,我可以同時響應100個請求。

那么,多少人在線,會可能100個人同時點擊任務呢?

可能100個人在線,同一時間只有一個人會點任務。

大致我們認為,10000個人在線,才會達到TPS100的效果。

所以簡單推算,如果TPS是100,我們能夠支持10000個人在線,再多了就不行了。

這些具體的數據,其實都不用推送,通過數據采集和日志分析就可以得到。

但對于PM來講,除了知道這些基礎的概念和知識外,最關鍵的就是要理解,項目中的分工是什么樣子。

第四章 不情愿的結尾

這幾天因為一些特殊的事情,專欄的進度有所延誤。

但是關于測試的介紹,已經算是七七八八八九不離十了。

為什么PM一定要懂測試,已經講的很清楚了,順帶也講了一下性能和回歸測試。

對于PM來說,功能測試是必須要掌握的。

再回顧一下測試的內容,我希望你能理解到:

1.測試用例的寫法
2.Bug的優先級
3.Bug的生命周期
4.開發環境,測試環境和線上環境的區別
5.發布流程和角色分工
6.性能測試和自動化測試的歸屬

當你確定這些都理解了之后

(最好的理解方式就是去修真院的官網做任務,沒有什么比親自完成任務更能檢驗你學習成果的方式了)

就可以準備進入我們的PM之門了。

這是一個令人期待的事情。

產品調研,競品分析,通用模塊的設計,敏捷開發流程,MVP等等各種東西即將打開在你眼前

到底你是喬布斯,還是雷布斯,還是伽汝布斯,學了就知道了。

好了~我們在PM的課程里見,愿你提前練好金鐘罩,告訴研發小伙伴:

砍我可以,砍需求不行。

第一章全五節的內容就到此結束啦

下一屆我們進入第二章

【不積跬步,無以成千里,從公用模塊開始吧】

第一節:

【常用的功能模塊有哪些】,敬請期待

歡迎來交流群與大家一起學習討論,在里面進行實時的溝通答疑

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/388837.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388837.shtml
英文地址,請注明出處:http://en.pswp.cn/news/388837.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Get 了濾鏡、動畫、AR 特效,速來炫出你的短視頻開發特技!

在濾鏡美顏、搞怪特效、炫酷場景等各種新奇玩法驅動下,短視頻開始讓人上癮。 12 月 3 日,七牛云聯合八大短視頻特效平臺共同推出了中國短視頻開發者創意大賽(China Short Video Contest),面向全國邀請廣大開發者&#…

匿名函數、冒泡排序,二分法, 遞歸

匿名函數 lambda 匿名函數 格式 lambda 參數:返回值 函數名統一叫lambda,最多只能寫一行普通的正常的函數 def func(n):return n * n lambda匿名函數寫法 a lambda n : n**2 print(a(3)) 當有多個返回值時suiyi lambda x, y : (1, 2) # 筆試題 …

Redis源碼剖析

Redis源碼剖析和注釋(一)---鏈表結構 Redis源碼剖析和注釋(二)--- 簡單動態字符串 Redis源碼剖析和注釋(三)--- Redis 字典結構 Redis源碼剖析和注釋(四)--- 跳躍表(skiplist) Redis…

Android Activity生命周期

Android生命周期 Android的生命周期:onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDestroy() 如下圖所示: 1.當activity啟動時系統會先調用onCreate(),然后調用onStart(),最后調用**onResume()**方法&#xff0…

date數據存入mysql_Date對象存入mysql數據庫

java.sql.Date,java.sql.Time和java.sql.Timestamp三個都是java.util.Date的子類(包裝類)。java.sql.Date是java.util.Date的子類,是一個包裝了毫秒值的瘦包裝器,允許 JDBC 將毫秒值標識為 SQL DATE 值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以…

盛嚴謹,嚴謹,再嚴謹。_評估員工調查的統計嚴謹性

盛嚴謹,嚴謹,再嚴謹。The human resources industry relies heavily on a wide range of assessments to support its functions. In fact, to ensure unbiased and fair hiring practices the US department of labor maintains a set of guidelines (Uniform Guidelines) to …

復權就是對股價和成交量進行權息修

* 所謂復權就是對股價和成交量進行權息修復,按照股票的實際漲跌繪制股價走勢圖, * 并把成交量調整為相同的股本口徑。股票除權、除息之后,股價隨之產生了變化, * 但實際成本并沒有變化。 * 如:原來20元的股票,十送十之…

前端校驗和后端校驗

問:到底是前端校驗好還是后端校驗好呢? 答:后端校驗比前端校驗更安全,更可靠,前端校驗可以增加用戶體驗,一般來說,在前端校驗的東西在后端也必須校驗(比如登陸用戶名、密碼&#xff…

[MySQL] INFORMATION_SCHEMA 數據庫包含所有表的字段

sql注入后可以通過該數據庫獲取所有表的字段信息1. COLLATIONS表 提供有關每個字符集的排序規則的信息。 COLLATIONS表包含以下列:COLLATION_NAME 排序規則名稱。 CHARACTER_SET_NAME 與排序規則關聯的字符集的名稱。 ID 排序規則ID。 IS_DEFAULT 排序規則是否為其字…

開根號的筆算算法圖解_一個數的開根號怎么計算

一個數的開根號怎么計算2020-11-08 15:46:47文/鐘詩賀帶根號的式子可以直接進行開平方的運算。一些特殊的根號運算有;√2≈1.414、1/2-√3≈0.5-1.732≈-1.232、2√5≈22.236≈4.236、√7-√6≈2.646-2.449≈0.197。開平方的筆算方法1.將被開方數的整數部分從個位起…

arima 預測模型_預測未來:學習使用Arima模型進行預測

arima 預測模型XTS對象 (XTS Objects) If you’re not using XTS objects to perform your forecasting in R, then you are likely missing out! The major benefits that we’ll explore throughout are that these objects are a lot easier to work with when it comes to …

net程序員的iPhone開發-MonoTouch

net程序員的iPhone開發-MonoTouch iPhone軟件的Native開發除了使用Apple推薦的Objective-C Cocoa之外,也有其他的一些工具和SDK提供 基于WEB的形式的一些框架在下面這個文章介紹過 各種SmartPhone上的跨平臺開源框架的總結 http://www.cnblogs.com/2018/archive/20…

ASP防止SQL注入

防止SQL注入http://0.0.0.0/bzhs/login.asp?logTypeedit;WAITFOR DELAY 0:0:5 --logType Replace(Replace(Replace(Replace(logType,"-",""),"",""),"&",""),";","")fcdm Replace(Rep…

protobuf java 生成_protobuf代碼生成

windows :1,兩個文件:proto.exe, protobuf-java-2.4.1.jar2,建立一個工程TestPb,在下面建立一個proto文件件,用來存放【。proto】文件3,將proto,exe放在工程下,4,建立一個msg.proto文件:option …

bigquery_在BigQuery中鏈接多個SQL查詢

bigqueryBigquery is a fantastic tool! It lets you do really powerful analytics works all using SQL like syntax.Bigquery是一個很棒的工具! 它使您能夠使用像語法一樣SQL來進行真正強大的分析工作。 But it lacks chaining the SQL queries. We cannot run …

允許指定IP訪問遠程桌面

允許指定IP訪問遠程桌面 電腦軟件 2010-01-23 02:33:40 閱讀595 評論0 字號:大 中 小 訂閱 一、新建IP安全策略 WINR打開運行對話框,輸入gpedit.msc進入組策略編輯器。 依次打開“本地計算機”策略--計算機配置--Windows設置--安全設置--IP安…

大理石在哪兒 (Where is the Marble?,UVa 10474)

題目描述&#xff1a;算法競賽入門經典例題5-1 1 #include <iostream>2 #include <algorithm>3 using namespace std;4 int maxn 10000 ;5 int main()6 {7 int n,q,a[maxn] ,k0;8 while(scanf("%d%d",&n,&q)2 && n &&q…

Volley 源碼解析之網絡請求

Volley源碼分析三部曲Volley 源碼解析之網絡請求Volley 源碼解析之圖片請求Volley 源碼解析之緩存機制 Volley 是 Google 推出的一款網絡通信框架&#xff0c;非常適合數據量小、通信頻繁的網絡請求&#xff0c;支持并發、緩存和容易擴展、調試等&#xff1b;不過不太適合下載大…

為什么修改了ie級別里的activex控件為啟用后,還是無法下載,顯示還是ie級別設置太高?

如果下載插件時下載不了&#xff0c;這樣設置&#xff0c;打開IE選工具/Internet 選項/安全/自定義級別/設置中的ActiveX控件自動提示“禁用”。 對標記為可安全執行腳本ActiveX控件執行腳本“啟用” 對沒有標記為安全的ActiveX初始化和腳本運行“啟用”&#xff08;下載插件后…

mysql 遷移到tidb_通過從MySQL遷移到TiDB來水平擴展Hive Metastore數據庫

mysql 遷移到tidbIndustry: Knowledge Sharing行業&#xff1a;知識共享 Author: Mengyu Hu (Platform Engineer at Zhihu)作者&#xff1a;胡夢瑜(Zhhu的平臺工程師) Zhihu which means “Do you know?” in classical Chinese, is the Quora of China: a question-and-ans…