老程式設計師轉測試 配置測試環境設定共享檔案 提高團隊效率
經過一段時間的磨合,逐漸熟悉了測試相關的工作,作為測試主管,負責ERP系統的軟體測試,產品交付。
1. 只關注C/S架構的UI,B/S和手機端暫不展開。有同事說,B/S頁面做好之後,手機端可以藉助自適應,達到70%左右的功能,完全不用重新開發。但就是這剩餘的30%,會將團隊的士氣降低到及格線之下。手機裝置的螢幕尺寸始終是繞不開的話題,一行到底保留多少列,網格控制元件到底能不能用,還有複雜的圖表圖形,一到手機中檢視,慘烈的不忍直視。
2. 只關注Visual Studio + SQL Server的產品線,前端可以是Angular JS, Vue, Reator,後端是Web API, 這是基本的目標結構定位。雖然使用ORM(Entity Framework) 可以適應多種資料庫,但MySQL, Oracel也必須排除在外,不同的資料庫操作習慣,SQL語言細節,只會讓產品測試難度增加,徒增繁瑣工作,又不能給產品帶來直接的價值。
1 Microsoft Windows
這是基本的環境,每個專案組成員第一天參與專案組的主要工作就是配置環境。提前給組員下載好所有的作業系統映象,給大家平的工作省去不少時間。
從Window Server 2000到Windows Server 2019, 一應俱全。主要關注的作業系統是Windows 10。 多虧了微軟,現在新電腦只配售Windows 10,其實省去了測試的很多工作。但是我們也需要滿足工廠的最低需求,一如既往的支援Windows Server 2003/XP。再加上部分電腦是Windows 7,每次有新版本釋出,我們需要同時在這三個環境中更新程式,測試功能。微軟的瀏覽器IE的測試還更加嚴格,不同的作業系統平臺,不同的語言環境,測試工作更加複雜。
提供映象檔案是第一步,還需要找一臺效能快的電腦,生成VMWare虛擬機器。我們提供Windows Server 2003到Windows 7, Windows 10三個虛擬機器空白系統,這樣遇到客戶報告問題,立馬複製一套虛擬機器環境,還原資料庫,測試客戶問題。
很少的時候會遇到與語言有關的錯誤,我們為此還準備了各個環境的語言包(Language Package)。這裡主要遇到的時多語言環境下,字元寬度的問題。不同的字符集語言寬度不相同,會導致UI有部分控制元件被遮蓋或是看不清,這時直接跟開發人員講解,也講不出所以然。正所謂一圖解千言,把程式放到這個語言環境中截個圖作為BUG的附件,開發人員一看便知道,提高效率。
2 Microsoft SQL Server
資料庫映象檔案,從SQL Server 200到最新的SQL Server 2019,也全部準備。我們的產品主要面向SQL Server 2008 R2,絕大部分時間裡以這個版本為主要資料庫平臺。
SQL Server的問題主要是版本太多,各版本之間又不能平緩過度。低版本的SQL Server備份檔案可以在高版本中恢復,但是有代數限制。比如SQL Server 2000的備份不能直接在SQL Server 2016中還原,必須先到SQL Server 2008或SQL Server 2014中還原,再備份才可以去SQL Server 2016中還原。雖然有時候可以通過SSDT生成資料庫指令碼與資料來跨版本傳送資料,但資料量一大,生成指令碼需要耗費大量時間,而且生成的指令碼可能會出錯。
保留SQL Server Express版本的主要原因是輕量,我們的ERP系統 99% 的情況下只用到了資料庫引擎。在沒有與客戶相同的電腦環境(不同的測試人員安裝不同的作業系統,剛好這個測試人員請假了),遇到客戶報告問題,我們通過複製虛擬機器備份,安裝一份SQL Server Express,可以確保從接到客戶問題報告到開始查詢問題,這個時間點可以控制在30分鐘之內。Express 版本有個令人煩惱的4G和10G檔案大小限制,為解決這個問題,我們在第一步製作虛擬機器的時候,會製作兩份虛擬機器,一份是空白的虛擬機器,另一份是帶有SQL Server 完整版的虛擬機器,虛擬機器的尺寸因為SQL Server 暴漲,跑起來的效能也會下降一些。
SQL Server的各個版本,企業版,標準版暫時沒有影響,我們的工廠系統用不到高階的特性(高可用,高效能)。遇到服務不響應,重啟一下伺服器也不會造成多大損失。SQL Server LocalDB是個好東西,遇到有些問題是Windows 7但又不能安裝SQL Server 2016,直接用Local DB來配置資料庫是個折中的方案。
另外,還有一些SQL Server必備的工具,比如SQL Prompt,SQL Compare等,這些工具非常實用,是生產效率工具。遇到重建索引,可以用SQL Index Manager,遇到SQL 資料庫檔案損壞,需要用SQL Log Recovery匯出日誌資料。遇到效能問題,上SQL Sentry Plan Explorer, 檢視SQL 生成的查詢計劃。各種情況下都需要具備一些工具程式,可以是寫好的EXE,也可以是SQL TSQL指令碼或是Power Shell指令碼。如果遇到工具是開源的,還要考慮把原始碼下載到本機,解壓縮生成編譯,再打包為壓縮檔案。這樣是為了預防有一天工具出了問題或是想改造一下,可以隨手就來。ILSpy反編譯太花時間和精力,還要修正反編譯器的語法問題,折騰的一天兩夜也不是沒遇到過。
3 Microsoft Visual Studio
現在測試工作平臺是建立在TFS之上,好用的Visual Studio必不可少。多年的開發經驗,也是為了自己方便,各個版本的Visual Studio也是一應俱全。
一提到Visual Studio,少不了兩個基本的擴充套件工具,Resharper和Ozcode。因為不做開發,這一部分沒有多少內容可寫,主要是作為TFS客戶端軟體,提交BUG,撰寫測試用例,上傳專案文件。偶爾在工廠裡還能遇到VB6寫的小工具,速度快,使用者好評多,真唏噓微軟這麼多年,給VB增添各處feature,到頭來得到了什麼。
4 Microsoft Office
微軟辦公軟體,從Office 2007到Office 2019, 是微軟的現金牛,傳說這顆星球上的電腦使用者人手一份。
我們的ERP系統是不依賴於微軟Office的。多年以前的一個夜晚,一個使用者開啟ERP系統,生成報表的時候報了個COM錯誤,導致一些事故。後來痛定思痛,生成EXCEL報表,不能依賴EXCEL,也就是說不能依賴COM呼叫,避免問題。Office Excel的版本太多,微軟正版使用者的伺服器沒必要買一份Excel的license來專門作為報表生成用。
Office 主要用來做文件處理。遇到客戶講解報表問題時,可以生成一份帶資料的Excel檔案傳過來,報表格式,取數公式,文字樣式一目瞭然。遇到流程或是難理解的問題,用Visio畫個圖交流也非常方便。市面上有很多畫圖工具,我認為還是微軟的Visio受歡迎,相容性好,使用者基數大。
5 Visual Studio Team Foundation
微軟TFS原始碼和團隊合作伺服器。主要是獲取新版本的程式。
TFS有一些power toys和extension,彌補TFS本身功能上的不足。TFS對SQL Server有版本上的依賴限制。目前支援SQL Server 2008 R2的只有TFS 2012或更低版本。
我推薦測試人員自己的本機電腦也安裝一份TFS,作為文件控制用。這是多年的開發經驗和體會,就算是一個人開發,也需要配置TFS用來管理原始碼,用於對比原始碼變更,撤回舊版本非常容易。雖然平時多做幾個壓縮包也可以湊合,如果壓縮包檔案太多,有時候也會忘記做壓縮包,這個時候,TFS是救星。
這些檔案加起來200GB多一點,如果每個人需要這些檔案時,從網上找或是單獨下載,會浪費大量時間。有其他同事在工作時,大檔案下載會影響收發郵件的效率。平時有空收集這些工具放到公司共享伺服器中,方便大家。這也是基礎中的基礎。平時的工作還會遇到些靈活的小工具,比如AsmSpy,GAC Manager,開源小工具,解決軟體部署大問題。比如之前有同事遇到服務程式不能啟動的問題,死活找不出問題,用AsmSpy一跑,紅色字提示,缺少log4net.dll,5分鐘就可以解決前線人員的問題,救人於水火之中。同時反饋給開發人員,部署時需要將log4net.dll也打包進來,倘若遇到客戶電腦中遇到有log4net.dll時,還要在打包中制定assembly redirect,這樣既不影響客戶的現有程式,也可以讓程式跑起來。一旦將客戶的程式部署成功,再次安裝任何東西要是複雜的,要打申請,審批,一套流程跑下來真是複雜。這之前遇到過.NET Framework的問題,開發人員編譯成.NET 4.5.2, 但客戶的機器只有4.5,按道理說,安裝一個.NET Framework 4.8 可以解決問題,但就是審批不通過,開發人員只好降級編譯,改成以.NET 4.5為編譯平