CN100454236C - 随机数发生装置和软件测试的系统及方法 - Google Patents
随机数发生装置和软件测试的系统及方法 Download PDFInfo
- Publication number
- CN100454236C CN100454236C CNB2004100382290A CN200410038229A CN100454236C CN 100454236 C CN100454236 C CN 100454236C CN B2004100382290 A CNB2004100382290 A CN B2004100382290A CN 200410038229 A CN200410038229 A CN 200410038229A CN 100454236 C CN100454236 C CN 100454236C
- Authority
- CN
- China
- Prior art keywords
- random number
- span
- sample
- random
- variable
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提供一种随机数发生装置,包括用于输入随机数取值范围的输入端口和输出端口,还包括:寄存器,连接所述输入端口,用于保存所述取值范围和产生随机种子;第一比较器,连接所述寄存器,用于获取大于零的随机种子;第一计算单元,连接所述第一比较器,用于获取所述随机种子的平方根;截取器,连接第一计算单元,用于截取平方根的小数部分;扩大单元,分别与寄存器、截取器和输出端口连接,用于将小数部分扩大到取值范围以获得随机数,然后发送随机数至输出端口,同时将随机数作为下一个随机数的随机种子发送至所述寄存器。本发明还提供一种采用所述随机数发生装置实现的软件测试的方法及系统。
Description
技术领域
本发明涉及电子或通信领域的测试技术,尤其涉及一种随机数发生装置和软件测试的系统及方法。
背景技术
目前,软件测试可以归纳为对模型
Y=F(X1,X2,...)
的测试。所述模型中X1、X2、...是被测对象输入变量,F表示对输入变量X1、X2、...进行处理变换,得到的输出为Y。
样本是指一个输入变量的一个确定的值,如X11、X12是变量X1的两个样本,一个测试用例是指所有输入变量的样本组合。
图1为一种采用测试用例进行测试的软件测试系统。请参照图1,该系统包括激励生成器1、参考模型2、DUT(Device Under Testing,测试对象)3以及结果判别器4。激励生成器1用于产生测试用例和将所述测试用例分别发送至参考模型2和DUT3。DUT3为被测对象,通过测试尽可能发现DUT3中的错误。参考模型(RM)是经过充分验证的模型,执行测试用例时能获得正确的执行结果。结果判别器4分别与参考模型2和DUT3连接。
图2为采用上述测试系统进行测试的流程图。首先,激励生成器1产生测试用例,并将产生的测试用例分别输出至参考模型2和DUT3(步骤S110);DUT3执行收到的测试用例,将执行结果输出至结果判别器4(步骤S120);参考模型2也执行收到的测试用例,同时,将执行结果输出至结果判别器4(步骤S130);结果判别器4比较两个执行结果(步骤S140),若相同,则通过测试,否则DUT3存在错误。
为了达到较好的测试效果,需尽可能揭露DUT3中隐藏的错误,因此测试过程中应尽可能设计足够多的测试用例,由于在实际情况中不可能进行穷举测试,所以实际测试中所使用的测试输入样本集合总是穷举测试输入样本集合的一个子集。测试用例的分布情况直接决定了测试所能发现的问题,也决定了最终的测试质量和效果。测试用例设计就是在给定的输入域中对各个变量的输入进行合理组合,以得到合理分布的测试输入样本集合,以保障最终的测试效果。
以测试DUT3的四则运算器工作情况为例,具体说明现有的测试用例产生方法(请参阅图3)。
第一步:确定输入变量的个数(步骤S210)。例如,用于测试四则运算器工作情况的测试用例包括运算符、第一操作数、第二操作数三个输入变量,即
F=(运算符,第一操作数,第二操作数);
第二步:测试人员根据自己的经验给每个输入变量一个样本,组合得到一个测试用例(步骤S220)。比如,用于测试四则运算工作情况的一个测试用例
F=(add,10,20)
为了达到较好的测试效果,测试人员需输入大量的样本以获得足够多的测试用例,但是由于人工直接赋值产生测试用例的效率低,因此又在上述方法基础上提出了改进方法。在激励生成器1中设置随机数发生装置,通过该随机数发生装置产生某些输入变量的样本。该些输入变量的类型通常为数值型。即预先设置该些输入变量的取值范围,通过随机数发生装置产生在所述取值范围内的随机数作为该输入变量的样本,上述方法提高了产生测试用例的效率,但是,也存在以下问题:
首先,现有的随机数发生装置主要采用平方取中法或斐波那契法产生随机数,产生的随机数不能保证有足够长的周期且均匀性和独立性差,容易出现随机数为同一常数或零等退化现象。因此无法保证测试覆盖的范围,从而导致测试的质量得不到保证。
其次,由于通过随机数发生装置产生样本的类型通常为数值型,从而使得软件测试的方法不具有通用性,并且由于还需通过人工方式输入其它类型的样本以生成测试用例,因此该软件测试方法的效率上还需进一步提高。
发明内容
本发明的目的在于提供一种随机数发生装置,以解决现有技术存在的产生随机数的周期短及均匀性差的技术问题
本发明的另一目的在于提供一种软件测试的系统及方法,以解决现有技术中存在的质量测试不佳的技术问题。
为此,本发明提供如下的解决方案:
一种随机数发生装置,包括用于输入随机数取值范围的输入端口和输出端口,还包括:
寄存器,连接所述输入端口,用于保存所述取值范围和产生随机种子;
第一比较器,连接所述寄存器,用于获取大于零的随机种子;
第一计算单元,连接所述第一比较器,用于获取所述随机种子的平方根;
截取器,连接所述第一计算单元,用于截取平方根的小数部分;
扩大单元,分别与所述寄存器、所述截取器和所述输出端口连接,用于将所述小数部分扩大到取值范围以获得随机数,然后发送所述随机数至所述输出端口,同时将所述随机数作为下一个随机数的随机种子发送至所述寄存器。
所述的随机数发生装置还包括第二比较器和第二计算单元,其中,所述第一计算单元是通过所述第二比较器和所述截取器连接,所述第二比较器用于判断所述平方根是否大于1,若是,则将所述平方根输出至所述截取器,否则将所述平方根输出至所述第二计算单元,所述第二计算单元用于将所述平方根扩大十倍后输出至所述第二比较器。
一种软件测试系统,包括被测对象及分别与所述被测对象连接的激励生成器和结果判别器,所述激励生成器包括:
配置单元,用于输入每个变量的取值范围;
随机数发生装置,用于根据所述取值范围产生各个变量的随机数,具体包括:
输入端口与输出端口,
寄存器,连接所述输入端口,用于保存所述取值范围和产生随机种子,
第一比较器,连接所述寄存器,用于获取大于零的随机种子,
第一计算单元,连接所述第一比较器,用于获取所述随机种子的平方根,
截取器,连接所述第一计算单元,用于截取平方根的小数部分,
扩大单元,分别与所述寄存器、所述截取器和所述输出端口连接,用于将所述小数部分扩大到取值范围以获得随机数,然后发送所述随机数至所述输出端口,同时将所述随机数作为下一个随机数的随机种子发送至所述寄存器;
样本生成模块,用于根据所述随机数获得所述变量的样本;以及
测试用例生成模块,用于将所述样本按照预先设定的数据流生成测试用例,并发送所述测试用例至所述被测对象,以获得测试结果。
所述的系统中的随机数发生装置还包括第二比较器和第二计算单元,其中,所述第一计算单元是通过所述第二比较器和所述截取器连接,所述第二比较器用于判断所述平方根是否大于1,若是,则将所述平方根输出至所述截取器,否则将所述平方根输出至所述第二计算单元,所述第二计算单元用于将所述平方根扩大十倍后输出至所述第二比较器。
一种软件测试方法,用于测试被测对象的工作情况,包括以下步骤:
(1)确定输入域的变量的个数,设置每个变量的取值范围;
(2)根据所述取值范围,随机产生各个变量的随机数,具体包括以下步骤:
(21)寄存器保存所述取值范围,产生随机种子;
(22)获取所述随机种子中大于零的随机种子的平方根;
(23)截取所述平方根的小数部分,将所述小数部分作为下一个随机数的随机种子发送至寄存器;
(24)将所述小数部分扩大至所述取值范围,获得随机数;
(3)利用所述随机数生成样本;
(4)利用所述样本生成测试用例,将所述测试用例发送至被测对象;
(5)所述被测对象执行所述测试用例,获得执行结果;
(6)比较所述执行结果与执行所述测试用例的用例标准,获得测试结果。
所述步骤(1)中设置每个变量的取值范围具体过程为:首先确定变量的每个样本值;然后建立样本值和连续数值的映射关系表,最后获得所述连续数值的取值范围。
所述步骤(3)具体为:根据在所述连续数值的取值范围内产生的随机数,查询所述映射关系表,进而获得样本。
所述步骤(1)中设置每个变量的取值范围进一步包括:
确定每个变量的样本种类和设置每种样本的取值范围;
建立每种样本的取值范围和连续数值的映射关系表,获得所述连续数值的取值范围。
所述步骤(3)具体包括:
在所述连续数值的范围内产生随机数,通过所述随机数查询所述映射关系表,获得所述样本的取值范围;
在所述样本的取值范围内产生随机数,进而获得样本值。
与现有技术相比,本发明具有以下优点:
(1)本发明的随机数发生装置,对种子的选取条件很宽松,除了完全平方自然数,大于零的数大多都能当作种子,以2作为随机数种子为例,说明产生的(0,1)之间的随机数为
0.4142 0.6603 0.1256 0.5445...
从上可看出,它产生的随机数有较强的独立性和均匀性以及周期长等特点,并且本申请人对该随机数发生装置利用计算机进行多次验证,也证实了本随机数发生装置产生的随机数比现有的随机数发生装置具有更好的均匀性、独立性和周期性。
(2)由于本发明随机数发生装置产生的随机数在均匀性、独立性和周期性具有的优势,使得采用该随机数发生装置进行软件测试时,产生的样本具有更好的均匀性,从而提高了测试的质量,并且,由于其具有的独立性和周期长的特点,减少输入随机种子的次数,进而方便用户使用。
(3)由于本发明能产生不同类型的变量随机产生每个变量的样本,克服了现有的直接赋值生成样本需要大量的时间和人员来完成测试的缺陷,从而降低了测试的成本和提高了测试的效率。
附图说明
图1是现有的软件测试系统的结构示意图。
图2是现有的软件测试的流程图。
图3是现有的软件测试中测试用例产生的流程图。
图4为本发明的随机数发生装置的结构示意图。
图5为本发明的软件测试系统的结构示意图。
图6是本发明的软件测试流程图。
图7是第一种软件测试中随机产生变量样本的流程图。
图8是第二种软件测试中随机产生变量样本的流程图。
图9是产生随机数的方法。
具体实施方式
以下结合附图具体说明本发明。
请参阅图4,图4为本发明随机数发生装置的一种实施例的结构示意图。包括:
输入端口110:用于输入随机数取值范围和随机数种子;
输出端口118:用于输出随机数;
寄存器111,连接输入端口110,用于保存所述取值范围和产生随机种子。寄存器111的第一个随机种子可以直接从输入端口110获得,后续的随机种子可以将前一个随机种子产生的随机数作为下一个随机数的随机种子;
第一比较器112,连接寄存器111,用于比较随机种子和零的大小,当随机种子大于0时,将该随机种子发送至第一计算单元113。
第一计算单元113,连接第一比较器112,用于获取该随机种子的平方根;
第二比较器116,分别连接第一计算单元113、第二计算单元117和截取器114,用于判断平方根是否大于1,若是,则将所述平方根输出至截取器114,否则将所述平方根输出至所述第二计算单元117;
第二计算单元117,用于将所述平方根值扩大十倍后发送至所述第二比较器116;
截取器114,连接第二比较器116,用于截取平方根的小数部分;
扩大单元115,分别与寄存器111、截取器114和输出端口118连接,用于将小数部分扩大到取值范围以获得随机数,然后发送所述随机数至所述输出端口118,同时将所述随机数作为下一个随机数的随机种子发送至寄存器111。
本发明的随机数发生装置与现有的随机数发生装置相比,它具有更好的均匀性、独立性和长周期性。
请参阅图5,图5为本发明公开的一种软件测试系统的结构示意图。该软件测试系统,包括激励生成器1、参考模型2、DUT3和结果判别器4。其中:
激励生成器1,连接DUT3,用于随机生成测试用例并发送至DUT3和参考模型2。该激励生成器1包括配置单元10、随机数发生装置11、样本生成模块12和测试用例生成模块13。
配置单元10,用于测试人员输入组成测试用例的每个变量的范围和测试用例的随机种子,并将输入的每个变量的范围和测试用例的随机种子保存成一个配置文件。为了达到测试DUT3的某个特定的逻辑能力的目的,该测试用例输入域的变量个数是确定且每个变量的范围也可设置,因此通过设置一个配置文件达到测试一个特定的逻辑特性的效果,另外,修改配置文件的随机种子可以输出不同测试用例,用以进行测试。
随机数发生装置11,用于根据输入的随机种子和取值范围产生随机数,本发明采用如附图4所示的随机数发生装置,以得到分布均匀的随机数,获得分布均匀的测试用例,提高测试质量。
样本生成模块12,用于依据随机数发生装置11产生的随机数,获得每个变量的样本。
测试用例生成模块13,其输入端连接样本生成模块12,其输出端分别连接DUT3和参考模型2,用于获得每个样本生成模块12生成的每个变量的样本,按照预先设置的数据流格式生成测试用例,并将生成的测试用例分别发送至DUT3和参考模型2。如,测试系统按照输入域的变量的顺序生成其对应的样本,并依次发送至测试用例生成模块13,此时,测试用例生成模块13即可按照接收的样本顺序组成测试用例。而每个变量的样本可通过预先设置的分隔标记进行分隔,也可以通过预先规定每个变量所占的位置大小进行分隔,方便接收测试用例的DUT3和参考模型2进行读取,执行操作。
参考模型2(RM)是经过充分验证的模型,执行测试用例时能获得完全正确的执行结果。参考模型2和DUT3的输出端分别连接至结果判别器4。结果判别器4用于对接收的执行结果进行判别,以测试DUT3的执行情况。
结果判别器4,连接DUT3和参考模型2,用于比较所述DUT3执行测试用例的执行结果和与参考模型2执行所述测试用例的执行结果,若相同,测试成功,否则,表明DUT3存在错误,改正DUT3存在的错误。
请参阅图6,在上述测试系统的基础上进行测试的一种具体实施例。具体的测试步骤如下:
S310:激励生成器1产生测试用例,并将产生的测试用例分别发送至参考模型2和DUT3。包括:
首先,设置用于测试人员输入信息的配置单元(步骤S400);其次,将测试人员输入的信息存储成为一个配置文件,该信息包括输入域变量的个数、每个变量的取值范围及产生测试用例的随机种子(步骤S410);然后,随机数发生装置11从配置单元10中的配置文件中获取该信息,随机产生每个变量的样本(步骤S420);最后,测试用例生成模块13将接收到的输入域的每个变量的样本,生成测试用例(步骤S430)。
S320:DUT3执行收到的测试用例,将执行结果输出至结果判别器4;
S330:参考模型2也执行收到的测试用例,同时,将执行结果输出至结果判别器4;
S340:结果判别器4分别接收DUT3和参考模型2发送的执行结果,判断两个执行结果是否相同,若相同,则此次测试成功,否则DUT3存在错误,进一步改正DUT3的错误。
上述过程中,如何根据变量的取值范围产生变量的样本,是本发明的一个重点之处。请参阅图7和图8,为获得变量样本的两个具体实施例。以下结合测试DUT3的四则运算的处理能力为例,具体说明样本产生的过程。
在产生样本之前,测试人员通过配置单元10输入用例的随机种子和输入域的每个变量的取值范围。例如:
RandSeed=2;//测试用例的随机种子;
Operator=1..4//运算符的范围;
Operand1=-100..100//第一操作数的取值范围;
Operrand1=-100..100//第二操作数的取值范围;
将上述测试人员输入的信息存储为一个配置文件,通过配置文件的名称来区别不同的配置文件,为了达到测试的某个特定处理能力,可以设置一个配置文件,也可以设置若干个配置文件。
S510:将测试用例的随机种子和取值范围输入随机数发生装置11,输出在此范围的随机种子。为了提高产生随机数的均匀性,从而提高测试质量和减轻测试人员的负担,本发明采用将从配置单元10中获得的测试用例的随机种子输入随机数发生装置11,输出的随机数作为输入域每个变量的随机种子。
S520:当变量的类型为非数值型时,可以先确定每个变量的样本个数和每个样本值,例如,四则运算的运算符由加、减、乘、除组成。该变量-运算符的样本值为加、减、乘、除。
S530:建立样本值和连续数值的映射关系表,获得连续数值的范围。还是以四则运算的运算符为例,建立运算符和连续数值(1至4)的映射关系表,(见表1)。
表1:运算符和1至4的连续数值的映射关系表
运算符 | 连续数值 |
加 | 1 |
减 | 2 |
乘 | 3 |
除 | 4 |
该连续数值的范围为[1,4],数值类型为整型。
S540:将所述连续数值的取值范围和该变量的随机种子发送至随机数发生装置11中,获得随机数,通过随机数查询映射关系表,获得样本。比如,产生上述运算符变量的随机数为1,查询表1,获得样本值为加。
但是,当为了测试DUT3某个特定的方面,将变量分成若干个具有不同取值范围的样本时,可以通过另外一种方法获得样本。
S620:确定每个变量的样本种类和设置每种样本的取值范围,还是以检测DUT3的四则运算能力为例,将第一操作数和第二操作数分别分为取值范围为[-100,0]和取值范围为[0,100]的两样本。
S630:建立每种样本的取值范围和连续数值的映射关系表,获得所述连续数值的范围。建立表2,为第一操作数/第二操作数和连续数值的映射关系表。
表2第一操作数/第二操作数和连续数值的映射关系表
取值范围 | 连续数值 |
[-100,0] | 1 |
[0,100] | 2 |
该连续数值的范围为[0,1],连续数值为整数。
S640:将连续数值的范围和变量的随机种子输入随机数发生装置11,产生在此连续数值的范围内的随机数,通过查询映射关系表,获得样本的取值范围,以表2为例,若产生的数值为1,则第一操作数/第二操作数的取值范围为[-100,0]。
S650:在所述样本的取值范围内产生随机数,获得样本。如,第一操作数的样本为-50,第二操作数的样本为0。
将产生的样本分别依次输入测试用例生成模块13,测试用例生成模块13根据预先设置的数据流格式生成测试用例的数据流,以进行DUT3的四则运算能力的测试。通过修改配置文件的随机种子,获得不同的测试用例,方便进行测试,还有可以修改第一操作数和第二操作数的取值范围,测试DUT3的四则运算的某个特定范围的处理能力。
在上述过程中,多次需要根据随机种子和取值范围来生成随机数,生成随机数的方法非常重要,它将直接决定着随机的测试用例的生成。但是,传统的随机数产生方法在其随机数产生的均匀性、独立性和周期性的角度而言都不是很理想。本发明即可以利用传统的随机数产生方法产生随机数,也可以按照图9所示的方法产生随机数。
S710:从随机数生成模块11的输入端获得随机数种子和取值范围(步骤S710),首先判断随机种子是否大于0(步骤S720),若是,进行步骤S730,否则进行即出或重新设置随机数种子进入步骤S720(步骤S790)。
步骤S730是将随机数开平方。如果随机数开平方的平方根小于1,则通过乘以10n扩大平方根,至到扩大到大于等于1为止(步骤S750),否则,保存平方根的小数部分,小数部分是位于[0,1]之间的,根据输入取值范围,得到随机数。
还有,本发明的小数部分设置为产生下一个随机数的随机种子。
这种方法对随机数种子的选取件很宽松,大于零的数即可当随机数种子使用,和现有的随机数的方法相比,在均匀性、独立性和长周期性上评价随机数的重要指标方向都有很大的优势。最重要的是,采用上述的方法,无需测试人员输入测试用例的随机种子,方便使用。
以下以采用上述开平方根取小数产生随机数的方法为例,具体说明进行软件测试的另一个实施例。该实施例为进行被测对象的ethernt逻辑的测试。
具体过程如下:
首先,依照其帧结构输入组成帧的输入域的变量的取值范围;
表3为帧的结构
输入域的变量包括:
DA为6个字节的数据;
SA为6个字节的数据;
TYPE为协议类型,包括两个样本:IP数据报和ARP。
DATA为46-1500个字节的数据。
其中,产生TYPE的样本的方法与上述实例中产生运算符的样本类似,在此不再赘述。而产生DA,SA的样本,由于每个字节的数都位于[0,225],通过随机数发生装置11产生6个[0,225]之间的随机数拼装即可得到DA/SA的一个样本。
下面以DATA变量为例描述DATA变量的样本的产生过程。
从表4可以看出,DATA变量的合法长度范围为46至1500字节,为了对该数据变量进行全面的测试,我们根据该变量的长度将Ethernet网帧分为短包、中包、长包、合法边界长度包、非法边界长度包、超短包、超长包,其对应的范围分别为:
数值编号 | 包类型 | DATA变量长度范围 |
1 | 正常包 | 46~1500字节 |
2 | 超短包 | 1~41字节 |
3 | 合法边界长度包 | 46~49字节、1497~1500字节 |
4 | 非法边界长度包 | 42~45字节、1501~1504字节 |
5 | 短包 | 50~100字节 |
6 | 中包 | 101~1400字节 |
7 | 长包 | 1401~1496字节 |
8 | 超长包 | 1505~2200字节 |
针对该DATA变量的测试,我们设计的配置文件如下:
RandSeed=2//用例的随机种子
PacketType=1..8//包类型编号,取值范围[1..8]
|
|
|
测试过程描述如下:
(1)从配置文件中获取配置变量(RandSeed、PacketType等)值(假如RandSeed为2,PacketType为“1..8”);
(2)激励生成器根据配置变量首先产生变量值,对于PacketType,即在范围[1..8]中随机产生一个数从而一种类型的包,此时即调用开平方根取小数法生成该随机数,假如为5(对应短包),其他变量同此;得到各个变量值后根据Ethernet网帧的封装协议封装成Ethernet网帧,对于DATA变量,由于包类型为短包(DATA变量长度为50~100字节),即根据此范围调用平开方根取小数法产生DATA变量的长度,然后根据此长度生成DATA变量的数据,最后得到封装好的Ethernet网帧数据;
将生成的Ethernet网帧数据同时发送给被测对象(Ethernet逻辑)和参考模型(RM)(参考模型接受数据流格式和被测对象一致);
被测对象(Ethernet逻辑)根据数据流进行处理,即根据Ethernet网的处理协议进行处理,然后给出处理结果(假如为封装在Ethernet中DATA变量的数据)并送给结果比较器;
参考模型(RM)同时也根据数据流进行处理,参考模型(RM)处理后给标准的结果(同样为封装在Ethernet中DATA变量的数据)也送给结果比较器;
结果比较器对被测试对象(Ethernet逻辑)和参考模型(RM)送出来的运算结果进行比较,如果两者相等(DATA变量的数据长度和内容均一致)则认为本次测试通过,否则认为本次测试失败。
测试人员可以在配置文件中配置不同的随机种子和不同的包类型范围,便可轻松的实现对DATA变量各种长度的测试。
以上为本发明的几个具体实施例,但是本发明并非局限于此,任何本领域的技术人员能思之的变化,都应落在本发明内。
Claims (9)
1、一种随机数发生装置,包括用于输入随机数取值范围的输入端口和输出端口,其特征在于,还包括:
寄存器,连接所述输入端口,用于保存所述取值范围和产生随机种子;
第一比较器,连接所述寄存器,用于获取大于零的随机种子;
第一计算单元,连接所述第一比较器,用于获取所述随机种子的平方根;
截取器,连接所述第一计算单元,用于截取平方根的小数部分;
扩大单元,分别与所述寄存器、所述截取器和所述输出端口连接,用于将所述小数部分扩大到取值范围以获得随机数,然后发送所述随机数至所述输出端口,同时将所述随机数作为下一个随机数的随机种子发送至所述寄存器。
2、如权利要求1所述的随机数发生装置,其特征在于,还包括第二比较器和第二计算单元,其中,所述第一计算单元是通过所述第二比较器和所述截取器连接,所述第二比较器用于判断所述平方根是否大于1,若是,则将所述平方根输出至所述截取器,否则将所述平方根输出至所述第二计算单元,所述第二计算单元用于将所述平方根扩大十倍后输出至所述第二比较器。
3、一种软件测试系统,包括被测对象及分别与所述被测对象连接的激励生成器和结果判别器,其特征在于,所述激励生成器包括:
配置单元,用于输入每个变量的取值范围;
随机数发生装置,用于根据所述取值范围产生各个变量的随机数,具体包括:
输入端口与输出端口,
寄存器,连接所述输入端口,用于保存所述取值范围和产生随机种子,
第一比较器,连接所述寄存器,用于获取大于零的随机种子,
第一计算单元,连接所述第一比较器,用于获取所述随机种子的平方根,
截取器,连接所述第一计算单元,用于截取平方根的小数部分,
扩大单元,分别与所述寄存器、所述截取器和所述输出端口连接,用于将所述小数部分扩大到取值范围以获得随机数,然后发送所述随机数至所述输出端口,同时将所述随机数作为下一个随机数的随机种子发送至所述寄存器;
样本生成模块,用于根据所述随机数获得所述变量的样本;以及
测试用例生成模块,用于将所述样本按照预先设定的数据流生成测试用例,并发送所述测试用例至所述被测对象,以获得测试结果。
4、如权利要求3所述的系统,其特征在于,所述随机数发生装置还包括第二比较器和第二计算单元,其中,所述第一计算单元是通过所述第二比较器和所述截取器连接,所述第二比较器用于判断所述平方根是否大于1,若是,则将所述平方根输出至所述截取器,否则将所述平方根输出至所述第二计算单元,所述第二计算单元用于将所述平方根扩大十倍后输出至所述第二比较器。
5、一种软件测试方法,用于测试被测对象的工作情况,其特征在于:包括以下步骤:
(1)确定输入域的变量的个数,设置每个变量的取值范围;
(2)根据所述取值范围,随机产生各个变量的随机数,具体包括以下步骤:
(21)寄存器保存所述取值范围,产生随机种子;
(22)获取所述随机种子中大于零的随机种子的平方根;
(23)截取所述平方根的小数部分,将所述小数部分作为下一个随机数的随机种子发送至寄存器;
(24)将所述小数部分扩大至所述取值范围,获得随机数;
(3)利用所述随机数生成样本;
(4)利用所述样本生成测试用例,将所述测试用例发送至被测对象;
(5)所述被测对象执行所述测试用例,获得执行结果;
(6)比较所述执行结果与执行所述测试用例的用例标准,获得测试结果。
6、如权利要求5所述的软件测试方法,其特征在于,步骤(1)中设置每个变量的取值范围具体过程为:首先确定变量的每个样本值;然后建立样本值和连续数值的映射关系表,最后获得所述连续数值的取值范围。
7、如权利要求6所述的软件测试方法,其特征在于,步骤(3)具体为:根据在所述连续数值的取值范围内产生的随机数,查询所述映射关系表,进而获得样本。
8、如权利要求5所述的软件测试方法,其特征在于,步骤(1)中设置每个变量的取值范围进一步包括:
确定每个变量的样本种类和设置每种样本的取值范围;
建立每种样本的取值范围和连续数值的映射关系表,获得所述连续数值的取值范围。
9、如权利要求8所述的软件测试方法,其特征在于,步骤(3)具体包括:
在所述连续数值的范围内产生随机数,通过所述随机数查询所述映射关系表,获得所述样本的取值范围;
在所述样本的取值范围内产生随机数,进而获得样本值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100382290A CN100454236C (zh) | 2004-05-13 | 2004-05-13 | 随机数发生装置和软件测试的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100382290A CN100454236C (zh) | 2004-05-13 | 2004-05-13 | 随机数发生装置和软件测试的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1696893A CN1696893A (zh) | 2005-11-16 |
CN100454236C true CN100454236C (zh) | 2009-01-21 |
Family
ID=35349633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100382290A Expired - Fee Related CN100454236C (zh) | 2004-05-13 | 2004-05-13 | 随机数发生装置和软件测试的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100454236C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502627A (zh) * | 2016-10-12 | 2017-03-15 | 黑龙江省电工仪器仪表工程技术研究中心有限公司 | 一种伪随机数种子生成方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949708B (zh) * | 2006-11-10 | 2011-02-02 | 华为技术有限公司 | 随机数发生装置、方法及对应的数据交互系统 |
CN102236584B (zh) * | 2010-04-20 | 2015-09-30 | 慧荣科技股份有限公司 | 用来抑制数据错误的方法以及相关的记忆装置及其控制器 |
CN102799413B (zh) * | 2011-05-25 | 2015-08-19 | 清华大学 | 一种随机数生成方法和装置 |
CN115455903B (zh) * | 2022-11-10 | 2023-01-31 | 北京云枢创新软件技术有限公司 | 一种验证操作符的系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1397034A (zh) * | 2000-01-27 | 2003-02-12 | 因芬尼昂技术股份公司 | 随机数发生器 |
CN1440526A (zh) * | 2000-10-24 | 2003-09-03 | 日本电脑警备有限公司 | 随机数发生装置 |
US20030200240A1 (en) * | 2002-04-19 | 2003-10-23 | Nec Corporation | Random number generating apparatus, random number generating method, program for generating random numbers, audio decoder and audio decoding method |
WO2004032098A1 (ja) * | 2002-10-07 | 2004-04-15 | Kobayashi, Akira | 疑似乱数発生方法及び疑似乱数発生器 |
-
2004
- 2004-05-13 CN CNB2004100382290A patent/CN100454236C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1397034A (zh) * | 2000-01-27 | 2003-02-12 | 因芬尼昂技术股份公司 | 随机数发生器 |
CN1440526A (zh) * | 2000-10-24 | 2003-09-03 | 日本电脑警备有限公司 | 随机数发生装置 |
US20030200240A1 (en) * | 2002-04-19 | 2003-10-23 | Nec Corporation | Random number generating apparatus, random number generating method, program for generating random numbers, audio decoder and audio decoding method |
WO2004032098A1 (ja) * | 2002-10-07 | 2004-04-15 | Kobayashi, Akira | 疑似乱数発生方法及び疑似乱数発生器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502627A (zh) * | 2016-10-12 | 2017-03-15 | 黑龙江省电工仪器仪表工程技术研究中心有限公司 | 一种伪随机数种子生成方法 |
CN106502627B (zh) * | 2016-10-12 | 2019-04-26 | 黑龙江省电工仪器仪表工程技术研究中心有限公司 | 一种伪随机数种子生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1696893A (zh) | 2005-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101893662B (zh) | 数字变电站的核相方法 | |
CN107908703B (zh) | 一种计量数据管理系统 | |
CN103869192B (zh) | 智能电网线损检测方法和系统 | |
CN107579893A (zh) | 基于saej1939can总线的发动机运行参数测量方法 | |
CN101304342B (zh) | 一种增强型以太网接口装置 | |
CN104698235A (zh) | 继电保护测试中暂态故障波形的生成方法 | |
CN103268362A (zh) | 基于通用模板和关键字符匹配的虚端子辅助设计方法 | |
CN100454236C (zh) | 随机数发生装置和软件测试的系统及方法 | |
CN102486748B (zh) | 一种性能测试的方法及装置 | |
CN102930111A (zh) | 变电站scd模型文件的生成方法及装置 | |
CN108055167B (zh) | 一种面向应用的接口通信协议建模方法及装置 | |
CN108152584A (zh) | 一种高铁牵引供电系统谐波多路同步快速检测方法 | |
CN106301976A (zh) | 一种变电站智能化调度信息自动化测试方法 | |
CN115912615A (zh) | 一种配电网状态评估方法及系统 | |
CN114184941A (zh) | 一种针对含有adc芯片的模块的测试系统及方法 | |
CN108197381A (zh) | 基于寻优空间形态分析的参数辨识方法 | |
CN102467348B (zh) | 从测量仪器接收数据的方法及系统 | |
CN106850639A (zh) | 用于标准电能表检定的协议转换系统及协议转换方法 | |
CN111211939A (zh) | 一种基于网络处理器实现流表高效计数的装置和方法 | |
CN111611147B (zh) | 一种处理器内部通用接口性能检测与分析方法、系统及介质 | |
CN102214252A (zh) | 一种对半导体器件进行提参建模的方法 | |
CN106301833A (zh) | 一种变电站调度信息测试方法 | |
CN107800384A (zh) | 一种用于光伏组件iv特性对比测试的并发控制方法 | |
CN102062850A (zh) | 一种智能防窃电系统校验的方法 | |
CN110032523B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090121 Termination date: 20160513 |