R质量保证技术

时间:2010-10-30 01:59:23

标签: r

您是否可以深入了解用于确保解决方案质量的技术。例如,有时候,我喜欢使用stopifnot()来测试我的结果,以确保我没有收到荒谬的结果。您是否有任何其他技术或功能用于数据处理,以确保您收到您想要的解决方案?

注意:我意识到这是一个广泛的问题,可能是社区维基甚至关闭的候选人,但不是投票结束,也许通过添加评论来指导对话来帮助我。

2 个答案:

答案 0 :(得分:3)

只会想到一些事情(按随机顺序)

  • This page在R中有非常有趣的调试链接(确定这是在制作过程中,但我认为仍然与您的问题有关)

  • 您可以使用例外in this discussions(及其中的链接)

  • 您可以编写具有已知结果的测试(包括成功和失败),并看到他们实际上做了他们应该做的事情。请务必将一些奇怪的数据传递给函数,并查看它们在“不太正常”的情况下的行为。

  • 不要只依靠自动化测试:将你的功能交给一个相当计算机文盲的人(不足以让他/她不能使用R!)并让他/她做一些beta测试。你会惊讶于他/她会想出的错误数量! :)

答案 1 :(得分:3)

Quality in software engineering是一个相当大的领域,其中大部分都适用于用R语言编写的代码和用Cobol或C#编写的代码,因此我的第一个答案是“它取决于”。

对我而言,我来自制药行业,我们所做的工作受到FDA和MHRA等政府机构的监管。对我们来说,质量是我们在整个过程中考虑的事情,因此我将以下列为可见的质量工件;

  • 我们有一个软件开发流程,写下来并且可重复(传统上在这种行业中这是waterfall style,但正在使用越来越多的agile / prototyping style方法。
  • 我们有一个系统可以确保每个参与者都知道他们应该做什么(工作描述)并且有资格做这项工作(培训)
  • 我们首先以某种方式定义所需内容,希望以某种方式进行测试
  • 我们有一些记录我们的开发过程的方法,我们一直在哪里以及如何(良好的文档和Source Control的组合)
  • 我们会尽可能早地进行测试(如果可能的话,automated
  • 我们有people负责监督质量的人员,他们与正在采取预防冲突的人员分开负责
  • 我们控制用于开发,测试和制作的软件环境(阅读; change control
  • 我们控制和管理软件一旦使用,跟踪问题并对其进行管理(Issue Tracking
  • 我们保留记录,以便即使所涉及的每个人都乘坐公共汽车/赢得彩票,新人仍然可以向政府检查员辩护并证明以上所有内容。

然而,这是一个很重要的清单,我想他们的许多行业并不是全部(金融,教育),也可能是一些人做得更多(建造核反应堆,拯救生命,NASA)。

更具体地说,我假设你已经开始,在你编码之前,你应该能够定义一些特定的起始输入和你应该得到的答案,我建议你使用RUnit或{ {3}}建立这些。