Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我应该执行什么形式的测试?_C++_Unit Testing_Testing_Tdd_Automated Tests - Fatal编程技术网

C++ 我应该执行什么形式的测试?

C++ 我应该执行什么形式的测试?,c++,unit-testing,testing,tdd,automated-tests,C++,Unit Testing,Testing,Tdd,Automated Tests,我想用C/C++或者Java,或者Python编写一个算法,一组机器学习算法。语言对我来说并不重要——我对以上所有内容都很熟悉 对我来说重要的是测试。我想使用训练数据训练我的模型。所以我有测试输入,我知道输出应该是什么,我将它与模型的输出进行比较。这是什么样的测试?这是单元测试吗?我如何处理这个问题?我可以看到我可以编写一些代码来检查我需要检查的内容,但我想将测试与主代码分开。测试是一个发展良好的领域,我以前见过这种测试,但我不知道这种特殊类型的测试的名称和类型,这样我就可以了解它,而不会造成混

我想用C/C++或者Java,或者Python编写一个算法,一组机器学习算法。语言对我来说并不重要——我对以上所有内容都很熟悉


对我来说重要的是测试。我想使用训练数据训练我的模型。所以我有测试输入,我知道输出应该是什么,我将它与模型的输出进行比较。这是什么样的测试?这是单元测试吗?我如何处理这个问题?我可以看到我可以编写一些代码来检查我需要检查的内容,但我想将测试与主代码分开。测试是一个发展良好的领域,我以前见过这种测试,但我不知道这种特殊类型的测试的名称和类型,这样我就可以了解它,而不会造成混乱。如果您能告诉我此测试方法的名称,我将不胜感激。

这听起来很像,在生产代码之前创建。关于这两个主题,本网站有许多详细的答案。我已经链接了几个相关的问题来帮助您开始。

这听起来很像是在生产代码之前创建的地方。关于这两个主题,本网站有许多详细的答案。我已经链接了几个相关的问题来帮助您开始。

如果您的输入/输出位于完整程序的外部接口,那就是黑盒系统测试。如果您在程序内部放大某个特定函数,例如搜索函数,直接向函数提供输入并观察其行为,这就是单元测试。这可以在功能级和/或模块级完成。

如果您的输入/输出位于完整程序的外部接口,这就是黑盒系统测试。如果您在程序内部放大某个特定函数,例如搜索函数,直接向函数提供输入并观察其行为,这就是单元测试。这可以在功能级别和/或模块级别完成。

如果您正在编写机器学习项目,测试和培训过程实际上不是测试驱动的开发。你听说过共同进化吗?你的学习系统有一系列的谜题,这些谜题本身就是不断发展的。它们的适用性取决于它们对您的案例的混淆程度

例如,我想发展一个排序网络。我的学习系统是制作网络的程序。我的协同进化系统生成难以分类的输入。排序网络因产生正确的排序而获得奖励,协同进化系统因其在排序网络中触发的故障数量而获得奖励


我在遗传编程项目中做过这项工作,效果很好。

如果你在写一个机器学习项目,测试和培训过程并不是真正的测试驱动开发。你听说过共同进化吗?你的学习系统有一系列的谜题,这些谜题本身就是不断发展的。它们的适用性取决于它们对您的案例的混淆程度

例如,我想发展一个排序网络。我的学习系统是制作网络的程序。我的协同进化系统生成难以分类的输入。排序网络因产生正确的排序而获得奖励,协同进化系统因其在排序网络中触发的故障数量而获得奖励


我在遗传编程项目中做过这项工作,效果很好。

可能是回测,这意味着您有一些历史输入,并对它们运行算法,以评估算法的性能。您自己使用的术语“训练数据”更为通用,您可以搜索该术语以找到一些有用的链接。

可能是回测,这意味着您有一些历史输入,并对其运行算法以评估算法的性能。您自己使用的术语“训练数据”更为笼统,您可以搜索这些数据以找到一些有用的链接。

您最好的选择是观看来自tetsing God的心理测试视频

Misko视频链接:

阅读谷歌测试指南

编辑:

任何人都可以编写测试,它们非常简单,编写测试没有任何魔力,您可以简单地执行以下操作:

var sut = new MyObject();
var res = sut.IsValid();
if(res != true)
{
  throw new ApplicationException("message");
}
这就是理论,当然现在我们有工具来简化测试,我们可以这样写:

new MyObject().IsValid().Should().BeTrue();
但是你应该专注于编写可测试的代码,这是关键


只需遵循Misko的测试视频心理就可以开始了

你最好的选择是观看tetsing God的测试视频心理

Misko视频链接:

阅读谷歌测试指南

编辑:

任何人都可以编写测试,它们非常简单,编写测试没有任何魔力,您可以简单地执行以下操作:

var sut = new MyObject();
var res = sut.IsValid();
if(res != true)
{
  throw new ApplicationException("message");
}
这当然是理论 现在我们有了简化测试的工具,我们可以编写如下内容:

new MyObject().IsValid().Should().BeTrue();
但是你应该专注于编写可测试的代码,这是关键


只要遵循Misko测试视频的心理学,就可以开始它的单元测试。控制器经过测试,代码被签入和签出,而不会真正弄乱开发代码。这个过程也被称为测试驱动的开发TDD,在进入下一个软件迭代或阶段之前,您的每个开发周期都会被测试。

它的单元测试。控制器经过测试,代码被签入和签出,而不会真正弄乱开发代码。这个过程也被称为测试驱动开发TDD,在进入下一个软件迭代或阶段之前,您的每个开发周期都要经过测试。

虽然这是一篇非常古老的文章,但我的2美分:

一旦确定了使用评估协议的算法方法,也就是说,并在单一边缘情况下测试了算法,您可能会对在多个数据集上运行算法的方法感兴趣,并断言结果单独或平均高于某个阈值,等等

这说明了如何在pytest框架中进行测试,pytest框架是python中最流行的测试框架。这是基于一个例子比较多项式拟合算法在几个数据集


我是作者,请随时在github页面上提供反馈

虽然这是一篇很老的帖子,但我的2美分:

一旦确定了使用评估协议的算法方法,也就是说,并在单一边缘情况下测试了算法,您可能会对在多个数据集上运行算法的方法感兴趣,并断言结果单独或平均高于某个阈值,等等

这说明了如何在pytest框架中进行测试,pytest框架是python中最流行的测试框架。这是基于一个例子比较多项式拟合算法在几个数据集

我是作者,请随时在github页面上提供反馈