經過一段時間的磨合,逐漸熟悉了測試相關的工作,作為測試主管,負責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為編譯平台。