首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在数学建模过程中,应该在哪里进行测试和检查?

在数学建模过程中,应该在哪里进行测试和检查?
EN

Software Engineering用户
提问于 2018-12-21 17:06:08
回答 2查看 58关注 0票数 2

我有一个包含两个主要“阶段”的数学模型: 1.数据加载(只有几KB的数据);2.在数据上运行模型。我希望实现一些测试和检查,以确保输入到模型中的数据是有效的(正确的类型、正确的值等)。以确保模型输出的正确性。

在整个过程的哪个阶段是实现这些测试的最佳时间--当加载数据或在数据上运行模型时?或者应该在两个阶段运行测试?

只在数据加载阶段运行测试,可以减少总体开销,并确保模型输出正确。在模型阶段运行测试会导致代码重复(如果在数据加载阶段已经实现了测试,则会带来额外的开销)。

该模型每周只由内部用户运行一次,因此不存在外部应用程序或责任/依赖方。但是,模型对象对用户是可用的,而不必使用(单独的)数据加载对象(因此,数据可以(但实际上不应该)从用户传递到模型,而不必经历数据加载阶段)。

这里有最好的做法吗?是否有更好的方法来构造代码来实现测试?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2018-12-21 20:37:21

在整个过程的哪个阶段是实现这些测试的最佳时间--当加载数据或在数据上运行模型时?

都不是。

相反,将该过程分为三个阶段:

  1. 数据加载
  2. 验证
  3. 在数据上运行模型

这使得验证独立于1和3,这允许在其他上下文中重用验证。它还允许在所有数据可用时更容易实现的验证形式,以及在顺序加载步骤中难以实现的验证形式。

如果涉及到一些特定于模型的验证,那么第2步可以使用模型。然而,保持2和3清楚地分开往往是一个好主意。

我想唯一会发生的代码重复是在步骤1和2中迭代数据的代码,这是可以接受的,因为这通常不会重复这些步骤中的任何逻辑。但是不知道任何细节(比如数据结构),这只是一次黑暗的尝试。

票数 4
EN

Software Engineering用户

发布于 2018-12-22 07:40:01

验证属于模型。数据是否糟糕取决于最终提供给它的模型,在加载阶段,这一点还不清楚。好的,您目前只有一个模型,但是从软件工程的角度来看,这个模型可能会发生变化。因此,就像在使用对象之前测试null一样,在执行计算之前测试数据的正确性。加载阶段不需要也不应该有关于模型的知识(==依赖)。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/384427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档