精华内容
下载资源
问答
  • 可扩展有限状态EFSM(Extended Finite State Machine)是目前常用的一种描述软件状态和行为的模型,研究EFSM模型的测试数据自动生成方法具有重要的意义。针对EFSM模型,本文提出一种面向EFSM路径的测试数据自动生成...
  • 针对提高基于扩展有限状态模型生成测试用例效率的目的,采用了将扩展有限状态模型状态迁移图转换为状态迁移树的方法,通过对扩展有限状态状态迁移树的分析,获取基于该树的测试路径,再根据扩展有限状态模型...
  • 生成证书 使用openssl生成密钥privkey.pem: openssl genrsa -out privkey.pem 1024/2038 使用密钥生成证书server.pem: openssl req -new -x509 ...证书信息可以随便填,但是Common Name要根据你本机测试的域...

    生成证书


    1. 使用openssl生成密钥privkey.pem:
      openssl genrsa -out privkey.pem 1024/2038

    2. 使用密钥生成证书server.pem:
      openssl req -new -x509 -key privkey.pem -out server.pem -days 365

    证书信息可以随便填,但是Common Name要根据你本机测试的域名填写。

    例如:
    Common Name (e.g. server FQDN or YOUR name) []: test.com

    也可以通过*.yourdomain.com来匹配你的二级域名

    配置nginx

    server {
            listen 443;
            server_name youdomain.com;
    
            ssl on;
            ssl_certificate /path/to/server.pem;
            ssl_certificate_key /path/to/privkey.pem;
      ...
    }

    验证配置,重启nginx

    $ sudo nginx -s reload

    展开全文
  • FSM状态机生成工具

    2017-08-23 16:04:50
    使用JAVA语言编写的FSM状态机生成工具,可以产生C C++ JAVA版本的FSM状态机源程序,状态设计只需填写文本文件即可,非常实用,可以大大缩短状态机编程时间,并保证正确性。
  • 它们可以用于生成接近真实的测试数据,包括姓名、电话/传真号码、电子邮箱、日期、公司名称、街道地址、邮政编码、国家/地区/城市、经度/纬度、文本、各种数字、GUID、货币、常量、列表值、银行账号、信用卡号等。

    测试数据

    大家好!我是只谈技术不剪发的 Tony 老师。

    我们在进行软件开发和数据库性能测试时,经常需要使用到大量的测试数据。手动创建测试数据不仅浪费时间,而且很难产生满足实际业务和格式要求的数据,例如电子邮箱或者电话号码的格式。所以今天给大家介绍两个个用于创建测试数据的在线网站。

    如果觉得文章有用,欢迎评论📝、点赞👍、推荐🎁

    generatedata4.com

    generatedata4.com 提供了 30 多种类型的数据,包括姓名、电话/传真号码、电子邮箱、日期、公司名称、街道地址、邮政编码、国家/地区/城市、经度/纬度、文本、各种数字、GUID、货币、常量、列表值、银行账号、信用卡号等。同时,该工具支持的数据导出格式包括 CSV、HTML、JSON、SQL、LDIF、XML 以及 C#、Javascript、PHP、Perl、Python、Ruby、Typescript 对象。

    点击网站右上角的“Generator”按钮进入配置页面。

    generatedata4
    在页面左侧,我们可以配置需要生成的数据项,包括数据的种类(Data Type)和名称(Column Name),Examples 列给出了一些数据示例,Options 列用于设置数据的格式。

    在页面右侧,我们可以选择数据输出的格式并进行预览。

    setting
    SETTINGS 界面用于设置数据输出的格式,PREVIEW 界面用于设置预览的格式,完成后返回主页面。

    最后点击右下角的“GENERATE”按钮生成测试数据。

    数量
    generatedata4.com 默认一次最多创建 10000 条数据。如果需要更多的数据,可以多次运行,或者注册一个收费账号。点击运行之后,我们可以实时看到数据的生成情况,完成之后点击“DOWNLOAD”下载生成的测试数据。

    run
    另外,点击左下角的🌐可以选择界面的语言,支持中文。

    generatedata4.com 是一个开源项目,源代码位于 GitHub。开发人员可以基于源码进行扩展和定义,甚至使用 REST API 生成测试数据。具体内容可以参考官方文档

    onlinedatagenerator.com

    onlinedatagenerator.com 支持上百种真实测试数据类型,包括伪造的地址或邮政地址、书籍、电影、音乐、品牌、业务(公司、职位、股票板块等)、颜色、国家、信用卡、日期和时间、教育程度、性别、身份证号码、货币数字、姓名、电子邮件地址、编程和互联网(IP、域名、GUID 等)等等。

    onlinedatagenerator.com 支持的导出格式包括 CSV、JSON、Excel、SQL 以及 XML。

    页面
    onlinedatagenerator.com 的使用非常简单,第一步就是定义数据包含的字段和类型。点击右侧的📝进行设置。

    设置

    我们可以先选择一个分类(Select a field category),然后选择一个具体的数据类型(Select a field format),同时还可以设置空值 NULL 的比例,点击“SAVE”保存设置。

    第二步可以设置测试数据的数量(一次最多 100000 条记录)和格式,然后点“EXPOERT”按钮生成测试数据。

    第三步提供了实时的测试数据预览。

    展开全文
  • 安卓手机渗透测试

    千人学习 2019-11-04 16:30:00
    专栏将从最基础的实验环境搭建,软件安装使用开始讲。没有复杂的原理讲解,更多的实践操作,小白也能跟着从零开始学起。 注意:教程内容仅用于网络安全学习研究,未经授权的入侵需要自己承担相应的责任,与作者...
  • 0-b/f->0;0-a/f->1; 1-a/f->0;1-b/e->2;1-b/f->3; 2-a/e->2,2-b/e->0; 3-a/f->3; 3-b/f->0; 这个是状态测试用例的算法看不懂。大神帮帮忙。
  • 在通信协议的一致性测试中,寻找一条简洁高效的测试序列是关键工作之一。基于FSM模型的协议一致性测试,提出一种新的UIO序列生成方法,利用遗传算法求解UIO序列。研究结果表明,该算法能生成更短且结果稳定的UIO序列。
  • jmeter生成HTML文件:1、在cmd中进入本机jmeter程序bin路径下 2、运行命令:jmeter -n -t (jmx文件保存路径) -| result.jtl -e -o (HTML文件保存路径) 主要的开始运行命令时要确保jmx文件设置的并发线程已经完成...

    jmeter生成HTML文件:1、在cmd中进入本机jmeter程序bin路径下

    2、运行命令:jmeter -n -t (jmx文件保存路径)  -l result.jtl -e -o  (HTML文件保存路径)

     

    主要的开始运行命令时要确保jmx文件设置的并发线程已经完成,配置的数据路径在本机上是对的上了。

    每运行一次jmeter命令后会生成一个result.jtl文件在jmeter中的bin目录下,需要将该文件删除或者更改运行命令中的result.jtl文件的命名才能正常的运行命令。

     

    jmeter运行高并发出现:java.net.BindException: Address already in use: connect   的错误解决方法

    1、cmd中,用regedit命令打开注册表

    2、在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

    3、右键Parameters

    4、添加新的DWORD,名字为MaxUserPort和TcpTimedWaitDelay

    5、分别输入数值数据为65534和30,基数选择十进制;以增大可分配的tcp连接端口数、减小处于TIME_WAIT状态的连接的生存时间

    6、修改配置完毕之后记得重启机器才会生效

    7、java代码的在jmeter的Http请求下修改:

    展开全文
  • 摘要:使用d兼容为基础的宽压缩,设计了一种用于混合式内自动测试的新型测试生成电路。这种测试电路具有每个时钟循环都对电路进行测试的特点,特别适合于自动计数的设计和自测结构。关键字:错误覆盖;实验时钟;...
  • 课程主要分享Kali Linux渗透测试之Msfvenom木马生成与攻防实战技巧!二、适合人员       1、零基础大学生       2、IT技术人员       3、服务器运维工程师   &...
  • 使用 ImageMagick 本机轻松生成拇指文件 安装 $ npm install machinepack-thumb 用法 该模块的最新使用文档、版本信息和测试状态见 。 为每台机器生成的联机帮助页包含所有预期输入、可能的退出状态和示例返回值的...
  • PyTomata是一个程序,它使用与语法相对应的LR自动机为上下文无关的语法生成测试用例。 它可以产生正面和负面的测试套件。 SLE2020审阅者注意事项 为了产生与表的LR列中相同的测试套件,请使用--classic标志运行程序...
  • 针对在小样本情况下BP神经网络在生成软件测试用例的过程中可能产生的过学习问题及识别正确率较差的缺点,运用支持向量机具有更好的泛化性能的原理,提出了应用支持向量机生成测试用例的方法。对五个软件测试实例针对...
  • Wings-让单元测试智能全自动生成 前言 单元测试是保证软件质量非常有效的手段,无论是从测试理论早期介入测试的理念来看或是从单元测试不受UI影响可以高速批量验证的特性,所以业界所倡导的测试驱动开发,这个里面...

    Wings-让单元测试智能全自动生成

    前言
    单元测试是保证软件质量非常有效的手段,无论是从测试理论早期介入测试的理念来看或是从单元测试不受UI影响可以高速批量验证的特性,所以业界所倡导的测试驱动开发,这个里面提到的测试驱动更多的就是指单元测试驱动。但一般开发团队还是很少的系统化的执行单元测试,针对应用软件的测试更多是由专业测试团队来执行黑盒测试。单元测试的最大的难点不在于无法确定输入输出,这毕竟是模块开发阶段就已经定好的,而在于单元测试用例的编写会耗费开发人员大量的工时,按照相关统计单元测试用例的时间甚至会远超过功能本身开发的时间。以下是几个最常见的开发不写单元测试的理由:
    ●需求总是无穷尽的,还有下阶段功能需求要实现,没空补单元
    ●要补的单元测试太多,无从下手,主观上抗拒。
    ●单元测试编写难度大。一方面原因可能是功能函数实现上不够合理,另一方面是没有(或者不知道)好用的单元测试框架和mock框架。
    ●单元测试不算入工作量内。
    其次,功能需求还不稳定,写单元测试的性价比不高。换句话说,万一明天需求一变,那不光功能代码废了,单元测试也废了。如果不写单元测试,那这部分工夫就不会白费。
    上述几点其实分析根本原因是单元测试编写太耗时,最终导致测试驱动的发动机失去了动力,致使测试驱动开发的美好愿景在现实场景熄火,因为构建这个驱动用的发动机实在是难度和成本太大了。 市场上的各种“x”Unit,单元测试框架仅仅解决了生成测试驱动的外框,没有任何基于深度程序理解的用例逻辑和数据的产生能力。因此在各种开发相关场景中都让开发人员产生抵触情绪。Wings的发布(目前针对C语言)则解决了这个困扰程序员的一个最大的难题,同时也有可能从根本上改变单元测试的现状,充分的、高效率的单元测试将有效缓解基于海量人力的系统级黑盒测试以及自动化测试的压力。
    制约测试用例采用程序自动生成,最关键的底层技术是复杂的参数解析技术。即:能够在编译器层面对于任意复杂的类型,任意定义嵌套层级的递归解析。如果没有这个关键技术的突破,那么测试用例自动生成系统要么无法商用,要么将以极低的效率来演化、产生合规的测试数据。例如著名的模糊测试工具American Fuzzy Lop,它并不能够识别用户的程序所需要的结构类型,需要从最外层进行基于搜索算法的演化。程序的特性是接口层面的输入和内部某个模块的数据要求距离很远,外部数据通常是经过层层复杂转换才可以成为内部模块所需要的数据结构类型,因此从外层探索所需要的计算量和时间将是难以想象的。基于American Fuzzy Lop,为了能够生成一个合法的SQL 语句,让程序内部模块能够通过外围数据校验需要探索时间以天数计,远非分钟或者小时可以生成。另外一个制约性条件是:每个程序能够接手的输入都是经过精心结构编制、含有大量规则的数据,而这些数据通过随机+探索的方式生成是非常不现实和极其耗时的。所以,从黑盒以及最外层输入产生自动产生用例是不可行的。
    如果从软件内部结构分析产生用例驱动,就需要对软件的编译结构进行深度理解。可行的测试用例生成系统,应该是基于程序的中间(关键入口)作为测试切入最为合适。这些模块的输入,已经将模糊的输入转化为高度结构化的参数。只要能够识别这些复杂结构,将复杂数据类型一步步降解为简单数据类型,同时完成参数构造,就可以自动完成驱动用例的生成。
    基于模块的测试,可以划归为传统的单元测试,它是将缺陷发现并遏制在研发阶段最好的方法。但受限于单元测试需要开发大量的驱动程序,在行业内的推广和应用受到了极大的限制。当然单元测试也可以在系统集成完毕后执行,避免构建虚拟的桩程序。
    星云测试日前全球首发的Wings产品,是一个智能的、全自动的单元测试用例生成系统,研究并解决了如下难点,现分享给大家。
    (1) 程序参数深度分析问题
    Wings通过编译器底层技术,将输入的源文件,按照函数为单位,形成模块对象。对象中包含函数的输入参数,返回值类型等信息,供驱动函数模块和测试用例模块使用。每个文件作为一个单元,针对其中的每个函数的每个参数进行深度解析,对于嵌套类型,复杂类型等都可以实现精确的解析和分解,将复杂类型逐层讲解为基础数据类型,并产生参数结构的描述文件(PSD)。
    (2) 函数驱动自动生成模块
    依据PSD文件的格式信息,自动生成被测源程序的所有驱动函数,单元测试过程不再依赖开发人员手动编写测试函数,只需将生成的驱动函数和被测源文件一起编译,即可执行测试并查看测试结果。测试驱动自动生成程序基于PSD描述,全自动构建驱动被测程序运行的所有参数,必须的全局变量,并可根据复杂变量的层级结构产生结构化的测试驱动程序,可以节省大量的单元测试用例的编写时间。
    (3) 测试数据自动生成与管理
    用于自动生成测试数据,测试数据与被测函数提取的信息相互对应,数据以一定的层次逻辑关系存储在json文件中。数据和经过分解和展开后的数据类型是一一对应的。这些数据用户可以根据业务要求随意边际,并且用json文件进行结构化,层次化展示,非常的清晰。其中的测试数据包括全局变量值、被测函数调用时的参数值。
    Wings提供了一种自动生成驱动函数的单元测试方法,其中主要包含以下几个步骤:
    这里写图片描述
    图一:单元测试驱动生成流程
    1 被测程序信息提取
    通过对源程序的扫描提取出函数的结构信息,使用户不需要关心程序的结构信息,而被测程序的结构信息,主要包含程序中的全局变量以及函数信息,而函数信息主要包括函数的参数个数,参数类型以及返回值类型。而全局变量以及参数,最主要的提取出其中的符号信息,以及类型信息,针对一些复杂的类型,通过层层进行解析为基本数据类型,完成全局变量以及函数参数的构造。

    变量的类型一般大致分为基本类型、构造类型、指针类型及空类型。Wings通过底层编译技术,针对不同的变量类型,进行不同的处理方式。
    (1)基本类型,例如unsigned int u_int = 20等基本类型,Wings将解析出变量的名称为u_int,数据类型为unsigned int。
    (2) 构造类型,构造类型大致分为数组,结构体,共用体,枚举类型。

    • 数组类型,例如int array[2][3],数组名称为array,类型为int以及二维数组的长度,行为2,列为3。
    • 结构体类型,针对结构体为数组,结构体链表等,进行不同的标记划分。

    (3) 指针类型,例如int **ptr = 0;,解析出指针为int类型的2级指针。
    (4) 空类型,解析出类型为NULL。
    (5) 系统类型,例如File、size_t等,标记为系统类型,不在对其往下进行分析,会添加到模板中,由用户进行赋值操作。
    (6) 函数指针类型,分析出函数的返回值类型、参数类型以及参数个数
    针对被测源程序的每个编译单元,将解析到的函数信息,保存在对应的PSD结构中,针对以下源代码实例进行说明:

    typedef struct my_structone 
    {
    	//基本类型
    	int i_int;
    
    	//数组类型
    	int array_one[2];
    	int array_two[3][4];
    
    	//指针类型
    	int *point_one;
    	int **point_two;
    
    	//空类型
    	void *point;
    
    	//位域类型
    	unsigned int w : 1;
    
    	//函数指针是指向函数的指针变量,即本质是一个指针变量
    	int(*functionPtr)(int, int);
    
    	union
    	{
    		int a;
    		char b;
    		long long c;
    	}Dem;
    
    	enum DAY
    	{
    		MON = 1, TUE, WED = 200, THU, FRI = 100, SAT, SUN
    	}dy;
    }myy_structone;
    typedef struct my_struct 
    {
    	//结构体包含结构体
    	myy_structone *structone;
    
    	//结构体中包含系统头文件的类型
    	FILE file;
    	struct my_struct *next;
    }myy_struct;
    
    //结构体作为函数参数
    
    void StructTypeTest1(myy_struct m_struct);
    
    void StructTypeTest2(myy_struct *mm_struct);
    
    void StructTypeTest3(myy_struct mm_struct[2]);
    
    void StructTypeTest4(myy_struct mm_struct[2][3]);
        
        
    
    

    以上程序中,void StructTypeTest3(myy_struct mm_struct[2])保存的PSD结构如下:

    <StructTypeTest3 parmType0="myy_struct [2]" parmNum="1">
        <mm_struct baseType1="ArrayType" RowSize="2" type="StructureOrClassType" name="my_struct">
            <structone baseType1="PointerType" type="StructureOrClassType" name="my_structone">
                <i_int baseType1="BuiltinType" type="ZOA_INT" />
                <array_one baseType1="ArrayType" RowSize="2" type="ZOA_INT" />
                <array_two baseType1="ArrayType" RowSize="3" baseType2="ArrayType" ColumnSize="4" type="ZOA_INT" />
                <point_one baseType1="PointerType" type="ZOA_INT" />
                <point_two baseType1="PointerType" baseType2="PointerType" type="ZOA_INT" />
                <point baseType1="PointerType" type="ZOA_VOID" />
                <w baseType1="BuiltinType" type="ZOA_UINT" bitfield="1" />
                <functionPtr baseType1="FunctionPointType" type="ZOA_FUNC" returnType="int" parmType0="int" parmType1="int" parmNum="2" />
                <Dem baseType1="UnionType" type="ZOA_UNION" name="NULL">
                    <a baseType1="BuiltinType" type="ZOA_INT" />
                    <b baseType1="BuiltinType" type="ZOA_CHAR_S" />
                    <c baseType1="BuiltinType" type="ZOA_LONGLONG" />
                </Dem>
                <dy baseType1="EnumType" type="ZOA_ENUM" name="DAY">
                    <MON type="ZOA_INT" value="1" />
                    <TUE type="ZOA_INT" value="2" />
                    <WED type="ZOA_INT" value="200" />
                    <THU type="ZOA_INT" value="201" />
                    <FRI type="ZOA_INT" value="100" />
                    <SAT type="ZOA_INT" value="101" />
                    <SUN type="ZOA_INT" value="102" />
                </dy>
            </structone>
            <file baseType1="StructureOrClassType" type="StructureOrClassType" name="_iobuf" SystemVar="_iobuf" />
            <next NodeType="LinkNode" baseType1="PointerType" type="StructureOrClassType" name="my_struct" />
        </mm_struct>
        <g_int globalType="globalVar" />
        <returnType returnType="void" />
    </StructTypeTest3>
    
    

    其中PSD文件各节点代表的意义如下:

    • StructTypeTest3代表函数名,parmType0代表参数类型,parmNum代表参数个数

    • mm_struct代表函数参数的符号,baseType1代表类型的分类(基本数据类型、构造类型、指针类型、空类型),type代表具体的类型,包括int,char,short,long,double,float,bool,以及这些类型的unsigned类型等基础的类型,还有一些特殊的类型诸如:ZOA_FUN类型表示函数类型,StructureOrClassType表示结构体类型,等等,name代表结构体、联合体、枚举类型的名称

    • i_int代表基本类型,基本类型作为最小的赋值单位

    • array_one代表数组类型,RowSize代表数组的长度,数组可以划分为一维数组,二维数组等

    • point代表指针类型,指针分为一级指针、二级指针等,一般指针当做函数参数作为数组使

    用,因此,针对基本类型的指针,采用动态分配数组的方式进行赋值,用户可依据需要,修改对应的值文件。

    • w代表位域类型,bitfileld代表所占位数
    • functionPtr代表函数指针类型,分别分析出参数类型、参数个数、返回值信息
    • Dem代表联合体类型
    • dy代表枚举类型,value代表枚举类型的取值
    • file代表结构体类型,SystemVar代表此变量属于系统头文件中的变量,针对此种类型的变量,Wings通过添加模板变量的方式,添加在模板库中,用户可依据具体需要进行特殊赋值。例如File类型的,处理方式为:
    /* 系统内置类型,特殊处理或者模板处理 */
      char * fname = "E:/spacial.txt";
      FILE * file  = fopen(fname,"r");
      _st.file = _file;
    
    
    

    用户也可自行添加赋值方式。针对系统类型,Wings可以和普通用户自定义类型进行区分,当解析到系统内置类型的时候就可以停止向下进行递归分析。

    • g_int代表全局变量,globalType代表全局
    • next代表链表结构体,NodeType代表此结构为链表
    • returnType代表函数的返回值类型。

    2 驱动程序的自动生成
    在上文中,针对全局变量和函数的结构信息,进行了分析和提取,以下将利用提取到保存在PSD中的信息,完成被测源程序的驱动框架整体生成。
    生成主要分为以下几个方面:

    • 全局变量的声明
    • 函数参数的赋值操作,针对函数参数的个数,依次赋值操作
    • 全局变量的赋值,针对分析得到函数使用的全局变量的个数,依次进行赋值操作
    • 原函数的调用

    一些需要注意点如下:

    • 驱动生成过程中,针对一些特殊函数,例如main函数,static函数等,因为外部无法访问到,驱动生成暂时不做处理。
    • 针对每个被测源文件,生成对应的一个驱动文件。
    • 驱动控制包含在Driver_main.cpp中,可以通过宏自动配置函数的测试次数 由以上源程序,生成的驱动函数如下:
      这里写图片描述
    • 所有变量的命名为在原变量的名称前,添加_
    • 通过获取生成对应的测试数据,对变量依次进行赋值操作
    • 针对系统内置参数,以及用户比较特殊的参数,通过模板方式统一配置赋值方式。
    • 对被测函数进行参数赋值与调用。

    3 测试数据自动生成
    测试用例的自动生成,利用提取到保存在PSD中的函数信息,进行测试用例数据的生成,以下是图三中PSD格式生成的一组数据,每组数据保存为JSON格式,更容易看到数据的层次关系。

       "StructTypeTest30" : {
          "g_int" : 11624,
          "mm_struct" : [
             {
                "file" : "NULL",
                "next" : "NULL",
                "structone" : {
                   "Dem" : {
                      "a" : 20888,
                      "b" : "A",
                      "c" : 19456
                   },
                   "array_one" : [ 24441, 12872 ],
                   "array_two" : [
                      [ 18675, 30300, 32216, 19566 ],
                      [ 13566, 13319, 11179, 18867 ],
                      [ 30514, 21664, 21641, 28262 ]
                   ],
                   "dy" : 101,
                   "functionPtr" : "NULL",
                   "i_int" : 18271,
                   "point_one" : [ 28024, 32245, 2129 ],
                   "point_two" : [
                      [ 18165, 32335, 6429 ],
                      [ 30225, 18252, 2764 ],
                      [ 3177, 3622, 29789 ]
                   ],
                   "w" : 16862
                }
             },
             {
                "file" : "NULL",
                "next" : "NULL",
                "structone" : {
                   "Dem" : {
                      "a" : 2651,
                      "b" : "7",
                      "c" : 12159
                   },
                   "array_one" : [ 1274, 24318 ],
                   "array_two" : [
                      [ 27944, 1208, 29647, 20840 ],
                      [ 4972, 27297, 17456, 13614 ],
                      [ 22441, 1160, 8940, 29420 ]
                   ],
                   "dy" : 200,
                   "functionPtr" : "NULL",
                   "i_int" : 15434,
                   "point_one" : [ 29394, 3868, 25406 ],
                   "point_two" : [
                      [ 13575, 14736, 20728 ],
                      [ 9132, 2297, 2113 ],
                      [ 26252, 14896, 10985 ]
                   ],
                   "w" : 12354
    
    
    

    针对每个编译单元,默认生成一组所有函数的对应的测试数据文件,值生成可以通过配置次数进行修改。
    4 Mysql程序测试结果展示
    如何完成驱动框架的生成,下面针对开源程序MySQL完整的生成过程,进行详细说明。
    以下是Wings测试Mysql的主界面图:

    点击文件按钮,设置被测源程序的工程这里写图片描述目录。设置完成之后,点击功能操作,功能操作主要包括参数解析、驱动生成、值文件生成以及模板添加四个操作。分析对应生成以下几个文件夹:
    这里写图片描述
    其中,参数解析模块,对应生成FunXml以及GlobalXml,分别存放提取到的每个编译单元的函数信息及全局变量的信息。
    驱动生成模块,会对应生成Wings_Projects文件夹,其中存放每个编译单元的驱动文件
    值生成模块,存放每个编译单元的生成的测试数据。
    下图为Mysql对应加载的驱动文件结构体信息,左侧导航树为生成的对应驱动文件,包含每个编译单元的函数以及函数的参数、全局变量的信息。点击其中某个编译单元,可以加载对应的驱动文件以及对应的值文件。

    这里写图片描述
    以上是Mysql的整体生成对应的驱动文件以及值文件,针对以下代码详细说明驱动文件。
     针对每个编译单元,全局变量的引用通过extern的方式。
     驱动函数,统一命名为Driver_XXX的方式,JSON作为获取测试数据的方式,times代表单函数的测试次数。
     针对每个参数的赋值操作,利用解析到的PSD存储格式,对每层结构依次进行赋值操作。
    Wings的应用非常简单,下面是以在Visual Studio 2015中可正常编译的Mysql 代码为例,生成的测试数据的统计指标,整个生成过程无需任何人工介入,仅需要制定所需要生成驱动的源码的路径即可。
    mysql测试数据
    Mysql版本 5.5
    C语言代码文件个数 578个
    分析所用时间(PSD生成时间) 149.099s
    驱动生成所用时间 27.461s
    值生成所用时间 84.974s
    电脑配置说明:
    操作系统 Windows7
    处理器 Inter® Core™ i7-7700cpu 3.60GHz
    内存 8.00GB
    系统类型 64位

    以下是使用源码统计工具得到的结果,多达400多万行有效的单元测试代码是由Wings全自动生成的。更有意思的是:可以看到这些代码采用人工开发的成本高达1079个人月,成本更是达到了1079万之多。

    这里写图片描述
    Wings实现了由程序自动生成程序的第一步探索,目前发布的是第一版,有兴趣的开发者直接在码云平台(https://gitee.com/teststars/wings_release进行下载),商业授权提供了一个月无限功能体验期,可以快速体验Wings的神奇能力,Wings c语言版支持多平台,例如visual studio、vxworks、gcc、qt等。Wings由星云测试(www.teststar.cc)团队设计和研发,有兴趣的开发者可以通过码云的互动平台与星云测试团队取得联系,贡献自己的设计思路和产品使用反馈(凡被采纳的优秀建议,星云可以延长其免费使用期至少为三个月)。Wings具有强大的、底层的大幅度改进软件质量的基因,未来Wings的将深度优化自动编写的程序的可读性(更接近优秀程序员的编写水平)以及对于c++语言的支持。

    展开全文
  • 敏感变量和感知结合的测试预言生成方法.pdf
  • 应急广播测试demo
  • 基于扩展有限状态(EFSM)模型自动生成测试序列可以提高测试效率.由于EFSM模型包含丰富的变量和谓词条件,它们之间的冲突可能导致自动生成的测试序列不可执行.对EFSM变迁及变迁之间的关联关系进行了详细的讨论和分析,...
  • 请诸位大神帮忙编写一下UIO的生成算法,我实在不知道如何编写,多谢了
  • 在接收灵敏度测试生成高精度、 低幅度RF 信号pdf,无线发射的功能是处理原始信息,以便适合无线传输。它包括编码、调制、振、上变频器、放大子系统等多个模块。
  • 批处理自动生成机

    2018-12-08 15:01:34
    批处理自动生成机,用于测试、对比程序与数据,自动生成批处理
  • 目前有许多测试序列的生成方法,该文在FSM模型下基于UIO序列和BUIO序列,提出了完整的自动生成测试序列算法。该算法生成的测试序列较其他算法短,并通过ECMA-264实例得到了验证。
  • 测试数据生成工具datafaker

    万次阅读 2019-03-30 20:36:58
    datafaker是笔者开发的一个大批量测试数据和流测试数据生成工具,兼容python2.7和python3.4+,欢迎下载使用。github地址为: https://github.com/gangly/datafaker 文档同步更新在github 工具产生背景 在软件开发...
  • Jmeter3.0以后引入了Dashboard Report ,用于生成HTML格式图形化报告的扩展模块,在压力测试结束时同时自动生成报告。 cmd 下 : 进入jmeter目的/bin目录 执行命令: jmeter -n -t <test JMX file> -l <...
  • 行业分类-物理装置-GBAS测试设备的卫星接收及其伪距生成方法与系统.zip
  • 看了社区无数文章,还没有一个写详细步骤的,我...3 真机测试 手机–华为–安卓系统。 平板–华为,安卓系统。 开始了, 一, 先写个最简单的界面, 在 QT creator 4.3 中,建立一个Widget应用程序 , 如下图 点...
  • 提出了一种用户自定义故障的EFSM测试生成方法。该方法应用EFSM切片对EFSM模型进行合理的缩减,有效地避免了从EFSM到FSM转换得到测试集而产生状态空间爆炸的问题,也得到最短的测试用例集合。实验结果表明了新算法...
  • 基于禁忌搜索算法的可扩展有限状态模型测试数据自动生成
  • 在命令行使用Allure生成测试报告

    千次阅读 2021-03-25 17:45:49
    提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录GIT前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能...
  • 针对EFSM中状态迁移不确定导致的协议一致性测试序列生成困难的问题, 提出了一种协议一致性测试序列生成算法。该算法基于互异代表系理论为每个协议状态变迁赋权值, 再基于分支界限法搜索生成的协议测试序列, 将协议...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 499,707
精华内容 199,882
关键字:

本机生成https测试用