◆李玉婷 李鶴群 / 文
基于瀑布模型的軟件質量報告工具開發
——泛亞汽車的應用實踐
◆李玉婷 李鶴群 / 文
本文以編制質量周報為例,講述如何基于瀑布模型、使用VBA進行軟件質量報告工具的設計和開發,通過此工具可以自動地定期編制PPT格式的質量報告,并向預先設定的收件人推送。該工具達到了自動地定期編制PPT格式質量報告和自動推送的目的,極大地提高了QA工程師的工作效率。
瀑布模型;VBA;PPT;質量報告
泛亞汽車技術中心有限公司(簡稱泛亞)由上海汽車工業(集團)總公司與美國通用汽車各出資50%組建,是亞太地區首家合資的專業汽車技術與設計中心,主要負責上汽通用汽車所有車型以及上汽、上汽通用五菱部分車型的設計開發工作。泛亞在全面建設汽車電子研發能力的同時,致力于構建基于CMMI的軟硬件開發過程的質量保證體系。CMMI強調過程和產品質量保證(即PPQA),主要職責包括:依據適用的過程說明、標準及程序,客觀評估所執行的過程、工作產品及服務,界定并記錄不符合的議題,向成員與管理人員提供質量保證活動結果的反饋,確保不符合項得到處理。
泛亞工程質量部在對軟硬件項目進行質量保證工作的過程中,需要定期編制并發布質量報告給相關的領導和工程師。以軟硬件項目的質量周報為例,采用傳統的人工方式編制質量報告,費時費力且容易出錯,如:因為不符合項管理系統的數據具有實時性,人工采集數據很難確保每周定時采集;從系統中采集的數據需先通過Excel公式和圖表處理,然后再拷貝到PPT模板中,PPT模板中的日期等信息在人工修改時易遺漏等。本文對上述問題的改進,提出了一種基于瀑布模型、使用Microsoft Office VBA開發工具的方法,用以實現自動地定期編制PPT格式質量報告并推送的目的。
軟件質量報告工具的設計和實現是基于瀑布模型進行的,包含了需求分析、概要設計、單元設計和測試這4個階段。
在進行需求分析之前,需確定本工具開發、實現和運行的環境,因為不符合項管理系統導出的原始數據為Microsoft office支持的格式,主要的數據處理工作在Microsoft Excel中完成,最后生成的工作產物為Microsoft PPT,推送質量報告用到了Microsoft Outlook,所以確定通過Microsoft Office VBA編寫程序并使用Excel VBA開發環境。
在需求分析階段,工程師收集對軟件質量報告工具的需求并進行了分析,形成了功能需求和非功能需求。
2.1功能需求
功能性需求定義了一個軟件系統或組件的功能,也是一個系統需要提供的功能及服務。其內容主要包括需求描述、模塊劃分及用例圖。
2.1.1需求描述
對功能需求的描述,主要有六個方面:
——定期每周一早上8:00運行工具;
——訪問不符合項管理系統,按照指定的項目篩選數據并下載;
——計算并匯總各項目的不符合項總數等3個指標的數據;
——針對每個項目分別從不符合項狀態、不符合項應對和重點關注的不符合項三個方面進行統計分析,并生成圖表;
——下載QA周報模板,更新模板中的日期信息,更新各項目度量數據;
——自動發送郵件給指定收件人,郵件內容可設定或修改,附件為QA周報。
2.1.2模塊劃分
針對上述需求進行分析后,將軟件質量報告工具拆分為三個大模塊,包括主程序、模板文件和配置文件,其中主程序繼續劃分為六個功能模塊(如表1所示)。

表1 模塊劃分
2.1.3用例圖
本工具系統的上層用例圖參見圖1,系統的主要參與者分為兩類,即普通用戶和管理員。普通用戶在運行本工具之前,可以根據需要修改配置文件中的配置信息,也可以保持默認配置;普通用戶在確認配置信息無誤后,可以通過“質量報告工具界面”執行本工具。管理員除了普通用戶的權限之外,還可以修改模板文件,維護或單步調試圖示中各子功能模塊的代碼。

圖1 用例圖
2.2非功能需求
本工具非功能性需求主要包括系統的實施需求、正確性、易用性、健壯性等。
對非功能需求的描述,主要有五個方面:
——實施需求:本工具在PC上運行,要求安裝正版Microsoft Office 2010或以上版本,包含Excel、PPT和Outlook;
——性能:系統能夠支持一個用戶正常使用,從運行工具到完成PPT報告的總時間在五分鐘內;
——正確性:系統生成的PPT報告數據正確,符合模板要求;
——易用性:系統簡單易用,通過默認配置等措施,減少用戶操作;
——健壯性:當用戶無意中進行了誤操作或輸入異常信息時,系統應能正常運行并給予相關提示信息。
基于以上需求分析階段確認的需求,工程師在進行軟件設計和實現時,同時考慮了代碼層面的技術方法和安全性等其它因素。
3.1概要設計和單元設計
本工具的軟件設計階段包括概要設計和單元設計,下面以“下載不符合項網頁原始數據”“生成PPT質量報告”和“發送質量報告郵件”模塊為例,將概要設計和軟件設計結合起來進行論述。
3.1.1下載不符合項網頁原始數據
本模塊實現的功能為:訪問不符合項管理系統,并下載不符合項原始數據。
其入口函數的設計如表2所示。

表2 函數GetSrcDataFromNCS
本模塊涉及到的關鍵處理是從不符合項系統下載原始數據,用到的關鍵技術是URLDownloadToFile。
3.1.2生成PPT質量報告
本模塊實現的功能為:根據Excel質量報告和PPT模板生成并輸出PPT格式的質量報告。
其入口函數的設計如表3所示。

表3 函數CreateQAReportPPT
本模塊的關鍵處理是生成PPT類型的質量報告,用到的關鍵技術是生成PPT文件、更新圖表數據、新建幻燈片及調整插入圖表位置大小等。
3.1.3發送質量報告郵件
本模塊實現的功能為:編輯郵件并發送給指定收件人。
其入口函數的設計如表4所示。

表4 函數SendMail
本模塊的關鍵處理是新建OutLook文件、編輯并發送,用到的關鍵技術是Microsoft OutLook VBA 文件編輯和發送。
3.2信息安全
本工具在運行過程中,有2處操作涉及到信息安全,考慮到公司的要求,在實施時做了不同處理(見表5)。

表5 信息安全處理
3.3其他
針對需求“定期每周一早上8:00運行工具”,在實現時考慮使用Windows計劃任務,即新建一個計劃任務,其配置如圖2所示。
軟件質量報告工具開發完成后,工具開發工程師對每個函數都進行了單元測試,并對每個功能模塊分別進行了功能測試,經正常用例和異常用例測試并通過后,在2015年2月正式發布。

圖2 任務計劃配置
工具發布后在QA組內開始進行試應用,發現了軟件質量報告工具的一些缺陷和問題,分別進行了修改和優化,并持續維護。
本文基于瀑布模型理論,論述了應用Microsoft Office VBA的工具開發方法,用以實現周期性自動生成PPT格式的質量報告的途徑。
通過數據采集方式、數據處理方式和報告編寫方式的三大轉變有效解決了手工收集數據、編制PPT質量報告的問題。首先,數據采集方式由手工轉為工具自動執行,能實現在設定的時間自動“下載不符合項網頁原始數據”,避免了工程師因為各種臨時工作任務或休假的因素而導致的任務延誤。其次,數據處理方式由工程師各自根據工作習慣執行轉為工具固定模式自動執行,能實現每次處理數據的方法和結果都保持一致,避免了不同的工程師因為熟練程度、理解差異而造成的數據異常。再次,報告編寫方式由手工轉為工具自動根據模板和輸入數據編寫,能實現每次編寫報告時的更新步驟一致,避免了工程師因疏忽或其它原因造成的數據更新遺漏或錯誤。
不僅如此,本工具還提供了進階的功能“發送質量報告郵件”。該功能可以預先配置收件人、郵件主題和郵件內容,根據每周的實際情況對郵件主題和內容進行調整后自動發送給收件人,簡化了工程師的工作。
立足于本文的探索,工程質量部推出了工具開發計劃,旨在通過辦公自動化,將工程師從繁瑣的重復工作中解放出來,將工作重點聚焦到業務能力的提升,同時提高工程師的工作效率。
(略)
(作者單位:泛亞汽車技術中心有限公司)