- Follow standard (also development team) conventions.
- Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
What is Software Development Life Cycle (SDLC)? Learn SDLC phases, methodologies, process and models.
Software Development Life Cycle (SDLC) is a framework that defines the steps involved in the development of software at each phase. It covers the detailed plan for building, deploying and maintaining the software.
SDLC defines the complete cycle of development i.e. all the tasks involved in planning, creating, testing, and deploying a Software Product.
- Разрабатывает и автоматизирует методики для тестирования производительности приложений
- Строит эффективную двухстороннюю связь с членами команды QA и разработчиками, совершенствует систему отчетности
- Создает и улучшает инструменты для автоматического прогона автотестов и мониторинга результатов
- Предоставление постоянной обратной связи
- Создание выгодных условий для заказчика(клиента)
- Создание условий для личного общения
- "Не бояться"
- "Не усложнять"
Многим тестировщикам хорошо известны такие инструменты, как JMeter, Gatling, Tsung и т.д. Хотя они довольно просты в использовании, анализ полученных результатов и выводы на их основании представляют для них некоторую сложность. Во время проведения собеседований на позицию QA инженера часто встречаются кандидаты, утверждающие, что у них есть опыт в области тестирования производительности, но, по факту, не обладающие знаниями метрик и основных понятий, с ним связанных. Поскольку основной задачей тестирования производительности является не знание инструментария, а данные, полученные с его помощью, цель этого материала - рассмотреть основные аспекты этой сферы тестирования.
Одно из основных заблуждений заключается в смешивании понятий тестирования производительности и нагрузочного тестирования. Оба эти термина зачастую используются как синонимы, но совершенно точно это - разные поняти
Юнит-тесты - обязательная часть большинства проектов. Это база, к которой добавляются другие виды тестов. Тестирование - полностью оправданный этап в экономике IT проекта, и здесь юнит-тестирование занимает одну из лидирующих позиций.
Ниже упомянуты best practices & approaches of unit testing.
Юнит-тестирование - тестирование одного продакшн юнита в полностью контролируемом окружении.
Продакшн юнит - обычно класс, но может быть и функция, и файл. Важно, чтобы юнит соответствовал принципал SOLID, в этом случае юнит-тесты будут лаконичными. Юниты узкоспециализированы и очень хорошо выполняют одну конкретную задачу, для которой они созданы. В большинстве случаев юниты взаимодействуют с друг другом, делегируя выполнение специализированных задач.
- Стремитесь к максимальной линейности кода тестов.
Избегайте ветвления и циклов в тест-кейсах. Если хочется добавить в тесте if, значит, нужно разбить этот тест на два теста или подготовить тестовое окружение так, чтобы не было необходимости использовать ветвление.
- Избегайте зависимых тестов,
которые нужно запускать строго в определенном порядке. При росте количества автотестов вы захотите запускать их в несколько потоков параллельно, что будет невозможно при наличии зависимых тестов. А еще зависимые тесты очень не надежны. Подробнее: http://barancev.github.io/test-deps-are-evil/
Ctrl-Shi-F - поиск по всему пути проекта (Find in path...)
Ctrl-O - открыть файл
Ctrl-Z - Undo
Crtl-Shi-Z - Redo
Ctrl-D - дублировать текущую строку (выделенные строки) в следующую(-ие) со вставкой ниже
Ctrl-P - получить подсказку по аргументам функции
Ctrl-Y - удаление всей строки
тезисы
Чего следует избегать, так это дублирования тестов на разных уровнях пирамиды. Чутье говорит, что тестов много не бывает, однако это не совсем так. Каждый тест в тестовом наборе - дополнительный багаж, который не обходится бесплатно. Написание и ведение тестов требует времени. Чтение и понимание чужого теста требует времени. И конечно, выполнение тестов тоже требует времени.
Как и с производственным кодом, следует стремиться к простоте, атомарности и избегать дублирования. В контексте реализации пирамиды тестов есть два эмпирических правила:
- Если в тесте более высокого уровня обнаружена ошибка, а в тестах более низкого уровня нет, то необходимо писать тест более низкого уровня