這個作業屬于哪個課程 | <2020 春 W 班 (福州大學)> |
---|---|
這個作業要求在哪裡 | <作業要求> |
團隊名稱 | <旗山的驕傲> |
這個作業的目标 | <Alpha 沖刺> |
作業正文 | <作業正文> |
其他參考文獻 | <《建構之法》> |
part.01 測試工作安排
前端
-
web 前台
- 測試内容:
- 單元測試:使用 chorme 的插件 Frames per second、Component render 對内部 js 方法單元測試
- 性能測試:使用 Vue.js Devtools v5.0 模拟多種正常、峰值以及異常負載條件來對系統的各項性能名額進行測試
- 測試人員
- 221701418_王肅南
-
web 背景
- 單元測試:使用 Jtest 對内部 js 方法單元測試
- 性能測試:使用百度雲第三方性能測試工具模拟多種正常、峰值以及異常負載條件來對系統的各項性能名額進行測試,生成性能模拟報告
- 221701420_程偉行
-
Android
- 單元測試:使用 Espresso、Junit 對内部對應方法進行單元測試
- 記憶體測試:使用 LeakCanary 分析記憶體洩漏
- 221701414_黎家澤
後端
-
後端 API 測試
- API 測試:通過 Postman 對後端編寫的所有 http(GET\POST)接口子產品進行測試
- 221701412_陳浩男、221701429 黃曉東、221701432 鄭斯彬
-
後端單元測試
- API 測試:通過 Junit 對後端工具類對應方法進行測試
- 221701432 鄭斯彬
-
後端架構(spring boot)單元測試
- API 測試:通過 spring boot 的測試子產品(spring-boot-starter-test 基于 junit)對後端架構(spring boot)的服務層進行單元測試
- 221701412_陳浩男、221701432 鄭斯彬
-
後端性能測試
- API 測試:使用 JProfiler 模拟多種正常、峰值以及異常負載條件來對系統的各項性能名額進行測試
- 221701429 黃曉東
part.02 測試工具選擇和運用
-
測試工具選擇
- web 前台:chorme 的插件 Frames per second、Component render、Vue.js Devtools v5.0
- web 背景:Jtest、百度雲第三方性能測試工具
- Android:Espresso、Junit、LeakCanary
-
測試工具介紹
- web 前台:
- chorme 的插件 Frames per second、Component render:chorme 的插件,可對 web 前端 js 代碼進行單元測試,生成報告與可視化圖示
- Vue.js Devtools v5.0:vue 官方性能分析用的插件,可以模拟多種正常、峰值以及異常負載條件來對系統的各項性能名額進行測試
- web 背景:
- Jtest:jest 是 facebook 推出的一款測試架構,內建了 Mocha,chai,jsdom,sinon 等功能。
- 百度雲第三方性能測試工具:百度雲提供的第三方服務,可對程式進行效能分析生成性能分析報告
- Android:
- Espresso:Espresso 是谷歌大力推薦的一套測試架構,從 Android studio2.2 版本開始,google 就開始支援在 as 上 espresso 自動生成單元測試代碼,Espresso 測試運作速度很快,它允許你在應用程式處于靜止時操作和斷言等,Espresso 面向那些認為自動化測試是開發聲明周期的一部分的開發人員,并且雖然它可以被用作黑盒測試,但是熟悉代碼庫的人可以解鎖 Espresso 的全部功能
- Junit:JUnit 是一個 Java 語言的單元測試架構。它由 Kent Beck 和 Erich Gamma 建立,逐漸成為源于 Kent Beck 的 sUnit 的 xUnit 家族中最為成功的一個。 JUnit 有它自己的 JUnit 擴充生态圈。多數 Java 的開發環境都已經內建了 JUnit 作為單元測試的工具
- LeakCanary:使用 MAT 來分析記憶體問題,有一些門檻,會有一些難度,并且效率也不是很高,對于一個記憶體洩漏問題,可能要進行多次排查和對比才能找到問題原因,為了能夠簡單迅速的發現記憶體洩漏,Square 公司基于 MAT 開源了 LeakCanary
- web 前台:
-
測試工具運用
-
- chorme 的插件 Frames per second、Component render:使用 chorme 的插件 Frames per second、Component render 對内部 js 方法單元測試
- Vue.js Devtools v5.0:使用 Vue.js Devtools v5.0 模拟多種正常、峰值以及異常負載條件來對系統的各項性能名額進行測試
-
- Jtest:使用 Jtest 對内部 js 方法單元測試
- 百度雲第三方性能測試工具:使用百度雲第三方性能測試工具模拟多種正常、峰值以及異常負載條件來對系統的各項性能名額進行測試,生成性能模拟報告
-
- Espresso:使用 Espresso 對内部對應方法進行單元測試
- Junit:使用 Junit 對内部對應方法進行單元測試
- LeakCanary:使用 LeakCanary 分析記憶體洩漏
-
-
- 後端 API 測試:Postman
- 後端單元測試:Junit
- 後端架構(spring boot)單元測試:spring-boot-starter-test
- 後端性能測試:JProfiler
-
- 後端 API 測試:
- Postman:Postman 是一款功能強大的發送 HTTP 請求的 工具 ,常用于 web 開發、接口測試,使用非常友善
- 後端單元測試:
- 後端架構(spring boot)單元測試:
- spring-boot-starter-test:Spring Boot 內建的 pring-boot-starter-test 是基于 JUnit 的單元測試工具。
- 後端性能測試:
- JProfiler:JProfiler 是一個商業授權的 Java 剖析工具,由 EJ 技術有限公司,針對的 Java EE 和 Java SE 應用程式開發的,可模拟多種正常、峰值以及異常負載條件來對系統的各項性能名額進行測試
- 後端 API 測試:
-
-
- Postman:通過 Postman 對後端編寫的所有 http(GET\POST)接口子產品進行測試
-
- Junit:通過 Junit 對後端工具類對應方法進行測試
-
- spring-boot-starter-test:通過 spring boot 的測試子產品(spring-boot-starter-test 基于 junit)對後端架構(spring boot)的服務層進行單元測試
-
- JProfiler:使用 JProfiler 模拟多種正常、峰值以及異常負載條件來對系統的各項性能名額進行測試
-
part.03 測試用例文檔
-
測試用例文檔(前端):<點選下載下傳>
-
測試用例文檔(後端):<點選下載下傳>
part.04 測試體會
-
後端的一些體會:
- ① 性能測試其實挺深奧,涉及很多 jvm 的知識,很考驗基礎,但是我了解不多,是以測試起來一知半解,很費勁,花了很長時間搜集有關資料,難度有些大。經此後我要多學習底層知識,不能隻做會架構的碼農。
- ② 代碼的臨界問題是經常容易出錯的地方,出現空指針是一件讓人頭痛的事情。
- ③ 在下一個階段我們一定要做好測試的相關工作,不然前端又來找我背鍋了。
- ④ 我一直認為軟體測試占據着軟體開發中的一個重要的位置,軟體的好壞,我私認為一在想法是否實用,能否貼切實際提升甚至改變使用者的生活習慣;二在軟體可靠性保證,沒有可以穩定使用的軟體不會受到大衆的喜愛。但在測試的過程中發現了自己在這方面的不足,有時候無法編寫出可靠性很高的測試函數或資料,這可能導緻一些可能的問題沒有發現。在這次開發之後需要學習一些新的方面的知識,以讓自己能夠更好的了解程式,編寫可靠的程式。
-
前端的一些體會:
- ① 以前從來沒有進行過測試,這次進行了項目的測試後,學習到了很多,包括性能的測試,單元測試,等等比較深奧的東西。
- ② 測試這方面還有很大的學習和進步空間,學會測試編寫代碼會事半功倍!進階的程式員一定是一個測試高手,我要做進階程式員。
- ③ 測試的過程中遇上許多困難但是還是勉勉強強完成了,畢竟是第一次做測試,希望下次可以做的更好。
part.05 項目測試評述
測試是代碼中重要的一部分,但是又是容易被忽視的一環。以前的測試主要是為了發現問題,總覺得列印一個日志出來也可以達到目的,甚至還更簡單。
在這次 Alpha 過程中,開始發現,測試不僅可以用于發現問題,規範的測試還可以保證重構的代碼可以正确的執行,避免做重複的工作,甚至由于測試用例能很好的反應代碼的臨界等問題,使得不同的開發人員都可以迅速深入了解到代碼的業務邏輯,增加代碼的可讀性、可維護性。
在這次的 Alpha 沖刺過程中,一開始我們的團隊和往常一樣并沒有重視規範測試,到後面接口越來越多、前後端的互動越來越密切的時候,代碼的問題開始不斷的出現,嚴重影響到了代碼的編寫。在問題越來越嚴重的時候,我們在站立式會議中提出,我們目前的測試非常的糟糕,如果還打算繼續把項目做下去,必須按照規範的測試要求,對每個接口、關鍵的方法做全面的測試。
我們當然希望能把項目繼續做下去,但是現實是 Alpha 沖刺時間緊、任務重,後端在後面幾天完成了接口編寫後進行了較為完善的測試;但前端在一人負責一個端的情況下确實來不及照顧到每一個需要測試的方法。經過讨論前端成員決定,Alpha 階段先學會使用各種測試工具,到了下一個階段,我們将使用這些工具來進行規範的測試用例編寫。