Разработчик, тестирующий по сравнению с тестированием команды QA - Каково правильное подразделение работы? [закрытый]

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

Вы должны сохранить пул потоков для повторного использования, не нужно их воссоздавать. Вы можете даже повторно использовать QThreadQueue для этого.

По умолчанию QThread очень опасно уничтожать, и вы должны использовать версию без этого недостатка вместо этого, если вы может.

23
задан Halyna Vilchynska 4 April 2019 в 19:12
поделиться

8 ответов

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

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

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

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

, С другой стороны, для большого тестирования (такого как основная функциональность UI) откровенно не нужен такой навык. Это - то, где у Joel есть точка.

Для многих компаний, я видел систему, где команды программистов обменивают обзор кода и обязанности тестирования для кода друг друга. Члены команды Бизнес-логики, например, могли потратить случайное туристическое тестирование и рассмотрение кода для команды UI, и наоборот. Тем путем Вы не "тратите впустую" талант разработчика на полностью занятое тестирование, но Вы получаете преимущества представления кода к (надо надеяться), опытному исследованию и наказанию. Затем более традиционная команда QA может заняться тестированием "черного квадрата".

22
ответ дан tshepang 29 November 2019 в 01:33
поделиться

Когда соответствующее, команды Контроля качества должны быть в состоянии провести безопасность, Регрессию, Удобство использования, Производительность, Напряжение, тестирование Установки/Обновления и не Разработчиков

, Разработчики должны сделать поблочное тестирование с покрытием кода для кода, записанного как минимальная цель.

Промежуточный, существует все еще довольно мало тестирования, которое будет сделано

  • полный путь выполнения кода, тестирующий
  • Компонент, Тестирующий
  • Интеграционное тестирование (компонентов)
  • Система (интеграция), тестирующая
  • и т.д.

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

, Говорят друг с другом, узнают то, что все - самое удобное выполнение. Это займет время, но это определенно стоит того.

8
ответ дан not-bob 29 November 2019 в 01:33
поделиться

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

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

кроме того, все поблочное тестирование сделано разработчиками.

8
ответ дан Vaibhav 29 November 2019 в 01:33
поделиться

Я только был в промышленности в течение года, но по моему опыту dev's ответственен за поблочное тестирование их функции, в то время как QA ответственен за сценарии тестирования. QA, как также ожидали бы, протестирует любые граничные условия.

4
ответ дан RedDeckWins 29 November 2019 в 01:33
поделиться

Тестирование должно быть максимально автоматизировано, который возвращается, оно в dev работает, если тестеры пишут код, который добавляется к автоматизированному набору тестов.

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

3
ответ дан pjz 29 November 2019 в 01:33
поделиться

Я вставляю свой ответ на вопрос на нашем внутреннем форуме. Если у Вас есть приблизительно один час.. возьмите слушать Mary Poppendieck Конкуренция на основе Скорости видео. Рекомендуемый

Примечание (Тестерами - я обращаюсь к Команде QA)

Разработчик / Модульные тесты ________ = тестирование удобства пользования _______ & Исследовательский тестирование

' принятие ==================================================================

/ Потребительские тесты ___ = свойство _____ , тестирующее

, Предполагают что быть квадратом с четырьмя квадрантами.:)

левая половина должна быть автоматизирована.

  • тесты Разработчика проверяют, что код работает, поскольку кодер хотел его к. Инструменты: NUnit / xUnit / безотносительно самодельного инструмента
  • Потребительские тесты проверяют, что код работает, поскольку клиент хотел его к. Тесты должно быть очень легко записать, не должен требовать, чтобы клиент изучил.NET/Java. Еще потребительская привычка пишет те тесты (хотя он может потребовать некоторой справки разработчика). Соответствие, например, использует HTML-таблицы, которые могут быть записаны в Word. Инструменты: ПРИГОДНЫЕ инструменты Regression также лежат здесь. Рекордное воспроизведение.

право половина лучше использует время & усилие хороших тестеров. например, Никакой автоматизированный тест не может сказать Вам, применимы ли X диалоговых окон. Люди лучше в этом, чем машины.

  • Удобство использования. Попытайтесь Сломать Систему, (поймайте необработанные сценарии отказа, введите нулевые значения). В основном поймайте вещи что скучавший разработчик.
  • Свойство, тестирующее снова, требует людей. Здесь Вы проверяете, что клиент передал под мандат свойства, которые требуются Вашей системой. например, Производительность - Ваше поисковое диалоговое окно встречает время отклика 2 секунд? Безопасность - кто-то может взломать эту Систему? и т.д. Доступность - является Вашей системой 99,99% онлайн времени?

Тестеры не должны проводить время, выполняя планы тестирования по левой половине. Это - обязанность разработчиков гарантировать, что код работает клиентом, и разработчик предназначил его к. Тестеры могут заразить справку, клиент формулирует приемочные испытания..

3
ответ дан Gishu 29 November 2019 в 01:33
поделиться

Вот некоторые способы, которыми разработчик, тестирующий, является самым эффективным / самая высокая выплата:

  • Разработчик изменяет общую библиотеку при работе над функцией - dev имеет понимание возможных побочных эффектов, которые QA / проверка не делает
  • , Разработчик не уверен в производительности вызова библиотеки и пишет модульный тест
  • , Разработчик обнаруживает путь варианта использования, который не рассматривают в спецификации, которую код должен поддерживать, код записей, спецификация обновлений, тест записей

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

мы говорим о QA или проверке? Я думаю о QA вроде инспекционных контрольных списков, кодирую осуществление стандартов, инструкции UI, и т.д. Если мы говорим проверка, не имеет смысла для devs проводить много времени, создавая и выполняя формальные тестовые сценарии, но devs должен обеспечить все объяснение, и проектная документация должна была создать хорошие тесты.

0
ответ дан Aidan Ryan 29 November 2019 в 01:33
поделиться

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

Часть Вашей проблемы могла использовать доллар за 100$ на разработчиков часа и тестеры за 30$ в час:}. Но независимо от стоимости, я думаю, зная, что ошибки, найденные ранее в цикле разработки, являются неизбежно более дешевыми, Вы, вероятно, все еще сэкономили бы деньги при наличии разработчиков, собственных больше тестирования. Если Вы будете иметь высокооплачиваемую команду разработчиков и взломаете тестеры, Вы, вероятно, найдете много больших очевидных проблем, но Вы пропустите много более неясных ошибок, которые заставят Вас пожалеть позже.

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

2
ответ дан Alan 29 November 2019 в 01:33
поделиться
Другие вопросы по тегам:

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