R Методы обеспечения качества - PullRequest
5 голосов
/ 30 октября 2010

Не могли бы вы дать некоторое представление о методах, которые вы используете для обеспечения качества ваших решений.Например, иногда мне нравится проверять свой результат, используя stopifnot(), чтобы убедиться, что я не получаю смешных результатов.Существуют ли какие-либо другие методы или функции, которые вы используете при обработке данных, чтобы обеспечить получение решения, которое вы хотели получить?даже закрытие, а не голосование за закрытие, возможно, помогите мне, добавив комментарии, чтобы направить разговор.

Ответы [ 2 ]

3 голосов
/ 30 октября 2010

Качество разработки программного обеспечения - довольно обширная область, и большая часть ее относится к коду, написанному на R, так же, как к коду или C #, поэтому мой первый ответ будет «это зависит».

Для меня я родом из фармацевтической промышленности, где то, что мы делаем, регулируется государственными органами, такими как FDA и MHRA.Для нас качество - это то, о чем мы думаем на протяжении всего процесса, поэтому я бы назвал следующие видимые артефакты качества:

  • У нас есть процесс разработки программного обеспечения, который записан и повторяется (традиционно в этом роде)в промышленности это стиль водопада , но все больше и больше метод гибкого / прототипирования используются методологии)
  • У нас есть система, которая гарантирует, что каждый вовлеченный в нее человек знает, чтоони должны выполнять (должностные инструкции) и иметь соответствующую квалификацию, чтобы выполнять эту работу (обучение)
  • Мы начинаем с определения того, что требуется каким-то образом, надеюсь, каким-то образом, которое можно проверить
  • У нас есть какой-то способ документирования нашего процесса разработки, где мы были и как (сочетание хорошей документации и Source Control )
  • Мы проводим тестирование, где это возможно, и как можно раньше(так, автоматизировано , если возможно)
  • У нас есть людей , которые несут ответственность за болеевидя качество, которые отделены от людей, которые делают для предотвращения конфликтов
  • Мы контролируем программную среду, которая используется для разработки, тестирования и производства (читай; контроль изменений )
  • Мы контролируем и управляем программным обеспечением, когда оно используется, отслеживаем проблемы и управляем им ( Отслеживание проблем )
  • Мы ведем записи, так что даже если бы каждый вовлеченный в этот процесс пошел под автобусом / выиграл в лотерею, новые люди все равно могли бы защитить и доказать все вышеизложенное государственному инспектору.

Однако это большой список, и я представляю,Есть много отраслей, которые не все из них (финансы, образование) и, вероятно, некоторые, которые делают больше (строительство ядерных реакторов, спасение жизней, НАСА).

Более конкретно, что я предполагаю, что выПрежде чем приступить к написанию кода, вы сможете определить некоторые конкретные начальные входные данные и ответы, которые вы должны получить, и я рекомендую вам использовать что-то вроде RUnit или Testthat для их построения..

3 голосов
/ 30 октября 2010

Несколько вещей, которые приходят на ум (в случайном порядке)

  • Эта страница имеет очень интересную ссылку для отладки в R (хорошо, это во время производства, но все же связана с вашей проблемой, я думаю)

  • Вы можете использовать исключения, как объяснено в этих обсуждениях (и ссылки в них)

  • Вы можете написать тесты с известными результатами (как для успеха, так и для неудачи) и увидеть, что они действительно делают то, что должны делать.Обязательно передайте некоторые странные данные функциям и посмотрите, как они ведут себя в «необычной» ситуации.

  • Не просто полагайтесь на автоматизированные тесты: дайте свои функциидовольно компьютерному неграмотному человеку на работе (недостаточно, чтобы он / она не мог использовать R все же!) и позволить ему / ей сделать некоторые бета-тесты.Вы будете поражены количеством ошибок, которые он / она придумают !!!:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...