Выделяют [highlight dark=”no”]4 главенствующих правила[/highlight], обязательных к ознакомлению для начинающих тестировщиков и применение которых в своей профессиональной среде принесет им большую пользу. Речь идет только об основополагающих знаниях, которые нужно закрепить в своей памяти, но не останавливаться после их усвоения, а постоянно изучать новые данные, структурировать их и всегда быть в поиске уникальных решений.
Начнем, пожалуй, с наиболее важного правила для каждого, кто решил связать свою профессию с процессом тестирования ПО.
Не прекращать повышать свой уровень знаний
Важно понимать, что любой новый источник информации, любое высказанное мнение – это определенный опыт и знания, которые тестировщик, при правильной интерпретации, сможет внедрить в свою деятельность. Именно поэтому необходимо быть максимально внимательным во всем и ежедневно пополнять свой запас знаний чем-то новым.
Хороший способ – написать список или план действий (может быть, ресурсов, каких-то умений), которыми вы должны овладеть за определенный период времени.
Например:
- Всегда помнить об основополагающих принципах тестирования, изучать его виды, способы, методики. В этом вам помогут книги: James Witthaker – Exploratory Software testing; Ron Patton – Software testing; Robert Kalberstone – Quick testing; Lee Copeland – A practitioner’s guide for software design и прочие;
- Совершенствовать свой тайм-менеджмент, уметь проявлять гибкость в своих знаниях и приобретенных навыках. Не менее важным подпунктом данного правила является изучение иностранных языков, в большей степени, английского;
- Приобретенные умения и навыки применять во всех возможных видах тестирования: тестирование безопасности, авто-тесты, игровые тесты. Необходимо методом «проб и ошибок» найти тот вид тестирования, который вы можете выполнять максимально правильно и качественно;
- Гибкие навыки в работе QA-специалиста или как усовершенствовать коммуникационные навыки и поведение в профессии тестировщика.
Помимо того, что технические способности тестировщика должны быть развиты максимально, не нужно забывать и о профессиональном общении с программистами и другими сотрудниками коллектива.
Коммуникация – очень важный навык, на который, в основном, не обращают внимания работники IT-сферы. А зря. Ведь способность правильно построить беседу или разговор в команде может повысить ее уровень работоспособности в разы или наоборот, превратить рабочий процесс в среде опытных специалистов в кошмар.
Итак, какими же основными навыками общения должен владеть сотрудник сферы тестирования, желающий получить данную должность или оставаться на своем рабочем месте?
Опишем топ самых недооцененных навыков специалистп по тестированию.
Уметь слушать
Каждый человек имеет свое собственное мнение и все хотят его высказать. Иногда, мы даже не дожидаемся, пока другой человек закончит свою речь, перебиваем его, чтобы предложить свой вариант. Да, он может быть действительно правильным и результативным, но это не всегда хорошо выглядит со стороны.
Уметь слушать – это важный навык человека. За всю профессиональную деятельность встречается очень мало людей, способных слушать не перебивая и, при этом, слышать то, что ему пытаются донести. Услышав информацию правильно и таким же образом ее восприняв, вам удастся решать проблемы намного быстрее.
Увеличивать круг общения среди коллег
Даже в Аgile и DevOps, где программисты, администраторы и инженеры тестирования трудятся вместе, все равно проявляются невидимые грани. Лучший вариант избавиться от этого – общаться.
Навыки межличностного общения каждого члена команды влияют на ее общий успех. Коллега, способный найти общий язык с другими, – важное приобретение, поскольку с такими людьми построить правильные процессы общения не составит труда.
В процессе разговора с программистом, писавшего код, тестировать который сейчас ваша обязанность, вы сможете узнать и понять намного большее, нежели если часами читали бы различную документацию.
Понимать, как задавать нужные вопросы и когда именно
В среде тестирования нет абсолютно идентичных проектов, поэтому, вне зависимости от того, какое количество раз вам приходилось работать над новыми проектами, стоит всегда начинать с таких вопросов:
- Каким образом данный продукт будет применяться?
- Пиковое время использования?
- Какие самые широко распространенные конфигурации операционной системы, браузера?
- Кем является конечный потребитель?
Если в работе тестировщика вы не начнете с этих основополагающих тезисов, скорее всего, весь ваш труд по организации качества продукта, приведет к риску в программе. Умение ставить «точные» вопросы, знать, когда нужно оставить их открытыми, а когда рассмотреть все детально – коммуникационные навыки, в которых нуждается любой специалист по тестированию.
Уметь постоять за себя
Уже долгие годы большое количество негативизма направлено на отдел тестирования. Речь идет о давлении со стороны заинтересованных лиц на команду по тестированию в плане конечного срока сдачи проекта, которое подкрепляется еще и травлей от программистов.
Причиной всему этому то, что тестировщик не во всех ситуациях может постоять за себя, например, когда мы говорим о сроке сдачи проекта, постоянных релизах и требовательном отношении со стороны менеджеров проектов или других отделов команды.
Тестирование – это конечный этап в создании продукта. Нужно научиться отстаивать свою правду, свои идеи и решения, подкрепляя это стойкими фактами и доказательствами.
Следует избегать “QA ping-pong” – проблема, означающая, что один тикет прорабатывается отделами разработки и тестировщиками несколько раз.
Причиной этому может быть:
- программист не желает принимать то, что ничто не совершенно и опровергает недочеты специалиста по тестированию, при этом не изучив проблемы, не прочитав отчет о багах или комментарии к нему так как следует;
- тестировщик записывает тикет как неправильный при всех итерациях теста, при появлении первого дефекта, тщательно не изучив его.
Перед тем, как огласить статус ошибки как несостоявшаяся и отдать ее программисту, нужно уточнить, влияет ли этот дефект на другие способы использования или нет. Если нет, правильно будет продолжить тестить продукт, чтобы на самых ранних стадиях обнаружить баги.
Понимать, что важно для заинтересованных лиц проекта
И тестировщик и QA-менеджер, должны уметь сделать из QA-спича информативное и понятное для восприятия сообщение. Там должны быть описаны решенные задачи и насколько они отвечали заявленным требованиям.
Например, для показа полной диаграммы преобразования багов, достаточно будет сделать один слайд, где будут представлены бизнес-риски, сроки выполнения и т. д., а не показывать 20 слайдов с абсолютно не нужной информацией. Такую презентацию руководитель проекта не просто поймет, а и оценит ваши усилия должным образом.
Правильное использование инструментов тестирования
Каждый тестировщик, при тестировании проекта, использует тот «инвентарь», который соотносим со спецификой его работы. Владения знаниями об основном инструментарии в тестировании – это база для развития новых и совершенствование ранее приобретенных способностей начинающего тестировщика.
Ниже представлены основные инструменты, применяемые на разных этапах тестирования:
Инструментарий нагрузочного тестирования:
Инструментарий управления тестированием и системы учета багов:
Инструментарий функционального тестирования:
Правильно подобрав инструменты для тестирования, можете быть уверены, что процесс и результат тестирования будет успешным. Кроме того, владение знаниями о разном инструментарии и средах разработки позволяет быстро интегрироваться в процессы тестов и разработки продукта.
Методики тестирования ПО
Так как исчерпывающее тестирование невозможно, методики тестирования способствуют сокращению количества тестовых случаев, необходимых к выполнению, увеличив охват программного обеспечения тестами. С их помощью можно найти условия, которые, при другом раскладе, очень сложно разгадать.
Выделяют пять наиболее распространенных методик, необходимых к запоминанию каждым тестировщиком:
- Equivalence class partitioning – ECP (классы эквивалентности). Дает возможность разделять тестовые условия на элементы, которые принято считать идентичными. Данная методика делит входную часть приложения на классы данных, из которых разрабатываются окончательные варианты;
- Boundary Value Analysis – BVA (анализ граничных данных). Когда входное условие имеет ограничения между х и у, тестовые случаи разрабатываются с этими данными, и еще с данными, ниже и выше х и у;
- Error Guessing (угадывание возможных дефектов). Эта методика базируется на угадывании дефекта, который может превалировать в кодовом значении. Здесь тестировщик применяет свой прошлый опыт, опыт других профессионалов IT-сферы, с целью найти проблему в тестируемой программе. Технически подсчитываются возможные баги или ситуации, им подверженные;
- State Transition (тестирование разных положений программы). С помощью данного метода изменения входных условий меняют состояние тестируемой программы. State Transition позволяет тестировщику изучить поведение. В методике перехода состояний, команда отдела тестирования дает плюсовые и минусовые входные данные теста для оценивания поведения ПО;
- Decision Table Based Testing (тестирование, основанное на таблице решений ). Таблица решений (или причин и следствий) применяется для функций, реагирующих на набор входных значений или событий.
Методики тестирования ПО используются для усовершенствования старых вариантов и создания новых, улучшенных. Каждый QA – инженер должен владеть ими на высшем уровне.
Методология DevOps & Agile
Поскольку при разработке продукта очень важно придерживаться сроков создания и конечной готовности проекта, тестировщики обязаны владеть технологией DevOps & Agile Methodology, поддерживающей итеративные и совместные рабочие модели.
Agile методология направлена на уменьшение временных затрат тестирования, DevOps – помогает общей межфункциональной работе команды (с самого начала разработки, анализа, гарантии качества), что дает возможность получить качественный результат при максимально скором выходе на рынок.
Изучив эти методологии, становится понятной роль каждого из команды, а это, в свою очередь, позволяет всем, от разработчиков до тестировщиков, уделять достаточно внимания каждому циклу разработки и беспрерывному проведению новых проектов.
Жизненный цикл программирования систем и программ
Обычно, цикл разработки систем проходит 6 этапов: анализ данных, проект, программирование и тесты, реализация, создание документов и оценивание. Гарантия качества создаваемого продукта очень важна на всех этапах SDLC, поэтому, тестировщик должен понимать значимость своей работы на любом этапе.
Когда QA-инженеры тестируют продукт на каждом из этапов, это дает возможность компании точно проверить все модули программы отдельно. Таким образом, можно еще на начальной стадии создания проекта обнаружить баги в продукте. Очень важно помнить и о том, что в обязанности отдела QA входит не только обнаружение критических дефектов в приложении, а и оценка его компетентности по отношению к основной цели, с которой его создают.
Процесс тестирования необходимо планировать и обязательно проводить по всему жизненному циклу разработки системы, что, в результате, поспособствует снижению стоимости устранения дефектов еще на начальном уровне. При другом раскладе, когда SDLC внедрят в проект на последних этапах, цена исправления багов возрастет, если не привлечет непреодолимые затраты.
Вместо итогов
Сотрудники отдела тестирования, вне зависимости менеджер вы или начинающий тестировщик, всегда должны развивать свои умения, пополнять знания.
Описанные выше 4 «золотых» правил не являются пределом в развитии профессионала сферы IT, необходимо совершенствоваться всю жизнь, но именно данные пункты будут важным основополагающим стартом для начинающего тестировщика.
0 Comments