1、电信业务软件质量管理过程 1 摘 要 软件质量管理是软件工程理论的一个重要方面。软件产业发展至今,开发方法不断推陈出新,质量管理理念起步较晚,虽也随之改进,却是依旧处于一种不成熟的研究阶段。这是情有可原的,最初对软件开发的理解就是编程序,编程是在一种无序的、崇尚个人技巧的状态中完成的,其质量管理方法也就没办法统一。如今,软件工程在用工程化的方法来规范软件开发的同时,也努力的想要规范软件质量管理过程。这篇论文,探讨的是电信产业软件的质量管理过程。电信业务软件是一类比较特别的软件,它面对的是大众用户,具有自己独特的要求和属性。质量管理是个很 大的范畴,文章将主要从 3 个方面来论述,它们分别是配置
2、管理、软件测试和质量保证,重点会放在软件测试过程。文章以部门正在进行的福建地区的电视上网项目增值业务软件作为引入点,先说明目前的一个质量管理现状,再根据自己在实习中的感受,讨论在电信业务软件中,如何进行质量管理,才能达到一个比较理想的效果。 关键词 : 质量管理 ; 电信业务 ; IPTV ; 测试 电信业务软件质量管理过程 2 Abstract Software quality management is one significant part of software engineering. So far as the software industry developed, progr
3、ammers have been developing new ways and means for developing software. The theory of software quality management with a late start has improved as the software industry developed but still under investigation. The reason for this is that programmers have misread software developing as coding and ma
4、de it a personal skill. This blocked the unification of the theory of software quality management. Nowadays the theories of software engineering try to standardize the software development plus the software quality management process. This article discusses the quality management process of software
5、 developed as the product of the telecommunication business. This kind of software is very special because the final users are the populace requiring specialties. Although quality management is a big topic, the paper demonstrates in three aspects: software configuration management, software testing
6、and software quality assurance, especially the testing process. This paper takes the value-added business of the project IPTV in Fuzhou as an example. It first introduces the state of the quality management process in my dept adopted by other teams, and then discusses a better way to implement quali
7、ty management based on my experience as a intern for two months. Key words: quality management; telecom business; IPTV; software testing. 电信业务软件质量管理过程 3 目录 第一章 软件 质量管理基础理论知识 . 错误 !未定义书签。 1.1 软件 质量是软件工程的根基 . 错误 !未定义书签。 1.2 软件 质量保证 .2 1.3 软件配置管理 .2 1.4 软件测试 .4 1.4.1 测试基础理论 .4 1.4.2 测试的原则、特性和工具 .4 1.4.
8、3 黑盒测试和白盒测试 .5 第二章 电信业务软件 .7 2.1 用户 依赖 的电信业务的特点 .7 2.2 IPTV 增值 业务 .7 第三章 软件质量管理 过程 .10 3.1 软件质量管理的过程 .10 3.2 一个持续的步骤 需求熟悉 . 11 3.3 实质性的开端 测试流程 . 11 3.3.1 测试计划的编写 .12 3.3.2 测试用例的设计和编写 .14 3.3.3 测试用例的模版 .15 3.3.4 测试用例的设计 .17 3.4 测试 执行 步骤 .19 3.5 Bug 的管理 .22 3.6 版本控制 .23 3.7 SQA 活动 .23 第四章 结论 .25 致谢语 .
9、26 电信业务软件质量管理过程 4 参考文献 .27 电信业务软件质量管理过程 5 Contents Chapter 1 The Foundamental of Software Quality Management . 错误 !未定义书签。 1.1 The Basis of Software Engeering: Quality . 错误 !未定义书签。 1.2 Software Quality Assurance.2 1.3 Software Configuration Manangement .2 1.4 Software Testing .4 1.4.1 The Foundamenta
10、l of Software Testing .4 1.4.2 The Principles, Features and Tools .4 1.4.3 Black-box Testing and White-box Testing .5 Chapter 2 Software in Telecom Business.7 2.1 The Features of Telecom Business in Users Eyes.7 2.2 The Value-added Business of IPTV .7 Chapter 3 The Process of Software Quality Manage
11、ment .10 3.1 The Aspects of Software Quality Management .10 3.2 Familiar with The Requirements.9 3.3 The Process of Testing .10 3.3.1 The Plans of Testing .12 3.3.2 Prepare User Cases.14 3.3.3 The Model of The User Cases.15 3.3.4 Design New User Cases .17 3.4 The Steps of Testing .19 3.5 Management
12、of Bugs .22 3.6 Version Control .23 3.7 The SQA Activities .23 Chapter 4 Summary .25 Acknowledgement .26 电信业务软件质量管理过程 6 References .27 第一章 软件 质量管理基础理论知识 作为产品,就具备了质量这 个属性。产品的质量是它优良或出色的程度。作为软件产品,它本就不同于别的工业产品,因而软件产品的质量就不能只局限在工业产品的度量方式上。可以这样理解软件质量:软件质量是许多质量属性的综合体现,各种质量属性反映了软件质量的方方面面。 软件的质量属性很多,如 :正确性、精确
13、性,健壮性、可靠性、容错性、性能、易用性、安全性、 可扩展性、可复用性、兼容性、可移植性、可测试性、可维护性等 等。 人们通过改善软件的各种质量属性,从而提高软件的整体质量。 我们从不曾忘记软件危机这个前车之鉴,我们努力试图规范过程,使得我们的软件产品至 少达到一个预期的质量要求。能力成熟度模型 CMM 对软件质量的定义是: 一个系统、组件或过程符合特定需求的程度; 一个系统、组件或过程符合客户或用户的要求或期望的程度。 质量需要如此之高,才对于软件项目管理,尤其是软件质量管理提出了非常迫切的需求。而且关注质量的要求又在于软件质量要素。从技术角度讲,对软件整体质量影响最大的那些质量属性才是质量
14、要素;从商业角度讲,客户最关心的、能成为卖点的质量属性才是质量要素。对于一个特定的软件而言,我们要首先判断:什么是质量要素,才能给出提高质量的具体措施 ;而不是一股脑地想 把所有的质量属性都做好 ;否则不仅做不好,还可能得不偿失。 1.1 软件 质量是软件工程的根基 软件工程的主要思路是把人类长期以来从事各种工程项目所积累起来的行之有效的原理、概念、技术和方法,特别是人类从事计算机硬件研究和开发的经验教训,应用到软件的开发和维护中。 软件工程的 目的是经济地开发出高质量的软件并有效地维护它。但是任何工程方法(也包括软件工程)都必须以有组织的质量保证为基础。全面的质量管理和类似的理念刺激了不断的
15、过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。软件电信业务软件质量管理过程 7 工程是一种层次化的技术。 支持 软件工程的根基也在于对质量的关注。软件质量管理过程包含很多东西, 其中 比较重要 的 3 方面是 : 软件质量保证 ; 软件配置管理 ; 软件测试 。 1.2 软件 质量保证 软件质量保证( Software Quality Assurance, SQA)是建立 一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。 SQA 职责是 就是 辅助软件工程小组得到高质量
16、的最终产品。 CMM 对软件质量保证的措施是这样描述的:软件质量保证的目的是为 管理者提供有关软件过程和产品的适当的可视性。它包括评审和审核软件产品及其活动,以验证其是否遵守既定的规程和标准,并向有关负责人汇报评审和审核的结果。 软件质量保证 人员必须: 显示的定义“软件质量”的标准; 创建一组活动,这些活动将帮助保证每个软件工程工作产品展示出高的质量 ; 对每个软件项目完成这些质量保证活动; 使用度量以开发改善你的软件过程并最终改善最终产品的质量的策略。 过程质量与产品质量存在某种程度的因果关系,假设企业已经制定了软件过程规范,如果质量保证人员发现某些项目的 “ 工作过程以及工作成果 ” 不
17、符合 既定的规范,那么马上可以断定产品存在缺陷。 反之,如果质量保证人员没有发现不符合既定规范的东西,那么也可以断定产品是合格的。符合既定规范的东西并不意味着质量一定合格,仅靠规范无法识别出产品中可能存在的大量缺陷。一般而言 ,质量保证的技术含量是比较低,只能检查出肤浅的缺陷,不能对付有技术难度的缺陷。所以单独的 “ 质量保证 ” 其实并不能 “ 保证质量 ” 。质量保证对于保证质量而言只是必要的手段,而不是充分的手段。 目前, QA 并不是每个软件企业都会设置的岗位,并不十分普遍。 通常是由测试人员完成这个职责。 电信业务软件质量管理过程 8 1.3 软件配置管理 软 件配置管理( Soft
18、ware Configuration Management, SCM) 是指通过执行版本控制、变更控制等规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。简单来 说,就是管理软件的变化。配置管理 应用于整个软件工程过程,通常由相应的工具、过程和方法学组成。 IEEE“软件配置管理计划标准”关于 SCM 的论述如下: “软件配置管理由适用于所有软件开发项目的最佳工程实践组成,无论是采用分阶段开发,还是采用快速原型进行开发,甚至包括对现有软件产品进行维护。 SCM 通过以下手段来提高软件 的可靠性和质量: 在整个软件的生命周期中提供标识和控制文档、源代码、接口定义和数据库等工件
19、的机制; 提供满足需求、符合标准、适合项目管理及其它组织策略的软件开发和维护的方法学; 为管理和产品发布提供支持信息,如基线的状态,变更控制、测试、发布、审计等等。 ” 配置管理是对工作成果的一种有效保护 。 软件配置管理是贯穿于整个软件过程中的保护性活动。 软件产品在开发的过程中不是不变更,而是“太容易”发生变更了。单个程序员 可能会对各自 负责的模块进行修改, 一旦发生遗漏, 最大的麻烦 就 是 自己的或者别人的 工作成果被覆 盖。 SCM 目的是保证软件项目生成的产品在软件生命周期中的完整性和一致性 .因为变化可能发生在任意时间, SCM 活动被设计来 : (1)标识变化 ; (2)控制
20、变化 ; (3)保证变化被适当地实现 ; (4)向其他可能有兴趣的人员报告变化。 目前的一些 主流 工具: VSS( Visual SourceSafe)是 Microsoft 公司推出的配置管理工具,是 Visual Studio的套件之一。 SourceSafe 是国内最流行的配置管理工具。 CVS 是 Concurrent Version System(并行版本系统)的缩写,它是著名的开放源代码的配置管理工具。 ClearCase: Rational 公司的 ClearCase 是软件行业公认的功能最强大、价格最昂贵的配置管理软件。 Subversion: 是一种开放源码的全新版本控制系
21、统,支持可在本地访问或通过网络访问电信业务软件质量管理过程 9 的数据库和文件系统存储库。不但提供了常见的比较、修补、标记、提交、回复和分支功能性, Subversion 还增加了追踪移动和删除的能力。 1.4 软件测试 1.4.1 测试 基础理论 软件测试是软件质量管理当中最重要的部分。一个公司里面可能没有单独的 QA 人员、配置 人员,但是必定会有测试人员。一旦生成了源代码,软件就必须开始被测试, 使得在交付客户之前能够发现和改正尽可能多的错误。这里必须强调几个 观念 : 测试是为了证明程序有错,而不是证明程序无错误; 一个好的测试用例是在于它能发现至今未发现的错误; 一个成功的测试是发现
22、了至今未发现的错误的测试。 基于不同的立场,存在着两种完全不同的测试目的: 从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品; 从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确 地实现了用户的要求,确立用户对软件质量的信心。 换言之,测试的目的是: 以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。 测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。 实施测试收集到的测试结果数据为可靠性分析提供了依据。 1.4.2 测试 的 原则、 特性 和工
23、具 测试不能表明软件中不存在错误,它只能说明软件中存在错误。 软件 测试 的 原则: 1.应当把 “ 尽早地和不断地进行软件测试 ” 作为软件开发者的座右铭。 2.测试用例应由测试输入数据和对应的预期 输出结果这两部分组成。 3.在设计测试用例时,应包括合理的输入条件和不合理的输入条件。 电信业务软件质量管理过程 10 4.程序员应避免检查自己的程序。 5.充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。 6.严格执行测试计划,排除测试的随意性。 7.应当对每一个测试结果做全面检查。 8.妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护
24、提供方便。 软件 测试 的 特性: 1.可行性:测试工作的实施时间是有限的,测试工作不能遍历所有的可能发生的情况,因此,我们必须有重点和选择地进行测试 工作。 2.完整性:即测试工作应覆盖所有的业务,涉及到所有的功能、数据接口和驱动,能满足用户的业务流程需要。 3.有效性:有针对和有目的地进行测试,能够尽可能地找出系统中隐藏的问题。 4.有序性:按一定的顺序进行。 5.协调性:即每个测试人员应将系统看成一个整体,每个测试工作不是独立进行的,与其他工作人员有相互配合和协调关系。 测试 人员常用 的一些工具 Atlassian Jira: 缺陷跟踪与项目管理软件 。 团队使用它能够让问题 /缺陷跟
25、踪和项目管理过程变得容易, JIRA 关注任务的完成 ,与其它的缺陷跟踪管理工具相 比 ,JIRA 的界面十分友好 ,操作简单 ,配置灵活 . Mercury TestDirector: 基于 Web 的测试管理工具 ,通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能, TD 极大地加速了测试过程。 Mercury LoadRunner: 负载测试解决方案,用于预测系统行为和性能,它也是如今市场中集成负载测试、调整和诊断的方案。可以衡量端对端性能、诊断应用程序和系统瓶颈以及进行调整以获得更佳性能,所有这些都通过单点控制实现。 Mercury WinRunner: 进行功能测试和回归测试。 WinRunner 自动捕获、验证并重放用户交互,以便确定故障并确保部署中的业务流程能顺利实施并保持稳定。