基于电网信息系统的软件全生命周期测试
作者:网络转载 发布时间:[ 2011/10/17 10:55:49 ] 推荐标签:
一、研究背景
某电网公司信息系统的业务范围主要包括财务、人力、办公、生产、营销、物资等系统。这些业务系统正逐步通过数据接口从分布式向集中式过渡,并将逐步建立设备的一体化。目前,第一批试点系统已开发完毕,正着手于第二批试点系统的建设。
公司信息系统的开发为软件外包形式,在需求设计、开发、运维等阶段划分基本清晰,且具备较为明确的阶段评审标准。但在对信息系统建设的质量管控过程中,仍存在着信息系统测试制度不完善、系统功能不满足使用要求、系统安全隐患较多等问题;同时业务部门对测试业务不熟悉,仅在系统验收阶段进行测试,无法精细化管控开发过程中的质量,从而增加了系统投产的风险和不确定性。因此,公司急需开展具有电网特色的软件全生命周期测试服务,将测试工作融入项目建设及运行维护各阶段,逐步实现对软件全生命周期的质量控制和过程管理,为全面支撑公司信息化创先工作提供基础保障。
二、软件全生命周期测试的意义
信息系统全生命周期是以信息系统为主线,从信息系统的产生直到报废的过程,包括系统规划、需求分析、软件设计、程序编码、运行维护等阶段。目前该电网公司的测试工作只在系统验收阶段进行,仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,具有一定的局限性。因为此时的测试只是针对程序寻找错误,许多设计开发阶段隐藏的问题直到后才被发现。
事实上,软件生命周期的各个阶段都会涉及质量问题。软件开发过程中的缺陷发现得越晚,所需付出的代价越高。因此,为了体现“尽早地和不断地进行软件测试”的原则,必须提前对软件生命周期的每个阶段进行质量管理,通过测试手段实现各个阶段的质量保证。
软件测试应伴随整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。如在项目需求分析阶段要开始参与,审查需求分析文档、产品规格说明书;在设计阶段,要审查系统设计文档、程序设计流程图、数据流图等;在代码编写阶段,需要审查代码,看是否遵守代码的变量定义规则、是否有足够的注释行等。测试与开发同步进行,有利于尽早地发现问题,同时缩短项目的开发建设周期。
三、测试介入阶段
根据公司信息系统建设过程和质量保障重要节点,结合软件生命周期理论和传统软件测试理论,公司软件测试业务主要在以下阶段开展:需求分析阶段、方案设计阶段、编码开发阶段、系统集成阶段、安装部署阶段、试运行阶段、上线运行阶段。
对应系统建设不同阶段,需要开展的测试业务包括:需求测试、选型测试、单元测试、集成测试、确认测试、入网安全测试、验收测试、定期检测、性能调优和补丁测试(见图1)。
图1 测试介入阶段及测试业务分类
四、测试业务类型
1)需求测试
需求测试通过建立基线化跟踪矩阵,分析系统需求说明书中的各项系统需求是否具有可测性,跟踪系统需求变更和测试需求变更,从而明确测试需求文档中需要手工测试的需求,验证系统需求是否符合用户要求。
测试需求验证的测试对象包括信息系统需求分析阶段形成的业务规范、技术规范、需求规格说明书等文档。
通过需求测试,能及时发现需求定义中存在的问题,使相关单位在认知上达成一致,采取有效的预防措施,降低变更的成本;更好地理解产品的功能性和非功能性需求,为制定测试计划和用例打下基础。
2)选型测试
选型测试是在方案设计阶段进行方案评审时,依据、行业和企业的相关标准或用户招标文件的技术要求,从全方位角度对选型中涉及的产品进行测试,为用户提供科学的可量化的产品技术指标和选型测试结果。
开展选型测试必须确定统一的测试指标,从委托方的实际选型需求出发,尽量选择参测产品具有可比性的属性进行测试,以减少因产品差异性而带来的争议。同时要制定统一的评价准则,搭建统一的测试环境,保证测试的公平性。选型测试应从功能实现符合性、业务流程符合性、系统性能符合性、操作规范符合性、数据标准符合性等质量特性对软件产品进行测试。
3)单元测试
单元测试是在编码开发阶段,通过白盒测试方法,从程序的内部结构出发设计测试用例,把已实现的模块或组件作为个体单元进行的测试。单元测试检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。多个模块可以平行地、对立地测试,通常要编写驱动模块和桩模块。单元测试由编程人员和测试人员共同完成。
单元测试的方法分为静态分析和动态测试。采用静态分析方法时,通常要对软件单元的控制流、数据流、接口、表达式等内容进行分析;当动态测试时,通常对软件单元的功能、性能、接口、局部数据结构、独立路径、出错处理、边界条件和内存使用情况进行测试。
4)集成测试
集成测试是在单元测试之后,检验软件单元之间、软件单元和已集成的软件系统之间的接口关系,并验证已集成软件系统是否符合设计要求。集成测试的对象包括任意一个软件单元集成到计算机软件系统的组装过程以及任意一个组装得到的软件系统。
$new$
6)入网安全测试
入网安全测试是系统部署在正式运行环境后,试运行阶段实施的系统级安全检测,目的在于发现信息系统中存在的安全隐患和恶意行为,规避产品上线后可能出现的各种安全风险,是判定系统是否能够接入正式网络环境的重要依据。
入网安全测试的对象包括系统网络环境、主机、数据库、中间件、应用系统、数据等。测试方法包括静态的代码安全测试、动态的渗透测试、配置核查、漏洞扫描等。
7)验收测试
验收测试是以用户的需求为主,按照项目任务书或合同、供需双方约定的验收依据文档检验完整的软件系统,是否满足软件开发技术合同(或软件需求规格说明)规定的要求。其结论是用户确定是否接收该软件的主要依据。
针对验收测试的测试内容主要从适合性、准确性、互操作性、安全保密性、成熟性、容错性、易恢复性、易理解性、易学性、易操作性、吸引性、时间特性、资源利用性、易分析性、易改变性、稳定性、易测试性、适应性、易安装性、共存性、易替换性和依从性等方面来考虑。
8)定期检测
在系统运维阶段,为了保证系统的正常运行,应根据时间节点对系统重点关注的质量特性进行定期检测。通过检测主要的性能指标确保系统综合性能持续保持在用户许可的状态,尽早发现系统中存在的问题,并及时跟踪系统需求的变更。同时,通过对重点关注的安全性指标进行常规性检测,确认系统在试运行测试完成、正式上线之后未出现新的安全隐患,且整体安全性保持在许可范围内。
9)性能调优
性能调优的测试对象是已正式上线运行,各项性能指标已不能满足用户要求的信息系统。性能调优为了确保系统的正常运行,通过对系统的大并发数、长响应时间、资源利用率、系统无故障率、事务处理能力、持续运作时间和故障恢复时间等一系列指标进行测试,检验系统工作能力是否满足用户需求,是否存在性能方面的隐患,系统资源的使用是否达到佳性价比等,为用户评价当前上线系统的软硬件使用效率提供实时直观的数据,对于系统进行升级改造具有重要的参考意义。
10)补丁测试
由于系统内部缺陷或外部环境变化,可能引发系统的需求变更。针对该类现象,可以通过对系统打补丁包升级的方式进行处理,测试人员应对开发方提供的补丁程序进行测试,确保系统在安全稳定的前提下达到预期的目标。
信息系统在正式运行后可能涉及两类补丁程序:完善系统漏洞的系统级补丁,常见的有操作系统补丁、数据库补丁等;为变更系统功能的应用程序补丁,如功能升级补丁、应用系统漏洞补丁等。通过对补丁程序的测试,检验是否满足系统各方面的需求,确保补丁程序有效的实现补丁升级计划。
五、小结
本文以电网信息系统建设为基础编制了软件全生命周期评测技术标准,定义了需求测试、选型测试、单元测试、集成测试、确认测试、入网安全测试、验收测试、定期检测、性能调优、补丁测试等10类测试服务。通过软件全生命周期的系统化测试、规范的测试平台和技术、统一的测评流程和人员,确定系统过程度量和质量度量,保证公司信息系统有序可控的设计、开发和运行,实现了对软件的全生命周期的质量控制和过程管理。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11