今天打比赛时令小编很气愤,隔壁LSH有文件运行错误,重提了一遍老师就收,而小编重提却爱搭不理,于是小编决定还是自己造个数据把代码重测一遍,于是潜心钻研生成测试数据的方法。

  其实很简单,用随机数生成器生成几个随机数再根据数据规模取模就可以了,(必要时可以增加一些特定测试点),代码就几行不做解释了(别问我为什么,windows系统编程指令就是这样,想想hello为什么要这么拼写吧):

  data.cpp

 1 #include<iostream>
 2 #include<windows.h>
 3 #include<ctime>
 4 using namespace std;
 5 int main()
 6 {
 7     srand(time(NULL));
 8     cout<<rand()%10<<" "<<rand()%10;
 9     return 0;
10 } 

  接着是两组测试代码(一看就会出现问题)

  a.cpp

1 #include<iostream>
2 using namespace std;
3 int main()
4 {
5     int a,b;
6     cin>>a>>b;
7     cout<<a*a+b;
8     return 0;
9 }

  b.cpp

1 #include<iostream>
2 using namespace std;
3 int main()
4 {
5     int a,b;
6     cin>>a>>b;
7     cout<<a*2+b*3;
8     return 0;
9 }

  通常两份代码会是正解和暴力代码,必须先保证暴力是正确的,然后不断生成输入数据比较暴力和正解的答案,以此检查正解是否是对的。

  接着是对拍程序:

  compare.cpp

 1 #include<iostream>
 2 #include<windows.h>
 3 using namespace std;
 4 int main()
 5 {
 6     int n=10;
 7     while(n--)
 8     {
 9         system("data.exe > data.txt");
10         system("a.exe < data.exe > a.txt");
11         system("b.exe < data.exe > b.txt");
12         if(system("fc a.txt b.txt")) break;
13     }
14     if(n==0) cout<<"Great!"<<endl;
15     else cout<<"error"<<endl;
16     return 0;
17 }

  先生成测试数据,在分别输进两个程序中,最后比较输出结果。【注意】:必须文件都在同一目录下,而且对拍程序操作的是exe文件。

转载于:https://www.cnblogs.com/TFLS-gzr/p/11028716.html

调试与对拍(一):生成测试数据+对拍相关推荐

  1. mysql 测试数据的脚本_Mysql脚本 生成测试数据

    Mysql脚本 生成测试数据 使用: ./xie.sh -uroot -p'123456' #!/bin/bash #混合测试数据库脚本 #将创建一个single数据库,其中创建一个s1表 #如果数据 ...

  2. mysql重新创建测试对象的SQL_MySQL_Sql_打怪升级_进阶篇_测试: SQL随机生成测试数据...

    1.随机生成测试数据 目标:创建一张表,插入随机的行数,生成测试所需的数据. 2.测试所需环境准备 库名:userdatabase 表名:test_user_table 字段 需求 uname 6字符 ...

  3. 通过 Python_Faker 生成测试数据

    通过 Python_Faker 生成测试数据 一.介绍 在软件需求.开发.测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,你不可能通过手工来生成(最傻的方法)可能 ...

  4. 网上论坛生成测试数据方法(抢分利器)

    在网上回复问题时,生成测试数据是必不可少的 1.在master系统库生成存储过程方法 USE master go IF object_id('SP_Script') is not nulldrop p ...

  5. 软件测试自动生成测试数据,软件测试中测试数据的自动生成方法浅析

    一.引言 软件质量是制约计算机应用领域进一步发展的关键要素之一,保证软件质量.提高软件可靠性的重要手段是软件测试.软件测试中最关键的问题是测试数据的设计,它主要涉及两个方面,一是测试 数据生成,是测试 ...

  6. python生成测试数据_Python基于Hypothesis测试库生成测试数据

    Hypothesis是Python的一个高级测试库.它允许编写测试用例时参数化,然后生成使测试失败的简单易懂的测试数据.可以用更少的工作在代码中发现更多的bug. 安装 pip install hyp ...

  7. 使用Hypothesis生成测试数据

    一.什么是Hypothesis Hypothesis 是python的一个高级测试库,它允许编写测试用例时参数化,然后生成使测试失败的简单易懂的测试呼叫,可以用更少的工作在代码中发现更多的bug. 二 ...

  8. java faker_Java基于Javafaker生成测试数据

    1. 前言 老板说,明天甲方要来看产品,你得造点数据,而且数据必须是"真"的,演示效果要好看一些,这样他才会买我们的产品,我好明年给你换个嫂子.一般开发接到这种过分要求都不会很乐意 ...

  9. 如何使用TPC-DS生成测试数据并导入MySQL

    测试环境 centos7 mysql搭建指南可参考:https://lrting.top/backend/2111/ 安装依赖: yum install gcc make flex bison bya ...

最新文章

  1. VR应用开发遍地走的日子还有多远
  2. 检测点是否在两条平行线段之间_解决最值问题的利器——垂线段最短
  3. 自学计算机二级office用什么书,暑假里想要自学计算机二级office有哪些什么好的建议...
  4. P3527-[POI2011]MET-Meteors【整体二分,树状数组】
  5. BeanUtils 使用问题
  6. php 计算签名,php – 计算Amazon Marketplace API的签名问题
  7. IDEA中JS文件中文乱码
  8. python编程语言在线编译手机_groovy在线运行,groovy在线编译,支持手机在线编程写代码 - Groovy教程...
  9. 图像处理算法:最大类间方差法
  10. Python使用UDP实现720p视频传输
  11. Elasticsearch(二):进阶检索
  12. 双ip的oracle集群该怎么连接,如何配置电信联通双线双IP接入
  13. 软件 -- 如何解除 tv15商业版的限制
  14. Ventrilo初学者指南,面向游戏玩家的VoIP应用
  15. 12.面向对象(继承/super/接口/抽象类)
  16. [unity] build项目报错:Currently selected scripting backend (.NET)is not installed
  17. 我叫mt4 服务器维护,我叫MT48月22日停机维护公告 我叫MT4最新维护内容一览-游侠手游...
  18. 【正点原子FPGA连载】第二章 实验平台简介 -摘自【正点原子】新起点之FPGA开发指南_V2.1
  19. 【Java】使用smtp和pop3协议,实现邮件收发
  20. SVA——断言属性之序列(sequence与property的用法)

热门文章

  1. 网络上各台计算机语言,人类使用语言来交流,同样,网络上的各台计算机之间也用某种语言交换信息,这样的语言通常指()。...
  2. python自动补全库_这个库厉害了,自动补全Python代码,节省50%敲码时间
  3. php代码清除空格注解,去除php注释和去除空格函数分享
  4. mysql查询表名匹配只有字母的_MySQL按某些匹配字母查询表
  5. 常用的基本Windows数据类型
  6. duilib清空richedit内容
  7. 《MySQL——给长字符串加索引》
  8. 背包问题 小灰_小背包问题
  9. c++ cdi+示例_C ++“和”关键字示例
  10. scala字符串替换_如何在Scala中替换字符串中的正则表达式模式?