CN113434431A - 一种基于fmea的证券期货行业软件可靠性测试设计方法 - Google Patents

一种基于fmea的证券期货行业软件可靠性测试设计方法 Download PDF

Info

Publication number
CN113434431A
CN113434431A CN202110791487.XA CN202110791487A CN113434431A CN 113434431 A CN113434431 A CN 113434431A CN 202110791487 A CN202110791487 A CN 202110791487A CN 113434431 A CN113434431 A CN 113434431A
Authority
CN
China
Prior art keywords
failure
reasons
software
module
exception
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110791487.XA
Other languages
English (en)
Other versions
CN113434431B (zh
Inventor
孙瑞超
王博威
刘进
肖昱
高锋远
李洪威
张磊
刘金明
王志博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dashangsuo Feitai Testing Technology Co ltd
Original Assignee
Dashangsuo Feitai Testing Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dashangsuo Feitai Testing Technology Co ltd filed Critical Dashangsuo Feitai Testing Technology Co ltd
Priority to CN202110791487.XA priority Critical patent/CN113434431B/zh
Publication of CN113434431A publication Critical patent/CN113434431A/zh
Application granted granted Critical
Publication of CN113434431B publication Critical patent/CN113434431B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种基于FMEA的证券期货行业软件可靠性测试用例设计方法,该方法包括:根据获取的各类技术文档,通过结构分析,识别出组成证券期货行业软件系统的所有模块以及全部模块组件;进行功能分析,梳理模块或组件功能;识别模块或组件功能的失效模式,分析可能导致功能异常的干扰因素;针对确定出的干扰因素,结合失效原因库寻找模块或组件功能失效的失效原因以及失效影响;根据得到的失效原因构造特定场景,形成具体的测试步骤;将对系统正确处理失效影响的预期作为期望结果,结合对模块或组件功能的梳理结果细化形成测试用例。本发明为证券期货行业建立了可靠性测试体系,提供了规范化、标准化的可靠性测试设计方法。

Description

一种基于FMEA的证券期货行业软件可靠性测试设计方法
技术领域
本发明涉及软件可靠性测试技术领域,特别是涉及一种基于FMEA的证券期货行业软件可靠性测试设计方法。
背景技术
证券期货行业软件具有分布式部署、高并发、高吞吐量、低延时等特点,是错综复杂的软件系统,因软件系统缺陷所引发的故障,往往会造成很严重的后果,因此,证券期货行业软件的可靠性测试非常重要。
软件可靠性测试的主要思想是验证系统在发生故障或灾难等情况下,容错机制的有效性、业务处理的连续性,系统是否具备抵御风险的能力。目前软件可靠性测试是由测试设计人员对软件功能进行分析,总结人们在长期的软件开发实践中常见的、经典的软件失效案例,分析其发生的原因和失效形式,从而收集失效数据,然后基于失效数据设计出软件可靠性测试用例,进而实现软件可靠性测试。
但是,这种方法在设计测试用例时完全依赖于测试设计人员的经验,在测试设计人员经验不足的情况下,软件可靠性测试的准确性、全面性以及效率都难以保证。
因此,亟需一种适用于证券期货行业软件、规范化、标准化的可靠性测试用例设计的解决方案。
发明内容
本发明的发明目的在于提供一种基于FMEA的证券期货行业软件可靠性测试用例设计方法,为证券期货行业软件可靠性测试用例设计提供解决方案。
为此,本发明提供了以下技术方案:
本发明提供了一种基于FMEA的证券期货行业软件可靠性测试用例设计方法,所述方法包括:
S1、根据获取的各类技术文档,通过结构分析,识别出组成证券期货行业软件系统的所有模块以及全部模块组件;
S2、对S1识别出的所有模块以及全部模块组件进行功能分析,梳理模块或组件功能;
S3、识别模块或组件功能的失效模式,并从应用软件、第三方软件、第三方运行库、操作系统、主机设备、网络环境六个方面分析可能导致功能异常的干扰因素;
S4、针对S3确定出的干扰因素,结合构建的失效原因库寻找模块或组件功能失效的失效原因以及失效影响;
S5、根据S4得到的失效原因构造特定场景,模拟失效原因产生过程,形成具体的测试步骤;根据失效影响多角度分析失效对系统产生的影响,将对系统正确处理失效影响的预期作为期望结果,之后结合S2对模块或组件功能的梳理结果细化形成具体的测试用例。
进一步地,所述技术文档包括:非功能需求文档、架构设计文档、详细设计文档。
进一步地,梳理模块或组件功能,包括:
对模块或组件的功能进行关联分析;
所述功能的关联分析包括:输入模块或组件的具体内容、模块或组件输出的具体内容、技术特性和依赖条件。
进一步地,系统级干扰因素为三类:部署、组件失效和网络。
进一步地,失效原因库的构建包括:
在参考软件可靠性测试标准GB/T 32422-2015和GB/T 28171-2011的基础上,详细分析被测软件系统的特点,对可能导致失效的原因进行分析、归纳和总结,基于功能干扰因素的分类,细化形成失效原因库。
进一步地,失效原因库中的失效原因包括:
软件失效和硬件失效;
软件失效包括:应用软件失效、第三方软件失效、第三方运行库失效和操作系统失效;
应用软件失效原因包括逻辑、接口、数据以及部署方式四个方面;逻辑方面的失效原因包括:重复操作、极端操作、错误操作和并发操作;接口方面的失效原因包括:接口响应异常和接口交互异常;数据方面的失效原因包括:内部数据输入异常、内部数据输出异常、外部数据输入异常和外部数据输出异常;部署方式方面的失效原因包括:单机处理异常和集群处理异常;
第三方软件失效原因包括:支撑和运维两个方面;支撑方面的异常原因包括:运行异常、连接异常和指令交互异常;运维方面的异常原因包括:运行异常、连接异常和指令交互异常;
第三方运行库失效原因包括:静态库失效和动态库失效;静态库失效包括库文件缺失、库文件位数不匹配和库文件存在缺陷;动态库失效包括库文件缺失和库文件位数不匹配;
操作系统失效原因包括:系统调度和系统运行异常两个方面;系统调度方面的失效原因包括:资源不足、资源占用和文件描述符不足;系统运行异常方面的失效原因包括:系统重启和系统崩溃;
硬件失效包括:主机设备和网络环境两个方面;
主机设备方面的失效原因包括:CPU、磁盘、内存、网卡和主板五个方面;CPU方面的失效原因包括:CPU损坏、CPU过载和CPU温度过高;磁盘方面的失效原因包括:磁盘损坏、磁盘空间不足、磁盘IO资源饱和和系统盘只读;内存方面的失效原因包括:内存损坏和内存过载;网卡方面的失效原因包括:网卡损坏、网卡闪断和网卡过载;主板方面的失效原因包括:主板损坏;
网络环境方面的失效原因包括:交换机、路由器和网线三个方面;交换机方面的失效原因包括:交换机损坏、交换机过载、交换机重启、链路故障和端口故障;路由器方面的失效原因包括:路由器损坏;网线方面的失效原因包括:网线损坏。
本发明的优点和积极效果:
本发明中,针对证券期货行业软件的分布式部署、高并发、高吞吐量、低延时等特点,通过FMEA六步法分析系统内各层级功能,根据标准指导构建失效原因库,建立了适用于复杂分布式系统的证券期货行业失效原因库,能够对失效原因进行更全面的分析;同时,为证券期货行业建立了可靠性测试体系,提供了规范化、标准化的可靠性测试设计方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为FMEA六步法示意图;
图2为测试过程及阶段划分示意图;
图3为本发明实施例中基于FMEA的证券期货行业软件可靠性测试设计的流程图;
图4为本发明实施例中硬件干扰因素来源示意图;
图5为本发明实施例中系统级干扰因素示意图;
图6为本发明实施例中简易交易系统架构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
FMEA(Failure Mode and Effects Analysis,失效模式与影响分析)是一种用来确定潜在失效模式及其原因,并分析其可能的后果,从而预先采取必要的措施,以提高产品的质量和可靠性的一种系统化的活动。传统的FMEA测试方法主要应用于硬件和嵌入式软件测试领域,1993年AIA&VDA发布了FMEA手册第一版,最新的版本是2018年发布的FMEA第五版,该手册中描述的设计FMEA(DFMEA)方法同样适用于软件测试。如图1所示,DFMEA通过六步法识别系统中潜在失效及风险并进行优化和改进。但DFMEA方法中分析功能干扰因素主要依赖的是对历史故障事件的积累以及人的经验,没有提供一种系统性的寻找软件功能影响因素以及具体失效原因的方法。
基于此,发明人针对证券期货行业软件的分布式部署、高并发、高吞吐量、低延时等特点,对FMEA方法进行了改进,根据标准指导构建失效原因库,为寻找软件具体失效原因提供依据,基于改进后的FMEA进行测试用例设计,为证券期货行业建立了可靠性测试体系,提供了规范化、标准化的可靠性测试用例设计方法。
测试过程及阶段划分如图2所示,根据测试对象不同,分为系统级测试和模块级测试两类,分别关注模块失效对系统的影响以及组件失效对模块的影响。
参见图3,本发明实施例所提供的基于FMEA的证券期货行业软件软件可靠性测试设计方法,利用基于FMEA的可靠性测试方法来完成如图6所示的证券期货行业某小型简易交易系统测试用例设计。在使用该方法进行可靠性测试用例设计时,需要参考非功能需求说明文件、架构设计文档、概要设计和详细设计文档等完成测试需求分析,借助失效原因库完成测试设计。使用基于FMEA的可靠性测试方法完成简易交易系统的可靠性测试用例设计,主要包括以下步骤:
S1、通过结构分析,识别模块/组件;
根据FMEA第五版中的定义,系统是由模块构成,多个模块的功能结合起来形成系统功能;模块是由组件构成,多个组件的功能结合起来形成模块功能。在结构分析这一过程,需要根据可获取的各类技术文档,包括但不限于非功能需求文档、架构设计文档、详细设计文档等,识别出组成系统的所有模块以及全部模块组件。
在具体实施中,通过架构设计文档可以发现该小型交易系统由交易前置、交易引擎、数据库组成。其中交易前置为多活方式部署;交易引擎为热备方式(1主1备)部署;数据库为单点部署。通过详细阅读交易引擎概要设计文档,可以发现交易引擎通过通讯组件接收来自交易前置的交易指令并返回指令应答;通过持久化组件完成指令和应答的本地持久化;通过热备组件完成主备切换。分析结果如表1所示:
表1
Figure BDA0003161230430000061
S2、通过功能分析,梳理模块/组件功能;
模块作为一个独立的个体,其实现的技术功能可以有很多,但其中的绝大部分功能都属于组件技术功能,在高可用软件系统中,模块对于系统来讲,其主要技术功能一般通过部署方式及运行方式体现,部署和运行方式如前所述分为热备、多活等,相对应的,模块功能分为采用热备/温备/多活模块部署,N机热备/N机温备/多活运行(系统级测试关注的模块功能与传统可靠性测试方法一致,即通过部署方式保证系统的容错及可恢复)。
另外,系统级测试需要对模块的功能进行关联分析,模块级测试需要对组件的功能进行关联分析,以便于后续进行详细的失效原因分析。模块/组件功能的关联分析可以从以下几方面入手:
输入:输入模块/组件的具体内容。根据模块/组件在系统中处理的数据流不同,对输入的内容划分等价类。
输出:模块/组件输出的具体内容。输入的数据来源可以有很多,输出也同理,因此对于不同的输入和输出组合来说,需要验证的内容也有所区别,结合模块/组件的输入与输出,可以帮助我们细化测试场景,形成具体的测试用例。
技术特性:影响功能的可衡量因素。对技术特性的分析,有助于识别技术风险,考虑更多的极端场景。
依赖条件:功能依赖或可能对功能产生影响的因素。对依赖条件的分析,有助于识别运行环境的影响。
在具体实施中,通过交易引擎的详细设计文档关于通讯组件的描述,通讯组件主要负责以组播方式接收来自交易前置的交易指令,并以组播方式返回指令应答;对于来自多个交易前置的指令统一在交易引擎主节点完成排序并存入输入队列;对于处理完的指令应答会出现在输出队列中。功能分析结果如表2所示。
表2
Figure BDA0003161230430000071
S3、列举失效模式,识别干扰因素;
功能干扰因素是指,影响系统并导致系统无法完成某一功能或特征的行为,FMEA第五版中定义硬件功能干扰因素的来源如图4所示,包括五类因素:1)相互作用、2)制造变差、3)客户习惯、4)环境及5)老化。
基于GB/T32422-2015软件异常分类指南,结合证券期货行业软件系统分布式部署和高可用的要求,整理干扰应用软件的因素如图5所示,包括以下六类:1)应用软件、2)第三方软件、3)第三方运行库、4)操作系统、5)主机设备、6)网络环境。
本阶段根据模块/组件功能的不同,选择对应的干扰因素项,作为后续的测试场景设计参考依据。由于在系统级测试中组件失效的表现都体现为模块失效,因此系统级测试中对能够导致组件失效的部分干扰因素进行合并,最终整理的系统级干扰因素为三类:1)部署、2)组件失效、3)网络。
具体实施中,列举出组件功能的失效模式并参考失效原因库,从应用软件、第三方软件、第三方运行库、操作系统、主机设备、网络环境六个方面分析可能导致功能异常的干扰因素。干扰因素分析结果如表3所示。
表3
Figure BDA0003161230430000081
S4、针对确定的干扰因素,结合失效原因库寻找失效原因;
本阶段需要识别模块/组件功能的失效模式、导致模块/组件功能失效的原因以及模块/组件功能失效带来的影响。模块/组件功能的失效模式与具体功能相对应,即功能不可用;模块/组件的失效影响需要分析模块/组件功能失效后对系统/模块产生了什么样的影响;模块/组件的失效原因分析采用的是结合失效库寻找失效原因的方法。
为了解决由于测试设计人员经验不足,可能导致的可靠性测试场景设计不够全面的风险,在参考软件可靠性测试标准GB/T 32422-2015(软件异常分类指南,指南中将缺陷的实际原因分为产品、测试环境、平台、第三方、用户等五方面,同时又细化为硬件、软件、数据、接口、文档、优化等六类具体原因,是本发明中功能干扰因素划分的参考依据)和GB/T28171-2011(嵌入式软件可靠性测试方法标准,其中列举了一些可靠性测试用例分析设计实例,是本发明中失效原因分类的参考依据)的基础上,详细分析被测软件系统的特点,对可能导致失效的原因进行分析、归纳和总结,基于功能干扰因素的分类,细化形成失效原因库,作为失效原因分析过程的指引。
在具体实施中,结合失效原因库已定义内容寻找具体失效原因。本实施例中的失效原因包括:
a)应用软件:数据发送线程接口持续无响应、短暂无响应;交易引擎与交易前置网络阻塞、网络乱序、网络延时、网络丢包。
b)操作系统:资源争抢导致进程挂起。
c)主机设备:内存损坏、内存空间不足;磁盘损坏、磁盘空间不足。
d)网络环境:交换机故障。
S5、设计测试场景及用例。
根据S4得到的“失效原因”构造特定场景,模拟失效原因产生过程,形成具体的“测试步骤”;根据“失效影响”多角度分析失效对系统产生的影响,各类场景均不能导致系统失效是预期,因此对系统正确处理失效影响的预期为“期望结果”,之后结合S2对模块或组件功能的梳理结果(尤其是关联分析得到的“输入输出”)细化形成具体的测试用例。
在具体实施中,根据以上四步分析结果,填写如下测试场景表表单(表4)。
表4
Figure BDA0003161230430000091
Figure BDA0003161230430000101
依据测试场景表单细化形成测试用例,具体的测试用例表如表5所示。
表5
Figure BDA0003161230430000102
Figure BDA0003161230430000111
为了便于理解,下面对S4中的失效原因库进行具体说明,导致系统失效的原因可以分为软件和硬件两类:
1、软件失效
软件角度的功能干扰因素分为应用软件、第三方软件、第三方运行库和操作系统四类。
1.1应用软件:应用软件类失效即被测试软件系统自身出现问题,导致系统失效。失效原因可以细分为逻辑、接口、数据以及部署方式四类。
1.1.1逻辑:从软件逻辑方面考虑,由于软件产品中存在未实现的逻辑或不正确的逻辑,导致软件相关功能失效。
Figure BDA0003161230430000112
重复操作:多次触发软件产品中同样的逻辑处理,由于资源申请/释放异常,导致功能失效。例如资源重复申请和释放。
Figure BDA0003161230430000113
极端操作:功能实现逻辑未考虑各种极限情况下系统中发生切换,导致功能失效。例如峰值压力切换、全连接切换、单一背景切换和复杂背景切换。
Figure BDA0003161230430000114
错误操作:由于没有严格按照操作手册文档中的步骤执行,人为出现了错误的操作,导致功能失效。例如错误参数启动、错误命令发送、进程重复启动、配置文件错误设置。
Figure BDA0003161230430000115
并发操作:系统中同一时间对同一资源进行并发操作,引发冲突或资源不足导致功能失效。例如同一资源并发访问、占大量资源操作并发执行、共享资源并发修改。
1.1.2接口:从接口方面考虑,由于软件产品中组件间进行信息交换出现错误,导致软件相关功能失效。
Figure BDA0003161230430000116
接口响应异常:当接口响应异常时,引发调用方崩溃,或响应恢复接口处理数据异常,导致功能失效。例如接口持续无响应、接口短暂无响应。
Figure BDA0003161230430000117
接口交互异常:当接口出现交互异常时,接口间交互数据丢失、乱序,导致功能失效。例如交互网络阻塞、交互网络乱序、交互网络延迟、交互网络丢包、交互网络数据包损坏、交互网络数据限流。
1.1.3数据:从数据方面考虑,由于软件产品使用了内容错误的、不完整的数据或者缺少读写数据的权限,导致软件相关功能失效。
Figure BDA0003161230430000121
内部数据输入异常:程序因无权限读取本地存储或内存数据库数据导致的失效,及读取到错误、不完整的数据导致的失效。例如加载的初始数据文件或反演流水文件内容不完整、加载的配置文件内容错误或不合理、因权限不足无法读取配置文件。
Figure BDA0003161230430000122
内部数据输出异常:程序因无权限写入磁盘,导致无法输出日志或保存的流水数据,引发的失效。例如程序无写权限。
Figure BDA0003161230430000123
外部数据输入异常:程序接收到错误或者缺失的外部数据,导致的失效。例如输入数据长度错误、输入数据内容错误、输入数据内容缺失。
Figure BDA0003161230430000124
外部数据输出异常:程序因权限或阻塞等原因无法发送的数据,导致发送功能失效。例如权限不足导致数据无法发送、因阻塞导致数据无法发送。
1.1.4部署方式:从部署方式方面考虑,由于系统的单机或多机相关机制出现异常,导致软件相关功能失效。
Figure BDA0003161230430000128
单机处理异常:由于模块是单机部署方式,单一模块失效必然导致相关功能失效。
Figure BDA0003161230430000125
集群处理异常:集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器,集群包含主从模式、负载模式、多活模式。集群中的一个系统发生故障时,集群软件迅速做出反应,将该系统的任务分配到集群中其它正在工作的系统上执行。例如单点故障、多点故障。
1.2第三方软件:第三方软件具有明显的特征:①该类软件可独立运行②为被测程序提供服务支撑以及通过数据交互监控和管理被测程序。失效原因可以细分为支撑和运维两类。
1.2.1支撑:第三方软件为被测系统提供功能支撑,是被测系统不可缺失的部分,由于支撑软件异常等原因导致的被测程序功能失效。
Figure BDA0003161230430000126
运行异常:由于提供支持服务的第三方软件未启动或重启等情况,导致被测程序功能失效。
Figure BDA0003161230430000127
连接异常:由于被测程序与提供支持服务的第三方软件建立连接失败(超时、用户名或密码错误等)、连接断开(软件重启、网络问题)、超过第三方软件允许的最大连接等情况,导致被测程序功能失效。
Figure BDA0003161230430000132
指令交互异常:由第三方软件发出的错误指令(不存在指令、指令参数错误)导致被测程序功能失效。
1.2.2运维:由于提供支持服务的第三方软件未启动或重启等情况,导致被测程序功能失效。
Figure BDA0003161230430000131
运行异常:由于运维软件未启动或重启等情况,导致的被测系统功能异常。
Figure BDA0003161230430000133
连接异常:由于被测系统与运维软件之间建立连接失败(超时、用户名或密码错误等)、连接断开(软件重启、网络问题)、超过第三方软件允许的最大连接等情况,导致的被测系统异常。
Figure BDA0003161230430000134
指令交互异常:由于运维软件发出的错误指令(不存在指令、指令参数错误)等情况,导致的测系统异常。
1.3第三方运行库:第三方库与第三方软件具有明显的区别,其不可独立运行,而是以接口的形式为被测系统提供相应功能。当第三库缺失、位数不匹配(32位与64位不匹配)、存在缺陷时,对被测系统运行造成影响,导致被测系统失效。失效原因可以细分为静态库和动态库两类。
1.3.1静态库:可执行文件中包含了库代码的一份完整拷贝。当库文件“丢失”或“位数不匹配”会影响被测系统的编译过程。
Figure BDA0003161230430000135
库文件缺失:静态库文件缺失,导致系统编译失败。
Figure BDA0003161230430000136
库文件位数不匹配:静态库位数不匹配,导致系统编译失败。
Figure BDA0003161230430000137
库文件存在缺陷:静态库功能实现带有缺陷,被调用时导致系统功能异常。
1.3.2动态库:可执行文件中不包含库代码,在程序运行时载入。需要从启动阶段和运行阶段两个方面考虑库文件异常对被测系统可靠性的影响。
Figure BDA0003161230430000138
库文件缺失:动态库文件缺失或自身带有缺陷,被调用时导致系统功能异常。
Figure BDA0003161230430000139
库文件位数不匹配:被测系统操作位数与动态库操作位数不匹配。
1.4操作系统:作为被测系统的运行载体。当系统本身运行异常(系统重启、系统崩溃),或由于操作系统调度原因导致被测系统进程退出、挂起时,从被测系统整体考虑可能产生的可靠性影响。失效原因可以细分为系统调度和系统运行异常两类。
1.4.1系统调度:操作系统进行资源调度时,交易系统某进程优先级较低,导致长时间挂起。
Figure BDA0003161230430000141
资源不足:进程占用的资源过多,系统剩余资源不足以运行进程。
Figure BDA0003161230430000142
资源占用:由于优先级别低,资源被占用,无可用资源,导致进程挂起。
Figure BDA0003161230430000143
文件描述符不足:当前系统剩余的文件描述符不满足程序使用需求。
1.4.2系统运行异常:系统自身运行出现异常。
Figure BDA0003161230430000144
系统重启:在交易系统正常运行时,重启操作系统,等同于进程失效。
Figure BDA0003161230430000145
系统崩溃:交易系统正常运行时,操作系统崩溃,等同于进程失效。
2、硬件失效
考虑到被测软件系统运行所依赖的运行环境,将硬件失效原因分为主机设备和网络环境两部分。
2.1主机设备:搭载被测软件系统的主机包含诸多硬件设备,如CPU、内存、硬盘等,当主机的硬件设备出现故障或过载时,会导致系统故障。
2.1.1CPU:中央处理器是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
Figure BDA0003161230430000146
CPU损坏:当计算机系统的CPU硬件出现故障无法正常运行,称为CPU损坏。
Figure BDA0003161230430000147
CPU过载:当一个计算机系统的单核或多核CPU占用率达到80%~100%时,称为CPU过载。
Figure BDA0003161230430000148
CPU温度过高:当一个计算机系统的CPU温度超过温度阈值时,称为CPU温度过高。
2.1.2磁盘:硬盘是电脑主要的存储媒介。
Figure BDA0003161230430000149
磁盘损坏:当一个计算机系统的磁盘无法正常加载,称为磁盘损坏。
Figure BDA00031612304300001410
磁盘空间不足:当一个计算机系统的磁盘使用率为100%时,称为磁盘空间占比100%。例如根目录磁盘空间不足、操作系统磁盘空间不足、应用磁盘空间不足。
Figure BDA00031612304300001411
磁盘IO资源饱和:计算机系统的IO资源被其他进程占用达到80%~100%时,成为磁盘IO资源饱和。
Figure BDA00031612304300001412
系统盘只读:磁盘整体只读,无法访问。
2.1.3内存:内存也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
Figure BDA0003161230430000151
内存损坏:当一个计算机系统的内存无法正常加载,视为内存损坏。
Figure BDA0003161230430000152
内存过载:当一个计算机系统的内存占用率为80%~100%时,视为内存过载。
2.1.4网卡:网卡是工作在链路层的网络组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。
Figure BDA0003161230430000153
网卡损坏:当一个计算机系统的网卡无法正常加载,视为网卡损坏。
Figure BDA0003161230430000154
网卡闪断:当一个计算机系统的网卡出现网络闪断,视为网卡闪断。
Figure BDA0003161230430000155
网卡过载:当一个计算机系统的网卡使用率达到80%,视为网卡使用率过载。
2.1.5主板:主板一般为矩形电路板,上面安装了组成计算机的主要电路系统,一般有BIOS芯片、I/O控制芯片、键和面板控制开关接口、指示灯插接件、扩充插槽、主板及插卡的直流电源供电接插件等元件。
Figure BDA0003161230430000156
主板损坏:当一个计算机系统的主板硬件原因导致无法正常运行,视为主板损坏。
2.2网络环境:网络环境是指将分布在不同地点的多个多媒体计算机物理上互联,依据某种协议互相通信,实现软、硬件及其网络文化共享的系统。网络环境如网线、交换机等,当交换机出现丢包或网络环境出现数据堵塞等情况,会导致系统数据错误。
2.2.1交换机:交换机意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。
Figure BDA0003161230430000157
交换机损坏:当一个交换机无法正常工作,视为交换机故障。
Figure BDA0003161230430000158
交换机过载:当一个交换机带宽使用率超过80%,视为交换机过载。
Figure BDA0003161230430000159
交换机重启:重新启动交换机。
Figure BDA00031612304300001510
链路故障:交换机之间或交换机与主机之间链路断开。例如上行链路故障、下行链路故障。
Figure BDA00031612304300001511
端口故障:交换机之间或交换机与主机之间的端口故障。例如上行端口故障、下行端口故障。
2.2.2路由器:路由器是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。
Figure BDA0003161230430000161
路由器损坏:当一个路由器无法正常工作,视为路由器故障。
2.2.3网线:网线是连接局域网必不可少的。在局域网中常见的网线主要有双绞线、同轴电缆、光缆三种。
Figure BDA0003161230430000162
网线损坏:当一个网线无法正常传输网路数据,视为网线损坏。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (6)

1.一种基于FMEA的证券期货行业软件可靠性测试用例设计方法,其特征在于,所述方法包括:
S1、根据获取的各类技术文档,通过结构分析,识别出组成证券期货行业软件系统的所有模块以及全部模块组件;
S2、对S1识别出的所有模块以及全部模块组件进行功能分析,梳理模块或组件功能;
S3、识别模块或组件功能的失效模式,并从应用软件、第三方软件、第三方运行库、操作系统、主机设备、网络环境六个方面分析可能导致功能异常的干扰因素;
S4、针对S3确定出的干扰因素,结合构建的失效原因库寻找模块或组件功能失效的失效原因以及失效影响;
S5、根据S4得到的失效原因构造特定场景,模拟失效原因产生过程,形成具体的测试步骤;根据失效影响多角度分析失效对系统产生的影响,将对系统正确处理失效影响的预期作为期望结果,之后结合S2对模块或组件功能的梳理结果细化形成具体的测试用例。
2.根据权利要求1所述的一种基于FMEA的证券期货行业软件可靠性测试用例设计方法,其特征在于,所述技术文档包括:非功能需求文档、架构设计文档、详细设计文档。
3.根据权利要求1所述的一种基于FMEA的证券期货行业软件可靠性测试用例设计方法,其特征在于,梳理模块或组件功能,包括:
对模块或组件的功能进行关联分析;
所述功能的关联分析包括:输入模块或组件的具体内容、模块或组件输出的具体内容、技术特性和依赖条件。
4.根据权利要求1所述的一种基于FMEA的证券期货行业软件可靠性测试用例设计方法,其特征在于,系统级干扰因素为三类:部署、组件失效和网络。
5.根据权利要求1所述的一种基于FMEA的证券期货行业软件可靠性测试用例设计方法,其特征在于,失效原因库的构建包括:
在参考软件可靠性测试标准GB/T 32422-2015和GB/T 28171-2011的基础上,详细分析被测软件系统的特点,对可能导致失效的原因进行分析、归纳和总结,基于功能干扰因素的分类,细化形成失效原因库。
6.根据权利要求5所述的一种基于FMEA的证券期货行业软件可靠性测试用例设计方法,其特征在于,失效原因库中的失效原因包括:
软件失效和硬件失效;
软件失效包括:应用软件失效、第三方软件失效、第三方运行库失效和操作系统失效;
应用软件失效原因包括逻辑、接口、数据以及部署方式四个方面;逻辑方面的失效原因包括:重复操作、极端操作、错误操作和并发操作;接口方面的失效原因包括:接口响应异常和接口交互异常;数据方面的失效原因包括:内部数据输入异常、内部数据输出异常、外部数据输入异常和外部数据输出异常;部署方式方面的失效原因包括:单机处理异常和集群处理异常;
第三方软件失效原因包括:支撑和运维两个方面;支撑方面的异常原因包括:运行异常、连接异常和指令交互异常;运维方面的异常原因包括:运行异常、连接异常和指令交互异常;
第三方运行库失效原因包括:静态库失效和动态库失效;静态库失效包括库文件缺失、库文件位数不匹配和库文件存在缺陷;动态库失效包括库文件缺失和库文件位数不匹配;
操作系统失效原因包括:系统调度和系统运行异常两个方面;系统调度方面的失效原因包括:资源不足、资源占用和文件描述符不足;系统运行异常方面的失效原因包括:系统重启和系统崩溃;
硬件失效包括:主机设备和网络环境两个方面;
主机设备方面的失效原因包括:CPU、磁盘、内存、网卡和主板五个方面;CPU方面的失效原因包括:CPU损坏、CPU过载和CPU温度过高;磁盘方面的失效原因包括:磁盘损坏、磁盘空间不足、磁盘IO资源饱和和系统盘只读;内存方面的失效原因包括:内存损坏和内存过载;网卡方面的失效原因包括:网卡损坏、网卡闪断和网卡过载;主板方面的失效原因包括:主板损坏;
网络环境方面的失效原因包括:交换机、路由器和网线三个方面;交换机方面的失效原因包括:交换机损坏、交换机过载、交换机重启、链路故障和端口故障;路由器方面的失效原因包括:路由器损坏;网线方面的失效原因包括:网线损坏。
CN202110791487.XA 2021-07-13 2021-07-13 一种基于fmea的证券期货行业软件可靠性测试设计方法 Active CN113434431B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110791487.XA CN113434431B (zh) 2021-07-13 2021-07-13 一种基于fmea的证券期货行业软件可靠性测试设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110791487.XA CN113434431B (zh) 2021-07-13 2021-07-13 一种基于fmea的证券期货行业软件可靠性测试设计方法

Publications (2)

Publication Number Publication Date
CN113434431A true CN113434431A (zh) 2021-09-24
CN113434431B CN113434431B (zh) 2022-10-21

Family

ID=77760340

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110791487.XA Active CN113434431B (zh) 2021-07-13 2021-07-13 一种基于fmea的证券期货行业软件可靠性测试设计方法

Country Status (1)

Country Link
CN (1) CN113434431B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473400A (zh) * 2013-08-27 2013-12-25 北京航空航天大学 基于层次依赖建模的软件fmea方法
JP5989194B1 (ja) * 2015-07-03 2016-09-07 株式会社大和総研 テスト管理システムおよびプログラム
US20170193143A1 (en) * 2015-12-31 2017-07-06 Palo Alto Research Center Incorporated Method for modelica-based system fault analysis at the design stage
US20180052762A1 (en) * 2016-08-22 2018-02-22 Red Hat, Inc. Build failure management in continuous integration environments for distributed systems
CN109241281A (zh) * 2018-08-01 2019-01-18 百度在线网络技术(北京)有限公司 软件失效原因生成方法、装置及设备
US10338993B1 (en) * 2018-04-22 2019-07-02 Sas Institute Inc. Analysis of failures in combinatorial test suite
US20210064518A1 (en) * 2019-08-27 2021-03-04 Shield34 LTD. Methods Circuits Devices Systems and Functionally Associated Machine Executable Code For Automatic Failure Cause Identification in Software Code Testing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473400A (zh) * 2013-08-27 2013-12-25 北京航空航天大学 基于层次依赖建模的软件fmea方法
JP5989194B1 (ja) * 2015-07-03 2016-09-07 株式会社大和総研 テスト管理システムおよびプログラム
US20170193143A1 (en) * 2015-12-31 2017-07-06 Palo Alto Research Center Incorporated Method for modelica-based system fault analysis at the design stage
US20180052762A1 (en) * 2016-08-22 2018-02-22 Red Hat, Inc. Build failure management in continuous integration environments for distributed systems
US10338993B1 (en) * 2018-04-22 2019-07-02 Sas Institute Inc. Analysis of failures in combinatorial test suite
CN109241281A (zh) * 2018-08-01 2019-01-18 百度在线网络技术(北京)有限公司 软件失效原因生成方法、装置及设备
US20210064518A1 (en) * 2019-08-27 2021-03-04 Shield34 LTD. Methods Circuits Devices Systems and Functionally Associated Machine Executable Code For Automatic Failure Cause Identification in Software Code Testing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
何鑫等: "软件安全性与可靠性分析技术研究", 《计算机测量与控制》 *
高魏华等: "软硬件综合FMEA在弹载嵌入式软件中的应用", 《空天防御》 *

Also Published As

Publication number Publication date
CN113434431B (zh) 2022-10-21

Similar Documents

Publication Publication Date Title
US5544310A (en) System and method for testing distributed systems
CN112463144B (zh) 分布式存储的命令行服务方法、系统、终端及存储介质
US20100005455A1 (en) Managing software dependencies during software testing and debugging
US8819640B2 (en) Establishing cloud debug breakpoints assigned to users
CN109508295B (zh) 区块链共识算法测试方法、装置、计算装置和存储介质
CN109901985B (zh) 分布式测试装置及方法、存储介质和电子设备
US11221943B2 (en) Creating an intelligent testing queue for improved quality assurance testing of microservices
KR102114339B1 (ko) 액티브/스탠바이 모델을 지원하는 쿠버네티스 시스템의 동작 방법
CN112650676A (zh) 软件测试方法、装置、设备及存储介质
US20200371902A1 (en) Systems and methods for software regression detection
CN110851471A (zh) 分布式日志数据处理方法、装置以及系统
CN103092718A (zh) 测试数据备份系统及方法
US11921604B2 (en) Evaluating system recovery using emulated production systems
US8819494B2 (en) Automatically changing parts in response to tests
US20070150866A1 (en) Displaying parameters associated with call statements
CN113434431B (zh) 一种基于fmea的证券期货行业软件可靠性测试设计方法
CN110764962A (zh) 日志处理方法和装置
Distler et al. Micro replication
US9384074B1 (en) Redirecting service calls using endpoint overrides
CN115757099A (zh) 平台固件保护恢复功能自动测试方法和装置
Costa et al. Chrysaor: Fine-grained, fault-tolerant cloud-of-clouds mapreduce
Mohandas et al. An approach for log analysis based failure monitoring in Hadoop cluster
US11429513B1 (en) Testing and verifying cloud services using a computational graph
Gogada et al. An Extensible Framework for Implementing and Validating Byzantine Fault-tolerant Protocols
EP4354308A2 (en) Computer system and method for evaluating integrity and parsing of a file system and parsing implementation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant