CN101697144A - 一种软件测试方法及测试装置 - Google Patents

一种软件测试方法及测试装置 Download PDF

Info

Publication number
CN101697144A
CN101697144A CN200910209152A CN200910209152A CN101697144A CN 101697144 A CN101697144 A CN 101697144A CN 200910209152 A CN200910209152 A CN 200910209152A CN 200910209152 A CN200910209152 A CN 200910209152A CN 101697144 A CN101697144 A CN 101697144A
Authority
CN
China
Prior art keywords
detection information
point
test
software
information point
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.)
Pending
Application number
CN200910209152A
Other languages
English (en)
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN200910209152A priority Critical patent/CN101697144A/zh
Publication of CN101697144A publication Critical patent/CN101697144A/zh
Priority to PCT/CN2010/076783 priority patent/WO2011050657A1/zh
Pending legal-status Critical Current

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
    • G06F11/3692Test management for test results analysis
    • 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)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种灵活有效的软件测试方法及测试装置,在可测试性设置时,按照软件的功能模块的逻辑关系,设置探测信息点及探测信息点之间的关系,在模块代码中标识出探测信息点;在诊断测试时,按照测试需求选择探测信息点,基于所选择的探测信息点定制脚本并执行所述定制脚本,获得对应的探测信息用于诊断测试。应用本发明可使测试时更灵活且有针对性,提高了测试的有效性,还可加深测试的深度从而实现深度测试。

Description

一种软件测试方法及测试装置
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种软件测试方法及测试装置。
背景技术
计算机软件在设计实现与测试维护过程中,会一直存在缺陷查找、故障分析定位等过程。计算机软件是否具有良好的可测试性是用于衡量计算机软件的一个很重要的因素,它将直接影响工作的有效性以及效率。按照业界的定义,软件的可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。简单说,软件可测试性就是一个计算机程序能够被测试的容易程度。具体又可以被分解为如下几个方面:
●可操作性-运行地越好,被测试的效率越高;
●可观察性-所看见的,就是所测试的;
●可控制性-对软件的控制越好,测试越能够被自动执行与优化;
●可分解性-通过控制测试范围,能够更好地分解问题,执行更灵巧的再测试;
●简单性-需要测试的内容越少,测试的速度越快;
●稳定性-改变越少,对测试的破坏越小;
●易理解性-得到的信息越多,进行的测试越灵巧。
在软件可测试性的设计实现方面有一个基本的步骤,即在软件设计时加入可测试性接口,在软件运行时,根据需要提取软件相应信息用于诊断或产生相应测试激励条件用于测试。在具体实现方式上,常见的方式包括:在软件中加入异常数据上报机制用于分析软件中出现的错误;将软件运行信息通过日志上报的形式反映软件运行状况;将软件运行业务中关键数据信息进行有控制的统计及上报。这些常见方法在软件可测试性设计及实现中已经被成熟利用,尤其在嵌入式软件系统中成为一种普遍的做法,对分析软件各种运行状态或故障有很大帮助。
但是上述这些方法主要是侧重在软件诊断方面,所设计的可测试性接口也是根据需求而专门设定,如收集异常信息、运行日志、关键业务数据等,相互之间较难统一,导致实现时各种方法自成体制,叠加在软件之中,间接增加了软件规模。
在直接用于软件(异常)测试的方法上,有一种方法是将软件接收与发送信息的接口增加一个拷贝发往特定地方,例如另一个进程或另一台计算机程序,从而形成黑盒交互测试;另一种方法是在软件中设计不同变量开关,通过后台控制来形成软件不同运行分支。前一种方法将软件对外接口进行控制,提高了软件的可测试性,但它是以黑盒方式工作,对于软件内部更多的信息无法控制,测试有效性得不到深入;后一种方法深入到测试软件内部,不局限于黑盒方式,但是这些变量的加入比较零散,没有一个系统化的分布,也只能是受控改变软件内部运行分支,作用比较单一,扩展性也很差。
综上所述,上面所述的各种软件可测试性设计方法,在实现过程中具有灵活性不足、有效性有局限等缺点,无法有效灵活地实现软件测试。
发明内容
本发明所要解决的技术问题在于,提供一种软件测试方法及测试装置,克服在软件缺陷查找、故障定位时,对软件进行诊断测试的可测试性设计技术不够灵活且有效性受限等缺点。
为了解决上述问题,本发明提出了一种软件测试方法,包括可测试性设置步骤和诊断测试步骤,其中:
可测试性设置步骤,包括:
A1、将软件划分为功能模块并确定出各功能模块的逻辑关系;
A2、按照所述逻辑关系,在各功能模块内部和彼此之间设置探测信息点;
A3、在功能模块代码中标识所述探测信息点;
诊断测试步骤,包括:
B1、根据测试需求从设置的探测信息点中选择出所需的探测信息点;
B2、基于所选择的探测信息点定制测试脚本、执行所述测试脚本;
B3、获取执行所述测试脚本所得探测信息,在测试结束时对探测信息进行统计分析,获得诊断测试结果。
进一步地,所述子步骤A2包括如下步骤:
A21,设置探测信息点中的探测信息基本点,所述探测信息基本点包括代码事务处理输入点、代码事务处理输出点以及代码事务处理中间点;
A22,设置探测信息点中的探测信息补充点,所述探测信息补充点包括:代码中关键信息统计点以及异常测试需求点;
A23,设置所述各探测信息点之间的归属关系、分支关系。
进一步地,所述子步骤B1包括如下步骤:
B11,确定软件诊断测试的测试需求;
B12,按照所述测试需求,确定用于提取探测信息的探测信息点;
B13,对所选择出的探测信息点进行优化选择。
进一步地,所述步骤B11中,首先确定诊断测试的逻辑关系,再按照所述逻辑关系确定测试内容,根据测试内容确定出所需提取的探测信息。
进一步地,所述步骤B12中,确定用于提取探测信息的探测信息点时,包括:确定用于入口信息提取或变化分析的探测信息点,确定用于出口信息提取或变化分析的探测信息点,确定用于过程信息提取或变化分析的探测信息点。
本发明还提供一种软件测试装置,包括可测试性设置模块和诊断测试模块,其中:
可测试性设置模块,用于划分软件为功能模块,并根据功能模块的逻辑关系设置探测信息点,用代码标识出所述探测信息点;
诊断测试模块,用于根据测试需求探测信息点中选择出所需的探测信息点,基于所选择的探测信息点定制测试脚本、执行所述测试脚本,获取执行所述测试脚本所得探测信息,在测试结束时对探测信息进行统计分析,获得诊断测试结果。
进一步地,所述可测试性设置模块又包括:功能模块划分单元,用于将软件划分为功能模块并确定出各功能模块的逻辑关系;探测信息点设置单元,用于按照所述逻辑关系,在各功能模块内部和彼此之间设置探测信息点;代码标识单元,用于在功能模块代码中标识出所述探测信息点;
进一步地,所述诊断测试模块,又包括:探测信息点选择单元,用于根据测试需求从设置的探测信息点中选择出所需的探测信息点;脚本控制单元,用于基于所选择的探测信息点定制测试脚本、执行所述测试脚本;测试输出单元,用于获取执行所述测试脚本所得探测信息,在测试结束时对探测信息进行统计分析,获得诊断测试结果。
进一步地,所述探测信息点设置单元设置的探测信息点包括:
探测信息点中的探测信息基本点,所述探测信息基本点包括代码事务处理输入点、代码事务处理输出点以及代码事务处理中间点;
探测信息点中的探测信息补充点,所述探测信息补充点包括:代码中关键信息统计点以及异常测试需求点;
所述各探测信息点之间的归属关系、分支关系。
进一步地,所述探测信息点选择单元,在选择探测信息点时,是先确定软件诊断测试的测试需求,按照所述测试需求,确定用于提取探测信息的探测信息点;对所选择出的探测信息点进行优化选择。
进一步地,所述探测信息点选择单元,是通过确定诊断测试的逻辑关系,按照所述逻辑关系确定测试内容,根据测试内容确定出所需提取的探测信息;所述探测信息点选择单元在确定用于提取探测信息的探测信息点时,所确定的内容包括:确定用于入口信息提取或变化分析的探测信息点,确定用于出口信息提取或变化分析的探测信息点,确定用于过程信息提取或变化分析的探测信息点。
采用本发明的所述软件测试方法及测试装置,在可测试性设置时,通过划分功能模块、设置探测信息点将软件的工作流程图标识于软件代码之中,探测信息点的设计与分布与软件处理流程的逻辑关系直接关联对应;在进行软件诊断测试时,可根据业务需要直接选择相应的探测信息点,基于所选择的探测信息点,通过定制脚本以及测试所需处理的逻辑关系,通过执行所述定制脚本来获取相应的探测信息。
应用本发明的测试方法及测试装置,一方面提高了可测试性设置时信息定制的灵活性并降低了跟踪成本,另一方面则可以降低软件诊断测试时的难度,在诊断测试阶段大部分工作不仅软件开发人员可以进行,测试人员在进行问题定位时也相当于为其提供了一种灰盒级途径,可促进测试深入开展,提高测试有效性。
附图说明
图1是软件可测试性设计及软件诊断测试方法的基本流程图;
图2是探测信息分级设计的流程图;
图3是诊断测试探测点选择的处理流程图;
图4是软件诊断测试环境工作机制图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步地详细说明。
本发明针对现有测试技术中,尤其可测试性实现过程时具有灵活性不足、有效性有局限等缺点,提出了一种灵活有效的软件测试方法及测试装置,其核心思想包括:在可测试性设置时,按照软件的功能模块的逻辑关系,设置探测信息点及探测信息点之间的关系,在模块代码中标识出探测信息点;在诊断测试时,按照测试需求选择探测信息点,基于所选择的探测信息点定制脚本并执行所述定制脚本,获得对应的探测信息用于诊断测试,从而使得测试时更灵活且有针对性,提高了测试的有效性,还可加深测试的深度从而实现深度测试。
本发明的一种软件测试方法,包括可测试性设置步骤和诊断测试步骤,其中:
●可测试性设置步骤,包括:
A1、将软件划分为功能模块并确定出各功能模块的逻辑关系;
A2、按照所述逻辑关系,在各功能模块内部和彼此之间设置探测信息点;
A3、在功能模块代码中标识所述探测信息点;
●诊断测试步骤,包括:
B1、根据测试需求从设置的探测信息点中选择出所需的探测信息点;
B2、基于所选择的探测信息点定制测试脚本、执行所述测试脚本;
B3、获取执行所述测试脚本所得探测信息,在测试结束时对探测信息进行统计分析,获得诊断测试结果。
进一步的,所述子步骤A2,又可包括如下内容:
A21,设置探测信息点中的探测信息基本点,所述探测信息基本点包括代码事务处理输入点、代码事务处理输出点以及代码事务处理中间点;
A22,设置探测信息点中的探测信息补充点,所述探测信息补充点包括:代码中关键信息统计点以及异常测试需求点;
A23,设置上述各探测信息点之间的归属关系、分支关系。
进一步的,所述子步骤B1,又可包括下列各步:
B11,确定软件诊断测试的测试需求;
B12,按照所述测试需求,确定用于提取探测信息的探测信息点;
B13,对所选择出的探测信息点进行优化选择。
在所述步骤B11中,首先确定诊断测试的逻辑关系,再按照所述逻辑关系确定测试内容,根据测试内容确定出所需提取的探测信息。
在所述步骤B12中,确定用于提取探测信息的探测信息点时,包括:确定用于入口信息提取或变化分析的探测信息点,确定用于出口信息提取或变化分析的探测信息点,确定用于过程信息提取或变化分析的探测信息点。
本发明还提供一种软件测试装置,包括可测试性设置模块和诊断测试模块,其中:
所述可测试性设置模块又包括:功能模块划分单元,用于将软件划分为功能模块并确定出各功能模块的逻辑关系;探测信息点设置单元,用于按照所述逻辑关系,在各功能模块内部和彼此之间设置探测信息点;代码标识单元,用于在功能模块代码中标识出所述探测信息点;
所述诊断测试模块,又包括:探测信息点选择单元,用于根据测试需求从设置的探测信息点中选择出所需的探测信息点;脚本控制单元,用于基于所选择的探测信息点定制测试脚本、执行所述测试脚本;测试输出单元,用于获取执行所述测试脚本所得探测信息,在测试结束时对探测信息进行统计分析,获得诊断测试结果。
进一步的,所述探测信息点设置单元所设置的探测信息点包括:
探测信息点中的探测信息基本点,所述探测信息基本点包括:代码事务处理输入点、代码事务处理输出点以及代码事务处理中间点;
探测信息点中的探测信息补充点,所述探测信息补充点包括:代码中关键信息统计点以及异常测试需求点;以及,
所述各探测信息点之间的归属关系、分支关系。
进一步的,所述探测信息点选择单元,在选择探测信息点时,是先确定软件诊断测试的测试需求,按照所述测试需求,确定用于提取探测信息的探测信息点;对所选择出的探测信息点进行优化选择。
进一步的,所述探测信息点选择单元,是通过确定诊断测试的逻辑关系,按照所述逻辑关系确定测试内容,根据测试内容确定出所需提取的探测信息。
进一步的,所述探测信息点选择单元,在确定用于提取探测信息的探测信息点时,所确定的内容包括:确定用于入口信息提取或变化分析的探测信息点,确定用于出口信息提取或变化分析的探测信息点,确定用于过程信息提取或变化分析的探测信息点。
下面结合具体实施例及附图对上述软件测试方法和测试系统做进一步详细说明。
如图1所示,显示了本发明的软件测试方法的基本流程图,分为软件可测试性设置与软件诊断测试两个基本阶段,其中:软件可测试性设置包括101~步骤103,软件诊断测试包括步骤104~步骤108。
●软件可测试性设置阶段
步骤101中,根据软件所完成的业务需求进行功能模块的划分及逻辑分析。在软件系统设计中,主要的软件功能模块已经有所划分,包括各软件子系统及各业务进程,可以直接采用软件设计时的模块划分结果;然后,进行所关注模块的代码处理逻辑分析,所述逻辑分析基于软件功能模块所要完成的业务功能而展开,将代码用于业务实现的数据与算法进行抽取,相当于将软件模块设计阶段的流程图对应到代码实现中,以理清代码处理内部逻辑关系。
步骤102中,按照步骤101所进行的代码逻辑分析结果,进行探测信息的分级设计,将代码实现中所做的主要工作以探测信息点的方式来表现,并使探测信息点在软件代码中进行合理分布,相当于给代码实现了一个功能扫描。在该步骤102中,所进行的探测信息点设置,包括:探测信息基本点设计、探测信息补充点设计、探测信息点归属关系设计、探测信息点分支关系设计。关于探测信息点的设置,可详细参见下面对于图2的说明。
步骤103中,在对应代码中标识探测信息点。按照步骤102所设置的探测信息点集合,将各个探测信息点对应到功能模块代码中的相应位置,通过特定的方式进行探测信息点的标识(如宏定义方式插入一接口函数可外挂脚本嵌入代码运行),除标识出探测信息点的位置信息外,还可标识探测信息点对应的过程数据通过脚本进行控制。此时就形成一个灰盒模式的软件代码事务处理图,即体现了软件代码所做的主要工作又屏蔽掉了多余的实际代码,去繁就简。
●软件诊断测试阶段,属于开始应用于软件缺陷查找、故障定位过程
步骤104,进行诊断测试所需的探测信息点的选择,即根据测试需求明确出要提取的过程信息,将与过程信息匹配关联的已经在软件代码中设置好的探测信息点选择出来,形成待跟踪信息集合。其细分的步骤为软件诊断测试需求分析、信息提取的探测点分析、探测点优化选择,详细说明参见图3的介绍。
步骤105,基于探测信息点定制出测试脚本,承接前述探测信息点的选择结果,即在每个选择的探测信息点位置,需要提取哪些软件运行过程信息或插入哪些操作逻辑,针对这些要求定制出与探测信息点相对应的测试脚本,将选择出来的探测信息点集合定制出一个测试脚本集合。
步骤106,基于探测信息点执行所述定制的测试脚本,按照诊断测试的基本逻辑过程进行,在软件运行前下载需要位置的探测信息点的定制测试脚本,在运行过程中就可以执行相应测试脚本完成信息提取或插入的操作;根据需要,这些定制脚本可能在同一个测试过程中一起起作用,提取不同位置过程信息,也可能是在不同测试过程中分别起作用,提取不同时段过程信息。
步骤107,判断诊断测试是否结束,若未结束,则循环执行步骤104~步骤106,继续进行诊断测试,若已结束,则转至步骤108;
步骤108,诊断测试若已结束,进行探测信息汇总分析,将待验证信息通过测试脚本提取出来后,根据问题追查的思路进行分析,来确认或排除疑点,充分获取所需验证的真实信息,从而获得诊断测试结果。
图2是图1中所示的步骤102进行探测信息分级设计的详细流程图,分为4个步骤:
步骤201,设置探测信息基本点。
在该步骤中,将代码中一个基本业务功能的完整处理过程视为一个事务处理,如对一条外部来的业务激励消息的内部处理,此处所设置的探测信息基本点包括:
业务处理的入口,即某一功能模块进行事务处理输入点,可能是其它模块发过来的消息或自身的一个输入激励等;
业务处理对外的出口,即某一功能模块进行事务处理输出点,可能是对其它模块发出消息或对自身的一个输出激励等;
业务处理中间过程点,即某一功能模块进行事务处理内部的操作点,如内部处理时的算法步骤或数据转化步骤等。
在上述探测信息基本点中,所述事务处理输入点和事务处理输出点比较易于确定,主要是本模块与其它模块间接口消息或本模块自身时钟消息等,在接口设计中已经确定,本发明中可直接选择出来;对于事务处理内部操作点的选择设置,则没有固定的模式,主要是将内部处理的关键操作步骤进行选择,与测试所处的阶段有关,如果是单元测试操作步骤可设置操作点较细,将相连续的每一个内部操作点都选择出来,信息点位较多但总体规模小;如果是集成或系统测试操作步骤,就可以设置操作点较粗,同一个处理分支只选择一个信息点位即可。
步骤202、设置探测信息补充点。
上述针对软件代码的事务处理步骤进行探测信息基本点的选择,已经覆盖了某一个功能模块业务功能实现的主要框架,除此之外还有一些信息需要关注,做为探测信息的补充。
首先,关注模块代码处理过程中数据信息,尤其是与业务功能相关的关键统计数据信息,它本身并不代表某个操作步骤,但是表示模块所完成业务功能某种统计状态,也是软件诊断测试中需要额外获取的,所以设置作为探测信息统计点,直接关联到这些统计数据。
其次,还要对代码处理的异常进行考虑,前述探测信息统计点主要是正常处理步骤的选择,对于代码异常(包括代码出异常分支处理位置或代码本身正常但需要做异常测试的位置),也进行异常探测点的设置。
进行异常探测点设置时,可能会涉及代码中过多失败处理位置,这可以与软件异常处理信息上报机制相结合。为了完善软件代码的异常处理及异常信息上报,代码中可以将所有函数调用返回失败及业务断言失败进行统一归划,分为不同异常消息,以异常探针的形式向统一服务器上报。这时异常探测点的设计就可简化,在上述异常探针上报的位置进行一个异常探测点设置,当发生各种异常时这一个探测点就可以捕获到。
步骤203、设置探测信息点的归属关系。
此步骤主要是针对前面所设计的探测信息及选择出来的各种探测信息点进行位置级别归属分析,主要体现探测信息点的位置是在当前代码处理主流程中还是进入了函数调用,即所有探测信息点同代码实现时一层层函数调用相类似,也是有一种不同层次的归属关系。
在区分点位的相对级别上,假设以某一处理函数为根函数,其代码中有对其它函数调用,则探测信息点位归属关系有如下几种分类:
根函数代码中设置探测信息点但紧跟无函数调用或有函数调用,但此函数内部代码中无探测信息点设置,这情况定义为只有一级逻辑的探测信息点;
根函数代码中设置有探测信息点且紧跟有函数调用,且此函数内部也有探测信息点设置,这种情况定义为具有二级逻辑的探测信息点,被调用函数代码中所设置的探测信息点即归属于此函数前面的探测信息点;
对于根函数代码中被调用函数,内部没有探测信息点设置且此函数前面也没有探测信息点设置的属于可忽略部分,在代码事务处理图中并不出现。
步骤204、设置探测信息点位分支关系。
此步骤中,属于同一归属级别的探测信息点(例如某一处理函数代码中所设置的一系统探测信息点),还要根据所处的代码分支来考虑其条件分支关系,如if/else if/else的分支关系,对应于业务处理上不同情况,这种分析基于功能代码分支实现,比较容易,但对反映软件处理逻辑十分有用。
图3是图1的步骤104中诊断测试探测信息点选择的处理流程图,包括3个主要步骤:分析确定软件诊断测试需求、确定出探测信息提取的探测信息点、探测信息点的优化选择。
●分析软件诊断测试需求的步骤为:
首先,确定问题定位的基本思路,这个是问题定位的关键步骤,决定后续工作是否在一个正确的方向行驶,需要前期研究好故障表象与真正问题所在,提出基本假设与怀疑,对可能的错误原因进行排列。接下来,按照问题追查的基本思路来明确待验证内容,即在追查过程需要安排哪些验证点及其内容,并形成正式追查的顺序。根据每个验证点所要验证的内容来进而确定需要提取的基本信息,这已经是针对软件本身的过程信息,如某些接口消息内容或某些过程变量的取值或时间顺序等。
●在上述工作得以明确后,就可以进行信息提取的探测信息点分析,
即将需要提取验证的基本信息关联到已经设置标识在代码中的探测信息点,找到信息提取的真正载体。
在分析基本信息与探测信息点的对应关系时,可按照入口消息提取/变化、出口消息提取/变化、过程消息提取/变化来分类,即:
第一种相当于被测软件对象与外界对象的接收接口,可以是接收的异步消息或被其调用的入参;
第二种相当于被测软件对象与外界对象的输出接口,可以是向外部发出的异常消息或调用外部对象的参数;
第三种相当于被测软件对象在内部处理中过程信息,如内部接口消息或内部运行状态或局部变量取值等。
在可测试性设计时,根据软件代码处理逻辑已经有对应的信息探测点分布在这些不同信息位置上,于是将待验证提取信息与探测点关联就变得相对简单,一般是信息在代码哪个位置产生就对应相应的设置的探测点,此外有的提取信息可以对应多个信息探测点。
●最后进行探测点优化选择,最终得出实际利用的信息探测点集合。
前面信息提取探测信息点分析已经将待验证信息同可以提取到信息的探测信息点关联起来,本步骤主要是做一些优化选择。因为有些提取信息可以对应多个不同的信息探测点来提取,所以需要做合理的选择。有时有的提取信息在代码中产生位置并未设计探测点,一方面可以在设计中继续追加此信息探测点,另外更多的可以在此位置的上一级探测点进行优化选择,往往存在可利用点位。
图4是一种用于软件诊断测试的具体实施环境的工作机制图,分为三个功能模块401、402、403。
模块401,用于实现探测信息点播入的被测软件对象,探测信息点位置以宏定义的形成插入探测点处理函数,当被测软件执行到某探测信息点时可实现测试脚本转入。
模块402,是独立于被测软件对象的另一个控制程序,用来实现探测点测试脚本的编辑与下载的控制。
模块403,由驻留在被测软件对象所在软件系统上的脚本执行模块构成,与402模块交互完成测试脚本的下载过程,将下载的测试脚本转至脚本指令区,并与模块401的探测信息点处理函数对接,来执行有下载定制的探测信息点测试脚本。脚本执行的提取信息可通过被测软件对象自身的输出通道输出(模块401)或通过测试脚本定制执行通道输出(模块403->模块402)。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (10)

1.一种软件测试方法,其特征在于,包括可测试性设置步骤和诊断测试步骤,其中:
可测试性设置步骤,包括:
A1、将软件划分为功能模块并确定出各功能模块的逻辑关系;
A2、按照所述逻辑关系,在各功能模块内部和彼此之间设置探测信息点;
A3、在功能模块代码中标识所述探测信息点;
诊断测试步骤,包括:
B1、根据测试需求从设置的探测信息点中选择出所需的探测信息点;
B2、基于所选择的探测信息点定制测试脚本、执行所述测试脚本;
B3、获取执行所述测试脚本所得探测信息,在测试结束时对探测信息进行统计分析,获得诊断测试结果。
2.如权利要求1所述的软件测试方法,其特征在于,所述子步骤A2包括如下步骤:
A21,设置探测信息点中的探测信息基本点,所述探测信息基本点包括代码事务处理输入点、代码事务处理输出点以及代码事务处理中间点;
A22,设置探测信息点中的探测信息补充点,所述探测信息补充点包括:代码中关键信息统计点以及异常测试需求点;
A23,设置所述各探测信息点之间的归属关系、分支关系。
3.如权利要求1所述的软件测试方法,其特征在于,所述子步骤B1包括如下步骤:
B11,确定软件诊断测试的测试需求;
B12,按照所述测试需求,确定用于提取探测信息的探测信息点;
B13,对所选择出的探测信息点进行优化选择。
4.如权利要求3所述的软件测试方法,其特征在于,所述步骤B11中,首先确定诊断测试的逻辑关系,再按照所述逻辑关系确定测试内容,根据测试内容确定出所需提取的探测信息。
5.如权利要求3所述的软件测试方法,其特征在于,所述步骤B12中,确定用于提取探测信息的探测信息点时,包括:确定用于入口信息提取或变化分析的探测信息点,确定用于出口信息提取或变化分析的探测信息点,确定用于过程信息提取或变化分析的探测信息点。
6.一种软件测试装置,其特征在于,包括可测试性设置模块和诊断测试模块,其中:
可测试性设置模块,用于划分软件为功能模块,并根据功能模块的逻辑关系设置探测信息点,用代码标识出所述探测信息点;
诊断测试模块,用于根据测试需求探测信息点中选择出所需的探测信息点,基于所选择的探测信息点定制测试脚本、执行所述测试脚本,获取执行所述测试脚本所得探测信息,在测试结束时对探测信息进行统计分析,获得诊断测试结果。
7.如权利要求6所述的软件测试装置,其特征在于,
所述可测试性设置模块又包括:功能模块划分单元,用于将软件划分为功能模块并确定出各功能模块的逻辑关系;探测信息点设置单元,用于按照所述逻辑关系,在各功能模块内部和彼此之间设置探测信息点;代码标识单元,用于在功能模块代码中标识出所述探测信息点;
所述诊断测试模块,又包括:探测信息点选择单元,用于根据测试需求从设置的探测信息点中选择出所需的探测信息点;脚本控制单元,用于基于所选择的探测信息点定制测试脚本、执行所述测试脚本;测试输出单元,用于获取执行所述测试脚本所得探测信息,在测试结束时对探测信息进行统计分析,获得诊断测试结果。
8.如权利要求7所述的软件测试装置,其特征在于,所述探测信息点设置单元设置的探测信息点包括:
探测信息点中的探测信息基本点,所述探测信息基本点包括代码事务处理输入点、代码事务处理输出点以及代码事务处理中间点;
探测信息点中的探测信息补充点,所述探测信息补充点包括:代码中关键信息统计点以及异常测试需求点;
所述各探测信息点之间的归属关系、分支关系。
9.如权利要求7所述的软件测试装置,其特征在于,
所述探测信息点选择单元,在选择探测信息点时,是先确定软件诊断测试的测试需求,按照所述测试需求,确定用于提取探测信息的探测信息点;对所选择出的探测信息点进行优化选择。
10.如权利要求9所述的软件测试装置,其特征在于,
所述探测信息点选择单元,是通过确定诊断测试的逻辑关系,按照所述逻辑关系确定测试内容,根据测试内容确定出所需提取的探测信息;
所述探测信息点选择单元在确定用于提取探测信息的探测信息点时,所确定的内容包括:确定用于入口信息提取或变化分析的探测信息点,确定用于出口信息提取或变化分析的探测信息点,确定用于过程信息提取或变化分析的探测信息点。
CN200910209152A 2009-10-28 2009-10-28 一种软件测试方法及测试装置 Pending CN101697144A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN200910209152A CN101697144A (zh) 2009-10-28 2009-10-28 一种软件测试方法及测试装置
PCT/CN2010/076783 WO2011050657A1 (zh) 2009-10-28 2010-09-10 一种软件测试方法及测试装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910209152A CN101697144A (zh) 2009-10-28 2009-10-28 一种软件测试方法及测试装置

Publications (1)

Publication Number Publication Date
CN101697144A true CN101697144A (zh) 2010-04-21

Family

ID=42142249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910209152A Pending CN101697144A (zh) 2009-10-28 2009-10-28 一种软件测试方法及测试装置

Country Status (2)

Country Link
CN (1) CN101697144A (zh)
WO (1) WO2011050657A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101976222A (zh) * 2010-11-03 2011-02-16 北京航空航天大学 一种基于框架的实时嵌入式软件可测试性测量方法
WO2011050657A1 (zh) * 2009-10-28 2011-05-05 中兴通讯股份有限公司 一种软件测试方法及测试装置
CN103257917A (zh) * 2012-02-16 2013-08-21 广州博纳信息技术有限公司 软件测评系统管理方法
CN106686041A (zh) * 2015-11-10 2017-05-17 大唐移动通信设备有限公司 一种java软件的监测方法、监测组件及应用服务器
CN107025547A (zh) * 2016-09-19 2017-08-08 阿里巴巴集团控股有限公司 支付通道检测方法、装置及终端
CN107291613A (zh) * 2016-04-13 2017-10-24 阿里巴巴集团控股有限公司 一种功能节点异常模拟方法及装置
CN109388564A (zh) * 2018-09-26 2019-02-26 广州云测信息技术有限公司 一种测试方法、装置及电子设备
CN109408368A (zh) * 2018-09-03 2019-03-01 深圳壹账通智能科技有限公司 一种测试辅助信息的输出方法、存储介质和服务器
CN110633204A (zh) * 2019-05-28 2019-12-31 清华大学 一种程序缺陷检测方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336739B (zh) * 2013-06-09 2016-01-06 中国联合网络通信集团有限公司 软件测试方法及平台

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1503136A (zh) * 2002-11-21 2004-06-09 深圳市中兴通讯股份有限公司 一种嵌入式软件测试方法
US20070180326A1 (en) * 2005-12-28 2007-08-02 Samsung Electronics Co., Ltd Software test method and software test apparatus
CN101183334A (zh) * 2007-12-25 2008-05-21 中兴通讯股份有限公司 一种软件执行过程中定制提取运行信息的方法及装置
CN101183335A (zh) * 2007-12-25 2008-05-21 中兴通讯股份有限公司 一种实现嵌入式软件异常测试的方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697144A (zh) * 2009-10-28 2010-04-21 中兴通讯股份有限公司 一种软件测试方法及测试装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1503136A (zh) * 2002-11-21 2004-06-09 深圳市中兴通讯股份有限公司 一种嵌入式软件测试方法
US20070180326A1 (en) * 2005-12-28 2007-08-02 Samsung Electronics Co., Ltd Software test method and software test apparatus
CN101183334A (zh) * 2007-12-25 2008-05-21 中兴通讯股份有限公司 一种软件执行过程中定制提取运行信息的方法及装置
CN101183335A (zh) * 2007-12-25 2008-05-21 中兴通讯股份有限公司 一种实现嵌入式软件异常测试的方法及系统

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011050657A1 (zh) * 2009-10-28 2011-05-05 中兴通讯股份有限公司 一种软件测试方法及测试装置
CN101976222B (zh) * 2010-11-03 2012-07-25 北京航空航天大学 一种基于框架的实时嵌入式软件可测试性测量方法
CN101976222A (zh) * 2010-11-03 2011-02-16 北京航空航天大学 一种基于框架的实时嵌入式软件可测试性测量方法
CN103257917A (zh) * 2012-02-16 2013-08-21 广州博纳信息技术有限公司 软件测评系统管理方法
CN103257917B (zh) * 2012-02-16 2016-08-03 广州博纳信息技术有限公司 软件测评系统管理方法
CN106686041A (zh) * 2015-11-10 2017-05-17 大唐移动通信设备有限公司 一种java软件的监测方法、监测组件及应用服务器
CN107291613B (zh) * 2016-04-13 2020-06-05 阿里巴巴集团控股有限公司 一种功能节点异常模拟方法及装置
CN107291613A (zh) * 2016-04-13 2017-10-24 阿里巴巴集团控股有限公司 一种功能节点异常模拟方法及装置
CN107025547A (zh) * 2016-09-19 2017-08-08 阿里巴巴集团控股有限公司 支付通道检测方法、装置及终端
CN107025547B (zh) * 2016-09-19 2020-10-16 创新先进技术有限公司 支付通道检测方法、装置及终端
CN109408368A (zh) * 2018-09-03 2019-03-01 深圳壹账通智能科技有限公司 一种测试辅助信息的输出方法、存储介质和服务器
CN109408368B (zh) * 2018-09-03 2023-06-09 深圳壹账通智能科技有限公司 一种测试辅助信息的输出方法、存储介质和服务器
CN109388564A (zh) * 2018-09-26 2019-02-26 广州云测信息技术有限公司 一种测试方法、装置及电子设备
CN109388564B (zh) * 2018-09-26 2021-07-06 广州云测信息技术有限公司 一种测试方法、装置及电子设备
CN110633204A (zh) * 2019-05-28 2019-12-31 清华大学 一种程序缺陷检测方法及装置

Also Published As

Publication number Publication date
WO2011050657A1 (zh) 2011-05-05

Similar Documents

Publication Publication Date Title
CN101697144A (zh) 一种软件测试方法及测试装置
KR101019210B1 (ko) 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법
CN106294134B (zh) 代码的崩溃定位方法及装置
CN109669866B (zh) 一种软件运行时故障传播路径的获取方法
EP0920663B1 (en) Method and system for testing computer system software
CN1908895B (zh) 验证应用程序全球化问题的系统和方法
CN102092477A (zh) 飞机音频综合系统自动测试与故障诊断装置及方法
CN105224460A (zh) 一种基于插装技术统计测试覆盖率的方法
CN105653946A (zh) 基于组合事件行为触发的Android恶意行为检测系统及其检测方法
CN101853200A (zh) 一种高效动态软件漏洞挖掘方法
CN101482846A (zh) 基于可执行代码逆向分析的漏洞挖掘方法
CN114546738A (zh) 服务器通用测试方法、系统、终端及存储介质
CN108009085B (zh) 渠道包测试方法
CN103186459B (zh) 基于脚本的java图形用户界面自动测试方法
CN112882957B (zh) 一种测试任务有效性检查方法和装置
CN111767232B (zh) 一种装备测试程序集验证系统
Fabre et al. Building dependable COTS microkernel-based systems using MAFALDA
CN116136950B (zh) 芯片验证方法、装置、系统、电子设备及存储介质
Addouche et al. UML models for dependability analysis of real-time systems
CN112612697A (zh) 一种基于字节码技术的软件缺陷测试定位方法及系统
CN113282496B (zh) 接口自动测试方法、装置、设备及存储介质
CN101916221A (zh) 一种针对设备进行单元测试的方法和系统
US20080195906A1 (en) Test pattern generation apparatus and test pattern generation method
CN112416733B (zh) 一种内存检测方法、内存检测装置及智能设备
CN114676012A (zh) 一种服务链路监控方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20100421