2015-02-01 5 views
1

Я работаю инженером-испытателем. В основном я работаю с тестовой автоматизацией на уровне функциональной системы и тестированием производительности.Должны ли QA/тестеры писать единичные тесты?

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

В настоящее время я делаю много BDD. «Given-When-Then» - это стиль, который я использую, когда пишу код автоматизации. Является ли модульное тестирование одинаковым? Я подумываю о стиле «устраиваю акт утверждения».

  1. Следует ли тестировщикам выполнять единичные тесты? Разве это не то, что разработчики работают? Зачем мне это делать?
  2. Насколько сложно провести единичное тестирование? Это простой материал или сложный материал? Я выбираю эту карьеру, потому что я никогда не был хорошим программистом. Но мое программирование было достаточно хорошим, чтобы начать работать с тестовой автоматизацией (очень простой материал).

ответ

6

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

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

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

пса: в настоящее время лучший практика консультирует стиль «Given-When-Then»

+0

Да, модульные тесты больше Код-дизайна для программистов, чем тестирование, но делает устройство тесты требуют навыков программирования. Навыков, которых у меня нет. Мне страшно. – Smile

0

Unit Testing - это форма автоматизации тестирования. Для каждого языка существует единая система тестирования, поэтому вам не нужно много работать.

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

Для тестировщиков не обязательно неправильно выполнять модульное тестирование, хотя это означает, что они будут более осведомлены о фактической структуре приложения. Чаще всего вы видите тестовый дизайн, который структурирован как Spec -> Interface -> Tests -> Implementation. Спецификация исходит от босса или какой-то третьей стороны. Интерфейс разработан разработчиками проекта как совместная мера, и в первую очередь там, где происходит общение между разработчиками. Тесты и реализация - это относительно сольные проекты, и в некоторых компаниях они передаются одному и тому же человеку, в некоторых они разделены.

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

+0

Да, модульные тесты - это скорее код-дизайн для программистов, чем тестирование, но для модульных тестов требуются навыки программирования. Навыков, которых у меня нет. Мне страшно. – Smile

+0

Если ваши навыки начинаются и заканчиваются сценарием, то возможно, что ваш босс просит вас не подходить. У QA и Testing есть элемент программирования для них, но я думаю, вы узнаете, если вы посмотрите на него, модульное тестирование в основном просто написания сценария для тестовой среды. Он разработан, чтобы быть простым, так что тесты трудно ошибиться. – lassombra

+1

Благодарим за оптимизм. Я ежедневно работаю с программированием и тестированием. Я работаю с Java вместе с селеном вместе с другими инструментами TDD/BDD, такими как огурец. Я также могу автоматизировать тестирование с помощью C# вместе с инструментами автоматизации HP. Я хочу сказать, что у меня есть основное (далекое от эксперта) знание программирования. Но я не программист, и я никогда не вижу кода, с которым работают разработчики. Я просто автоматизирую и тестирую поведение, производительность и функциональность своего кода. Вы думаете, что я смогу написать модульные тесты? Неужели это так сложно, как я думаю, или я незрелый? – Smile

-2

да,

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

1
  1. Обычно тестеры не записывают модульные тесты - это не обычная практика - более того, это на самом деле странная и плохая практика. Написание единичных тестов на чей-то код похоже на угадывание того, что автор имел в виду при построении единицы кода. На самом деле каково значение модульных тестов, записанных в готовый код? Возможно, вы столкнетесь с некоторыми тестами, и не было бы простого способа сократить зависимости/издеваться над ним. Что тогда? вы пойдете и попросите разработчика улучшить дизайн?

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

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

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

QA больше о тестировании (например, разные точки зрения (...) -> большой площади, чтобы объяснить, кто является тестер)

Смежные вопросы