Подсказки для балансировки между Собачьим кормом и QA? [закрытый]

Вы можете использовать asyncAfter для создания асинхронной задержки. Через 5,0 секунд вы можете делать то, что вы хотите.

var stop: Bool = false

DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) { // runs after 5.0 seconds
    // pass your stop boolean here
}
5
задан Bill the Lizard 19 September 2014 в 14:28
поделиться

8 ответов

Я почти соглашаюсь с ответом Garry - кроме он утверждает, что это не об улучшении качества кода. Я думаю, что это абсолютно относится к этому, а также удобству использования, которое он упоминает в своем первом абзаце.

Если у Вас может быть широкий собачий корм, Вы доберетесь:

  • Более реалистические данные, чем QA, вероятно, будут использовать (учитывая, что это - реальные данные!)
  • Более широкий диапазон данных, чем QA, вероятно, будет использовать, одной только силой чисел

Я, конечно, исправил ошибки, найденные в dogfooding много времен, где ситуация просто не была протестирована QA. Во многих ситуациях Вы действительно не можете протестировать все возможности, но dogfooding помогает протестировать больше.

Получите столько людей к собачьему корму, сколько Вы можете (устанавливавший соответствующие ожидания о потенциальных проблемах, конечно). Это, конечно, не должен быть "разработчик только" вещь (если Вы не создаете продукт только для разработчика, конечно). Это не отнимает у ценной работы QA - это добавляет к нему.

Это зависит в широком масштабе от того, что Вы разрабатываете все же. Я был в одной компании, где у сотрудников никогда не было бы причины использовать продукт в повседневной жизни, таким образом, dogfooding не был действительно выполним. В другой компании мы создавали веб-прокси, таким образом, имело смысл заставлять большой блок компании просматривать прокси. Я недавно работал над продуктом синхронизации, нацеленным на потребителей, поэтому снова он имеет смысл к собачьему корму широко.

9
ответ дан 18 December 2019 в 05:44
поделиться

Dogfooding не о QA вообще. Это об использовании продукта, который Вы разрабатываете сами так, чтобы Вы видели, где вещи могли бы быть улучшены в рабочем процессе и обычно чувстве болевых точек использования Вашего программного обеспечения.

Это не об улучшении качества кода, это о создании Вашего программного обеспечения, легче использовать и вести Вас в Вашем выборе разработки комплекта.

7
ответ дан 18 December 2019 в 05:44
поделиться

Sadly, absolutely nothing, since IE will not support any standards that are newer than five years or so.

--121 --- 3740789--

Я полностью согласен с ответом Джона, с добавлением, что тестирование корма для собак важно даже для QA, и часто не проводится. Я неоднократно начинал использовать продукт, который другие части QA (иногда даже я сам) предположительно закончили тестировать и находили недобросовестные ошибки при обычном использовании. Иногда это, как отмечает статья в Joel on Software, просто плохое тестирование; это удивительно часто для первого примера в учебном пособии, чтобы потерпеть неудачу (например, Deja Gnu). Но чаще всего это потому, что собачий корм очень отличается от систематического тестирования: вы не делаете то, что вам говорят, вы делаете то, что на самом деле делаете, когда вы не пытаетесь найти ошибок.

Очень, очень хороший план тестирования может охватывать некоторые из этих случаев, но в самом неприятном примере в моей собственной компании, план тестирования был частью проблемы: бросающийся в глаза вариант, который наверняка понадобится большинству разработчиков, был официально не поддержан и, следовательно, не проверен, но, тем не менее, необходим. Я полагаю, что более разумное определение функциональных требований не допустило бы этой ошибки; если вам известна какая-либо компания, чьи FRD всегда вполне разумны и которые нанимают, сообщите мне: -)

4
ответ дан 18 December 2019 в 05:44
поделиться

Формальный по сравнению с неофициальным

Используя Ваш собственный продукт ("едящий корм Вашей собаки") часть Гарантии качества, и я подверг бы его неофициальной категории тестирования в противоположность более формальному тестированию, обычно делавшемуся отдельным отделом QA.

Глубина по сравнению с шириной

“Употребление в пищу корма Вашей собаки” нацелено на предоставление собственного опыта использования продукта или услуги людям, непосредственно ответственным за его проектирование и разработку. Для многофункционального приложения это могло бы пойти глубже, чем формальное тестирование и в то же время поместило определенную пользовательскую перспективу, когда формальное тестирование обычно покрывает ширину вариантов использования программного обеспечения и пытается работать в более объективных и измеримых терминах.

Небольшие раздражения, которые имеют значение

Существует также категория недостатков, очень характерных для среды, которая может быть только диагностирована “в поле” (как этот действительно раздражающий звук грохота, который, кажется, прибывает из ниоткуда каждый раз, когда Вы путешествуете на уровне 72.52 миль в час, и управляет Вами абсолютно гаек, все же ни одна из механики не может, ни готова перейти к причине, когда автомобиль в гараже).

Явное программное обеспечение по сравнению с приложением + набор практики

Используя Ваш собственный продукт идет далеко вне самого программного обеспечения; это неизбежно охватывает всю “пользовательскую поездку”. “Употребление в пищу Вашего корма для собак” позволяет, чтобы разработать и лучше понять методы использования программного обеспечения в домене. Справедливости ради стоит отметить, что некоторое программное обеспечение используется во многих широко различных контекстах. Формальное тестирование не смогло покрывать каждый из этих контекстов подробно, просто потому что могло бы быть трудно определить официально, какие определенные тесты необходимо сделать, после того как что-то изменилось. Или могло бы быть слишком дорого подражать этим внутренним контекстам или пройти все известные тестовые случаи каждый раз, когда программное обеспечение немного изменилось.

Внутреннее изменение по сравнению с внешним

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

Что не так с "Балансом"?

Как таковой нет никакого баланса для нанесения удара между использованием собственного продукта, и официально тестирование его (сделайте обоих так же, как это выполнимо, т.е. возвращается, Вы добираетесь, стоят усилия). Нужно похвалить другого, для не служения в качестве замены.

Кто должен сделать тестирование: различие

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

Вы не можете Собачий корм Все! Или можете Вы?

Насколько “Вы не можете определенные типы собачьего корма программного обеспечения”, аргумент идет, ну, в общем, позволяют не, концентрируются о том, как dogfooding смотрит: употребление в пищу корма Вашей собаки, а скорее думают вместо того, что это означает: получение собственного опыта и “выравнивание интересов” с ними фактических пользователей.

Следующая лучшая вещь к употреблению в пищу еды самостоятельно наблюдает собаку, пока она ест еду, в противоположность доверию кому-то еще говорящему Вам, что Ваша собака, предположительно, любит или не любит.

Пока члены команды разработчиков не могут лично вводить программное обеспечение управления сточными водами в эксплуатацию в своих повседневных заданиях, ничто не мешает им, регулярно проводить некоторое время наблюдая инженера сточных вод, использующего приложение, которое не следует за буквой “dogfooding”, но конечно получает его дух.

4
ответ дан 18 December 2019 в 05:44
поделиться

Существует две роли, обычно описываемые как "QA".

  • Гарантия качества - люди, которые гарантируют, что план качества выполняется.

  • Тестеры - разработчики, которые не кодируют.

Если Ваш вопрос был сфокусирован на "уверении, что план качества выполняется", затем затем это легко: разработчики действительно работают, который выполняет план качества и аудиты QA, что план качества сопровождался.

Так как Ваш вопрос фокусируется на "разработчиках, которые не кодируют", затем у Вас нет большой части плана качества во-первых. В этом случае разработчики должны (1) интегрировать тестеры в свои разряды, (2) создать план качества и (3) работать согласно тому плану.

План может включить некоторое независимое тестирование. Это может быть сделано при наличии разработчика тесты записи на разработчика B. Это может также быть сделано при наличии разработчика тесты записи и экспертная оценка те тесты прежде, чем начать кодирование.

Идея состоит в том, что разработчики пишут и проверяют и тестируют свой собственный код. Одна организация разработки. Все кодируют - еще немного, чем другие.

QA удостоверяется, что разработчики действительно делают это последовательно и полностью.

Я не вижу "разработчиков, которые не кодируют" как жизнеспособное задание. Это действительно разработчики младшего уровня. Можно или усилить их для роста некоторых дополнительных технических навыков; или тратьте их в положении, где они тратят изрядное количество времени, избиваемого пользователями и спорящего с разработчиками.

Один способ усилить "разработчиков, которые не кодируют", состоит в том, чтобы запустить их запись тестов; затем используйте их для фиксации взломанного кода; затем код от чужого дизайна; затем сделайте дизайнерскую работу самостоятельно.

Существует много способов обескуражить этих "разработчиков, которые не кодируют". Нужно оставить их предполагающий, что имели в виду пользователи. Сделайте это путем сужения их знания процесса к, что они находят в документах бизнес-анализа. Другой должен поместить их в положение, где они должны спорить по интерпретации документов бизнес-анализа с разработчиками.

2
ответ дан 18 December 2019 в 05:44
поделиться

Я уверен, что можно придумать уравнение на снижении расходов, но это было бы моментом времени. Разработчики должны всегда 'есть свой собственный корм для собак', когда практичный (почему разработчик создал бы IDE для других и не использовал бы его самих???) - но они должны всегда включаться до некоторой степени в основных операциях QA. Я был в ко многим компаниям, куда разработчики бросают код по стене ('Я гажу золотой синдром') - порождение цикла после цикла плохого протестированного кода, не зафиксированный полностью и протестированный снова.

Менеджер должен решить, что уровень тестирования каждой группы делает и настраивает/настраивает со временем и характерный для каждого заинтересованного лица. Худшее код, поставляемый больше времени, тестируя (TDD), должно быть потрачено с хранением улучшения разработчика.

2
ответ дан 18 December 2019 в 05:44
поделиться

Обычно DogFooding не настолько полезен, если Вы, оказывается, не разрабатываете инструменты разработчика, которые как разработчики также необходимо использовать.

Где я работаю, мы действительно используем наш собственный продукт, но совсем не так экстенсивно, как наши клиенты делают. Так как наши клиенты не находятся в бизнесе разработки программного обеспечения.

1
ответ дан 18 December 2019 в 05:44
поделиться

Dogfooding является хорошим решением при создании чего-то, что применимо штатом ежедневно, но к сожалению, я не думаю, что это выполнимо для каждого приложения. Если Вы пишете клиенту мгновенного обмена сообщениями, то dogfooding легок. Если Вы пишете системы управления для станции очистки сточных вод, хорошо затем, возможно, нет.

QA об управлении профессиональным качеством для Вашего программного обеспечения. Я думаю решение о том, нужно ли Вам оно, или не совершенно зависит от системы под тестом с точки зрения сложности и стоимости отказа. Существует (возможно упрощен) аналогия с производством. Я мог бы купить карандаш, который не передал отдел контроля качества, но я определенно не покупаю билет на самолете, который не имеет.

1
ответ дан 18 December 2019 в 05:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: