Их задача не проверка правильности работы (это функциональные тесты), а найти список поломок в случае рефакторинга системы. Далеко не все используют экстремальное программирование с его частым рефакторингом, а тогда преимущество unit-тестов не настолько очевидно. В том то и дело, что с тестами НЕ медленней.
Но, начиная проект сейчас, имея отработанные и описанные методики, имеея хорошие фреймворки можно получить отличную, управляемую разработку. В TDD тесты точно так же не тестированы («fail first» это ложный костыль с вредным самообманом). Нормальное тестирование тестов осуществляется другими средствами — плановые инверсии, мутационное тестирование и т.п. При покрытии «после кода», часто реальные бизнес сценарии могут забываться (особенно если их 10+) и по этому покрывают на основе не зеленых строк в коде. Простите но я не очень понял Вы это сообщение мне написали или человеку которому я отписывался выше? А то странно выходит я пишу что никто ни про какие гарантии не говорил и это как бы всем понятно, а Вы вроде как оппонируете мне говоря ровным счетом тоже самое что я и говорил.
Что нового в тестировании?
На само по себе написание кода тратится максимум 10% времени в общем цикле разработки более-менее сложного проекта. Тут кстати несогласен, как показала практика далеко не каждый студент может написать код чтобы он сразу работал. Даже очень синьйористые синьйоры давольно частенько мелкие копи-пейст ошибки допускают. Помогут ли копи-пейст юнит тесты эти ошибки исправить — большой вопрос. И тогда возвращаемся к моему изначальному примеру, легко покрываем логику юнит тестами, а ковыряние базы и опрос сети оставляем для тестирования QA и пары тестов со шпионами. Моки не нужны ибо они усложняют тесты без какой либо нужды и бенефита.
Быстрые проверки, объявления, сеансы мозгового штурма и готовая помощь в решении проблем, которые являются обычными при работе в офисе, требуют творческого мышления, когда команды удалены. Обязанности и требования к кандидату могут отличаться в зависимости от опыта работы. Ты просто не в тех проектах работаешь, на мелких проектах с итерациями тесты не нужно писать, на больших проектах с формализированными требованиями обязательно.
Что входит в обязанности QA Engineer
Но такое есть ой не везде (и библиотеки тут разве что при том, что в них обычно больше концентрация сложного кода). Препроцессинг и постпроцессинг данных вполне можно покрыть тестами. При условиях большого процента покрытия (на CI) код вполне успешно покрываеться недо-тестами и без TDD. Хотя как по мне дело не в этом, а в том что QA не заменяет юнит тесты. Писать код сразу и без ошибок это детская фантазия и сопли.
- Код писали не титулованные программисты, критические ошибки выскакивали в самый неподходящий момент, а фикс занимал много времени.
- Протестировать можно надежными юнит тестами.
- Нужно также проверять во время интервью soft-скиллы, важные для работы QA.
- Можно «забывать» проверить тестами граничные случаи, ограничившись только банальщиной.
- Например, консольное приложение, генератор ходов в русских шашках.
Уходит конфуз буквально через пару недель работы на код базе, где присутствует четкое разделение окружения и логики. Напиши пример функции в которой, по твоему мнению, невозможно отделить сайды-эффекты от бизнес логики и обсудим ее. Юнит-тесты полезны для всего, у чего логика не может быть охвачена одним взглядом…
Как мы в «Приватбанке» пришли к разработке своей системы TestManager
Если покрывают отдельные методы для обработки данных это юнит тесты. Это называется integration test, потому что тестируется часть пайплайна. Вот например интеграция с платежным сервисом на 150 процентов выполняет бизнес-задачу проведения оплаты картой.
Теперь разбираем тестирование на уровне функций. Если ты знал, что повторная инициализация ведёт к ошибке, то ты бы проверил этот случай прямо в коде, что и надо делать. Соглашусь в том, что тесты по TDD как остались после написания фичи часто являются строительным мусором который можно и прибрать, в исключительных оставив отполированную часть на будущее.
Как и для чего использовать эти данные
Сколько платить Senior QA, а также как еще привлекать и мотивировать опытных специалистов кроме финансов — разобрали в статье. Мы верим, что каждый из вас сегодня с гордостью рассказывает своим друзьям и родственникам, что вы работаете тестировщиком и с чем вам приходится сталкиваться каждый день. Как-то я и раньше тому test first не доверял, но в итоге получил дополнительный аргумент, что без аккуратно расставленных инверсий тестировать нельзя. Даже если они проверяются раз в неделю вручную. Кстати тесты вообще слабо помогают понять что делает функция, намного больше помогает хорошее именование.
И у нас нет QA — программист отвечает за качество своего кода. Если наличие тестов позволяет отлавливать проблемы в коде, то влияют. Или судя по-такой логике наличие тех же крэшей, сегфолтов не влияет на качество продукта. Security Tester планирует и выполняет тесты безопасности, а также проверяет систему на наличие уязвимостей. А Performance Tester тестирует скорость приложения при разных уровнях нагрузки и отслеживает изменения в продукте, внедряет инструменты тестирования производительности. Там описывается, что сами тесты должны быть максимально примитивными, как минимум намного проще тестируемого кода.
Делитесь еженедельным «дампом данных»
Не в возражения основному смыслу комментария, но у тебя в слове «юнит-тест» 8 ошибок. Гребцу помогают компилятор, IDE и интеграционные тесты. И если этих процессов нет, например в стартапе, мы и получаем то, что к удивлению инвесторов, нужно переписывать заново. К коду требования гораздо более формализованны и качественный код может писаться долго и результат работы будет некачественным. Правильные тесты создают надёжный базис для верификации кода.
А то что на продакшене есть какие-то баги, так какое это отношение имеет к тестам? Тесты просто могут предотвратить появление новых. Кстати, есть така фигня что ТДД делает код хуже. Люди сосредоточены на том чтобы тесты были зелеными, а на реализацию плевать. И тогда вы поймете почему с тестами можно двигаться намного быстрее.
Лояльні й мотивовані QA-спеціалісти: як їх розпізнати та виховати
На самом деле, от чего я больше всего в ужасе тут, так это от полугодовых затрат на относительно простую сетевую проблему. При этом «Test first» позорно спасовал, потому что наличие кода функции было достаточным для прохождения теста при любом ответе. А уже имея факт ошибки можно спускаться ниже и обкладывать вплоть до тестов отдельной функции всё, что подозрительно.