◆李玉婷 李鹤群 / 文
基于瀑布模型的软件质量报告工具开发
——泛亚汽车的应用实践
◆李玉婷 李鹤群 / 文
本文以编制质量周报为例,讲述如何基于瀑布模型、使用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质量报告的问题。首先,数据采集方式由手工转为工具自动执行,能实现在设定的时间自动“下载不符合项网页原始数据”,避免了工程师因为各种临时工作任务或休假的因素而导致的任务延误。其次,数据处理方式由工程师各自根据工作习惯执行转为工具固定模式自动执行,能实现每次处理数据的方法和结果都保持一致,避免了不同的工程师因为熟练程度、理解差异而造成的数据异常。再次,报告编写方式由手工转为工具自动根据模板和输入数据编写,能实现每次编写报告时的更新步骤一致,避免了工程师因疏忽或其它原因造成的数据更新遗漏或错误。
不仅如此,本工具还提供了进阶的功能“发送质量报告邮件”。该功能可以预先配置收件人、邮件主题和邮件内容,根据每周的实际情况对邮件主题和内容进行调整后自动发送给收件人,简化了工程师的工作。
立足于本文的探索,工程质量部推出了工具开发计划,旨在通过办公自动化,将工程师从繁琐的重复工作中解放出来,将工作重点聚焦到业务能力的提升,同时提高工程师的工作效率。
(略)
(作者单位:泛亚汽车技术中心有限公司)