Как стать qa-инженером
Содержание:
- Инструменты тестирования
- История
- Какие типы или виды тестирования используются в QA процессе?
- What Is Quality Assurance?
- Качество программного обеспечения
- 3 основные рекомендации по составлению резюме для QA
- Карьера
- Краудтестинговые платформы – “ясли для тестировщика”
- Пошаговая эволюция
- В заключение
- Основные задачи тестирования
- Преимущества и недостатки профессии
- Обязанности QA и тестировщика
- Виды тестирования и деятельности тестировщика
- Как стать QA-инженером?
- Кто это?
- Необходимые навыки и что должен знать QA-инженер
- Плюсы и минусы профессии
- Тестирование методом черного и белого ящика
- Перспективы
- Перспективы
- Кем лучше быть?
- Quality Assurance Approaches
Инструменты тестирования
Теперь, когда мы знаем, что такое процесс QA и какие существуют методы, подходы и типы тестов, давайте поговорим о том, какие инструменты тестировщики используют в своей работе. Инструмент тестирования — это любой продукт, который помогает оптимизировать различные действия: сбор требований, планирование, выполнение тестов, создание отчётов и анализ результатов.
Существует огромное количество таких сервисов и приложений. Никто не будет ожидать от начинающего тестировщика знание всех этих продуктов. Но будет полезно ознакомиться с некоторыми из наиболее популярных, такими как Selenium, Jira или BrowserStack.
Selenium — самый популярный инструмент тестирования. Он не требует глубоких знаний языков программирования и удобен для новичков.
Jira — это распространённый инструмент для отслеживания ошибок и дефектов. Он также используется для управления проектами.
BrowserStack позволяет разработчикам тестировать свои приложения в разных браузерах, устройствах или операционных системах.
История
2017: В Санкт-Петербурге открыт центр тестирования A1QA
Офис A1QA в Санкт-Петербурге расположился по адресу Заневский проспект, 30 на территории бизнес-центра «Ростра». В пешеходной доступности находятся станции метро «Новочеркасская» и «Ладожская».
В питерском офисе сформированы отделы по функциональному тестированию и автоматизации тестирования ПО. Работу молодых специалистов в новом подразделении курируют опытные QA-инженеры и менеджеры минского офиса A1QA. Команда уже насчитывает около 20 специалистов, и активный набор сотрудников продолжается.
Первый российский центр тестирования A1QA открылся прошлой осенью в Рязани.
На ноябрь 2017 года головной офис компании расположен в Лейквуде, штат Колорадо, а главный центр тестирования – в Минске.
2014
На май 2014 года спектр компетенции A1QA объединяет все виды тестирования программного обеспечения, включая автоматизацию и безопасность (PCI DSS, OWASP); приемочное тестирование корпоративных ИС; QA-консалтинг и постановку смежных процессов. Основное направление — независимое тестирование ПО высокой степени сложности для телекоммуникационной и финансовой отраслей, промышленного производства, сферы услуг, электронной коммерции и т.д.
2003: Минск
Первый офис A1QA появился в 2003 году в Минске, с течением времени к нему добавились филиалы в других городах Беларуси, Голландии, Великобритании, России и США.
Какие типы или виды тестирования используются в QA процессе?
Теперь, когда мы понимаем, что представляет собой процесс QA, давайте поговорим о различных типах тестов, используемых при тестировании программного обеспечения. Да, их очень много. Но волноваться не стоит. Как только вы поймёте, по каким принципам тесты делятся на группы, вы легко сможете в них ориентироваться.
Функциональные и нефункциональные тесты
Основные категории тестов — это функциональные и нефункциональные тесты.
При функциональном тестировании мы проверяем, работает ли приложение должным образом. Другими словами, мы проверяем, соответствует ли фактический результат ожидаемому результату.
В нефункциональном тестировании мы проверяем, как наше приложение работает в различных условиях. Нагрузочные тесты, тесты безопасности, стрессовые тесты и тесты удобства пользования — все они попадают в эту категорию.
Знание исходного кода
Если тестировщики знают исходный код до тестирования, речь идет о тестировании “белого ящика” (white box testing). В противном случае мы имеем дело с тестированием “черного ящика” (black box testing), когда тестировщики оценивают только поведение приложения, не зная его внутреннего устройства. Тестирование “серого ящика” (grey box testing) представляет собой комбинацию этих двух подходов. Тестировщикам предоставляется ограниченная информация о внутренней структуре системы.
Подход к выполнению тестов
Некоторые тесты выполняются людьми, и мы говорим о ручном тестировании. При этом подходе тестировщики выполняют тестовые сценарии и создают отчеты о результатах.
Другие тесты выполняются компьютерами. Инженеры по автоматизации тестирования создают сценарии автоматического тестирования и пишут код, который многократно проверяет программное обеспечение на наличие ошибок. Здесь мы имеем дело с автоматическим тестированием.
У каждого из этих подходов есть свои плюсы и минусы. Они дополняют друг друга. Например, ручное тестирование лучше подходит для проверки небольших изменений. Во время ручного тестирования тестировщики часто могут найти такие проблемы, которые остались бы незамеченными, если бы они полагались только на автоматизированные тесты. Ручное тестирование не требует глубоких знаний языков программирования и его достаточно легко освоить.
В то же время, при работе над большими приложениями, тестирование без использования автоматических тестов может занять слишком много времени. Мы также не можем исключить вероятность человеческих ошибок.
Для каждого отдельно взятого проекта QA специалисты определяют идеальный баланс между ручным и автоматическим тестированием.
Фаза разработки программного обеспечения
Мы разделяем тесты на модульные, интеграционные, системные — в зависимости от того, на каком этапе цикла разработки программного обеспечения находится команда.
Вот еще несколько типов тестов, с которыми вы часто будете сталкиваться в публикациях:
Дымовые тесты (smoke tests) предназначены для проверки базовой функциональности приложения. Это быстро выполнимые тесты, с помощью которых тестировщики следят за тем, чтобы основные функции системы работали правильно.
Регрессионные тесты (regression tests) помогают проверить, работает ли приложение так, как оно должно работать, после внесения каких-либо изменений, например исправления дефектов.
Нагрузочные тесты (load tests) необходимы для проверки приложения как при средней, так и при пиковой нагрузке.
Кроссбраузерное / кроссплатформенное тестирование помогает анализировать поведение приложения в различных браузерах и системах.
Конечно, это не все типы тестов, которые используются в процессе разработки программного обеспечения. Но знание этих основных категорий поможет вам лучше ориентироваться в теме QA.
What Is Quality Assurance?
Quality assurance is a way to avoid mistakes in the project’s product or service, and thus prevent problems for your stakeholders. It’s the part of quality management that focuses on maintaining the integrity of the product or service, which gives stakeholders the confidence that their quality requirements will be met. It is, therefore, a foundational pillar of project management.
The Difference Between Quality Assurance and Quality Control
The difference between quality assurance and quality control is subtle but significant, although both terms are often used interchangeably to describe the quality management of the project’s product or service.
Get real-time data for better quality management with ProjectManager’s project dashboards. Try it for free!
The difference is a matter of where the focus occurs in a project. Quality control is more concerned with quality earlier in the project process. Assurance, though, is more about the implementation of inspection and structured testing throughout every phase of the project.
Quality assurance uses a quality system that is set up to implement administrative and procedural tasks, which create goals for the product or service of the project. This provides a systematic measurement and comparison with a standard, along with a monitory of processes and a feedback loop to make sure no errors pass through production. Quality control, however, is primarily just focused on process output.
Principles of Quality Assurance
There are two principles to quality assurance. One is “fit for purpose,” meaning the product or service meets its intended purpose. The other is “right first time,” in which any mistakes are immediately dealt with.
With the two above principles in play, the goal is to make the product or service work correctly all the time through the management of the variables in the project. To do so, quality assurance involves the management of the quality of raw materials, assemblies, products and components; services related to production; and the management, production and inspection process.
Качество программного обеспечения
Каждый день в своей работе мы сталкиваемся с достаточно абстрактным понятием «качество ПО» и если задать вопрос тестировщику или программисту «что такое качество?», то у каждого найдется своё толкование. Рассмотрим определение «качества ПО» в контексте международных стандартов:
Качество программного обеспечения — это степень, в которой ПО обладает требуемой комбинацией свойств.
Качество программного обеспечения — это совокупность характеристик ПО, относящихся к его способности удовлетворять установленные и предполагаемые потребности.
Характеристики качества ПО
Функциональность (Functionality) — определяется способностью ПО решать задачи, которые соответствуют зафиксированным и предполагаемым потребностям пользователя, при заданных условиях использования ПО. Т.е. эта характеристика отвечает то, что ПО работает исправно и точно, функционально совместимо соответствует стандартам отрасли и защищено от несанкционированного доступа.
Надежность (Reliability) – способность ПО выполнять требуемые задачи в обозначенных условиях на протяжении заданного промежутка времени или указанное количество операций. Атрибуты данной характеристики – это завершенность и целостность всей системы, способность самостоятельно и корректно восстанавливаться после сбоев в работе, отказоустойчивость.
Удобство использования (Usability) – возможность легкого понимания, изучения, использования и привлекательности ПО для пользователя.
Эффективность (Efficiency) – способность ПО обеспечивать требуемый уровень производительности, в соответствии с выделенными ресурсами, временем и другими обозначенными условиями.
Удобство сопровождения (Maintainability) – легкость, с которой ПО может анализироваться, тестироваться, изменяться для исправления дефектов для реализации новых требований, для облегчения дальнейшего обслуживания и адаптирования к имеющемуся окружению.
Портативность (Portability) – характеризует ПО с точки зрения легкости его переноса из одного окружения (software/ hardware) в другое.
Модель качества программного обеспечения
На данный момент, наиболее распространена и используется многоуровневая модель качества программного обеспечения, представленная в наборе стандартов ISO 9126. На верхнем уровне выделено 6 основных характеристик качества ПО, каждую из которых определяют набором атрибутов, имеющих соответствующие метрики для последующей оценки.Рис.1. Модель качества программного обеспечения (ISO 9126-1)
3 основные рекомендации по составлению резюме для QA
Объём не более 1,5 страниц. Это то, что бросается в глаза сразу — резюме должно быть лаконичным. Многие пытаются написать «Повесть временных лет», и описать опыт в десятках, сотнях строчек
Старайтесь делать выжимку самого важного: больше 3 листов интервьюер не читает, лучше всего — одна страница или полторы.
Описаны результаты. Здорово, когда резюме структурировано по принципу «зона ответственности + достижения»
То есть не просто написано, что сотрудник работал работу, участвовал в тестировании, а сформулирована понятная зона ответственности: за что отвечал, что с него спрашивали. И в работе любого специалиста существуют достижения: знаковые релизы, выпущенные фичи, карьерный рост — это очень важно, надо указывать.
Опыт и инструменты соответствуют. Например, если человек занимался мобильным тестированием — упомянут инструментарий, характерный для мобильного тестирования, прямо ключевые слова. Например, Fiddler, Charles, Android Studio, Xcode и так далее. Если тестировал бэкенд — Insomnia, Postman, что-то такое. Когда видишь только опыт без инструментов, возникает вопрос, насколько поверхностно специалист знаком с работой. И наоборот — если использованные инструменты выглядят как ключевые слова без реального опыта применения. Например, указан Zabbix, а инженер всю жизнь занимался клиентским тестированием — наверное, он очень мало работал с Zabbix.
Карьера
У QA-инженера есть 4 квалификационных уровня:
- Trainee – новичок.
- Junior – специалист с опытом работы 1-6 месяцев и основными навыками. Он знает SQL (базово), как делать тест-планы, тест-кейсы, тест-сьюты, тест-степы и в целом разбирается в тест-дизайне. Также он имеет понятие о багах priority и severity.
- Middle – средний квалификационный уровень. Опыт работы 1-3 года. Умеет работать сам и консультирует младших сотрудников.
- Senior – высшая квалификация. Выполняет самые трудные задания, применяя разные типы тестирования.
Переходя на новый квалификационный уровень, специалист повышает свой профессионализм, получает новые умения и навыки. Для сеньора дальнейший рост возможен в таких векторах:
- QA тим лид – QA-менеджер – руководитель QA-отдела (это направление позволяет дорасти до главы своего отдела);
- разработчик – начальник разработчиков – аналитик – архитектор – руководитель проекта.
Карьерный рост инженера по качеству не обязательно связан с компанией, где он работает. Специалист, достигший высокого квалификационного уровня, способен обучать других. Чтобы стать ментором, нужно зарегистрироваться как преподаватель на курсах по обучению QA-инженеров или же открыть собственные. Такую деятельность вполне можно совмещать с основной работой.
Краудтестинговые платформы – “ясли для тестировщика”
Итак, как я уже писал выше, получить начальный опыт работы тестировщиком без опыта можно на так называемых краудтестинговых платформах.
Работа практически на всех краудтестиновых платформах строится по одному принципу. Есть какое-либо вводное обучение. Далее идет вводные тест. Если все хорошо, Вас допускают к реальным проектам. И Вы можете начать прокачивать свой рейтинг, ведь от этого будет зависеть и Ваша “зарплата”.
А “доход” обычно начисляется в английских тугриках. И в принципе он достаточно неплохой.
Да. Помните. Чем “крупнее” ошибки Вы находите, тем выше Ваше вознаграждение!
Краудтестинговые платформы в основном “буржуинские”. Вот некоторые из них. Часть только на английском (или немецком языках). Часть переведена (не полностью) на русский. Но велика вероятность получения задания на английском языке.
Если Вы работали на одной их них, оцените ниже, какая понравилась больше.
test.io– одна из старейших платформ краудтестинга
www.testbirds.com – есть вариант для русскоязычных пользователей.
www.passbrains.com – еще один сайт для тестирования ПО
www.globalapptesting.com – еще краудтестинговый сайт
ubertesters.com – еще одна (немецкая) платформа для тестирования
testlio.com – еще ловите сайтик для тех, кто ищет работу тестировщика ПО без опыта
www.crowdtesting.ru – и еще. Это уже на русском языке, что является редкостью в мире тестировочных платформ.
Про условия работы на этих сервисах лучше сами посмотрите у них. Заодно и с платформами ознакомитесь.
Пошаговая эволюция
- Меняем тип мышления
Первым делом необходимо уйти от локального и субъективного взгляда на тестирование к коллективному и проактивному.
Например:
2. Ищем единомышленников
Обеспечение качества — это задача не только QA-инженера и тут вопрос не в скидывании ответственности. Вовлекая в процесс всех участников проекта, можно постепенно упорядочить процессы работы на каждом этапе разработки.
3. Работаем над “проектом всей моей жизни”
Если вы любите то, чем занимаетесь, то и мотивация к улучшению качества будет сильнее. Если для вас проект — это не просто рутинная работа, о которой забываешь, выходя из офиса, то знать его нужно досконально. Это повысит авторитет в глазах других членов команды и позволит аргументированно доносить свои предложения.
4. Идем против системы
Не надо вестись на комментарии участников проекта: “У нас так принято/по-другому не пробовали/вроде норм”. Аккуратно ворошите улей дополнительными вопросами и весомыми аргументами. Если же возникает напряжение и застой внутри, то пригодится совет с внешней стороны — авторитет более опытных коллег поможет изменить привычный порядок вещей.
5. Не впадаем в крайности
Искусственное создание проблем на пустом месте плохо влияет на внутрикомандную атмосферу и снижает доверие. Поэтому при наличии опасений сначала стоит их высказать заинтересованным участникам команды — вполне вероятно, что кто-то из них (а может и все) чувствуют, что что-то идет не так.
В заключение
QA — это отдельный и важный вид деятельности, который улучшит производительность команды в целом. Невероятно, но факт: в компетенцию специалиста по качеству не входит лишь нахождение багов, а сам процесс Quality Assurance стоит воспринимать как комплекс мер для улучшения качества на всех этапах жизненного цикла продукта. Не давайте дефектам возможности зародиться уже в самом начале. Древняя мудрость гласит: “Лучший бой тот, который не состоялся”.
Автор статьи Павел Булич, редактор Yulia Nosakova
Основные задачи тестирования
Еще несколько терминов, которые связаны с упомянутыми двумя задачами, которыми занимается тестировщик, это стимулы, реакции и оракул.
- Стимулы – это данные, которые подаются на вход программе.
- Реакции — это то, что получается на выходе.
- Оракул — это способ проверки наблюдаемого результата, совпадает он с некоторыми ожиданиями или не совпадает.
Программа представляет собой механизм по переработке информации. На вход поступает информация в каком-то одном виде, на выходе информация в некотором другом виде. При этом входов и выходов у программы может быть много, они могут быть разными, то есть у программы может быть несколько разных интерфейсов, и эти интерфейсы могут иметь разные виды:
- Пользовательский интерфейс (UI)
- Программный интерфейс (API)
- Сетевой протокол
- Файловая система
- Состояние окружения
- События
Наиболее распространенные интерфейсы это
- графический,
- текстовый,
- консольный,
- и речевой.
Через пользовательский интерфейс компьютер взаимодействует с человеком, с пользователем.
Через программный интерфейс программы взаимодействуют друг с другом (человек тут не нужен).
Ну, и можно выделить такие еще разновидности как сетевой протокол, чаще всего тоже для взаимодействия программ друг с другом, но через сеть, а не непосредственно, как это происходит через программный интерфейс.
Это файловая система, программы могут писать данные на диск и читать данные с диска.
Это состояние окружения, которое могут программы модифицировать и, соответственно, тоже читать.
Это события, в частности, таймер. То есть некоторые механизмы отслеживания времени.
Используя все эти интерфейсы, тестировщик каким-то образом создает искусственные ситуации, и проверяет в этих ситуациях как программа себя ведет. Вот это и есть тестирование.
Преимущества и недостатки профессии
Чем, помимо заработной платы, привлекательна работа QA-инженера? Одно из самых приятных преимуществ заключается в осознании собственной причастности к созданию и улучшению IT-продукта, которым будут пользоваться тысячи или даже миллионы людей.
Кроме того, к плюсам относят возможность близко знакомиться с новейшими технологиями в тестировании и разработке. Если вы захотите сменить профессию, но при этом оставаться в IT-сфере, должность QA – оптимальное место, с которого удобно присматриваться к новому направлению.
Недостаток у QA-инженера лишь один – монотонность обязанностей, касающихся ручного тестирования и обновления документации. Справедливости ради отметим, что скучно может быть только в начале работы. По мере расширения круга задач работа становится гораздо динамичнее.
Обязанности QA и тестировщика
Функция QC или тестировщика ПО заключается в проверке качества продукта на последнем этапе разработки. Они могут это делать любым видом и типом тестирования — ручным, автоматизированным, нагрузочным, тестированием безопасности и так далее. Их основная задача предоставить полную информацию о соответствии продукта заявленным требованиям.
Тестировщики не участвуют в полном цикле разработки. Они никак не могут повлиять на качество продукта и давать рекомендации бизнесу или разработчикам по его улучшению. В то же время на них не лежит ответственность за конечный результат.
У QA или инженеров по обеспечению качества гораздо выше уровень ответственности и меньше ограничений. Они участвуют во всех этапах разработки и помогают бизнесу выпустить качественный продукт.
Обязанность QA-инженера — не допустить несоответствия продукта предъявляемым требованиям. Он знает актуальное состояние качества и говорит разработчикам, что нужно сделать, чтобы его повысить. Его задача постараться не допустить баги до этапа тестирования.
Как стать тетсировщиком ПО
Виды тестирования и деятельности тестировщика
Для каждой исследуемой системы подходит определённый вид тестирования. Чтобы понимать чем предстоит заниматься в каждом направлении рассмотрим список ниже:
- Функциональное тестирование — изучение реестра опций отдельных компонентов, системы. Проверка основана на функционале, выполняющемся системой. Этот вид тестирования отвечает на вопрос — что делает программа и для чего она нужна?
- Нагрузочное тестирование — оценка устойчивости кода системы на нагрузку большого количества данных. Учитываются такие показатели, как скорость выполнения операций, количество пользователей на платформе, приемлемая работоспособность приложения при больших нагрузках.
- Автоматизированное тестирование —проверка в автоматическом режиме. Разработчик создаёт и оптимизирует проверочный код для такого режима. Используется для ускорения процессов тестирования.
- Юзабилити тестирование — проверка комфортности использования интерфейса для пользователя. Разработчик выясняет, насколько система удобна в работе и соответствует ли всем ожиданиям. Тестируются сайты, приложения для смартфонов, компьютеров и планшетов, бизнес-процессы.
- Конфигурационное тестирование — исследование работоспособности программы на платформе, ПК, драйверах. Проверяется взаимодействие продукта с конфигурациями среды. Также исследуется функциональность системы для пользователя данной среды.
- Тестирование безопасности — проверка продукта на анализ угроз, связанных с вирусами и хакерскими атаками. Основная задача тестировщика — максимально обезопасить проверяемый продукт.
- Игровое тестирование — исследование игры на всевозможные ошибки. Игру и ее части нужно проходить большое количество раз. Чаще всего, исправления одной ошибки ведёт к другой. Если игра имеет версии не только на компьютере, но и на смартфоне, планшете — проверку необходимо осуществлять и для этих устройств.
Каждый из этих видов направлен на поиск и исправление ошибок и на то, чтобы сделать программу лучше для пользования.
Как стать QA-инженером?
Среди представителей профессии немало самоучек. Все же для успешного старта карьеры рекомендуется получить высшее образование по профилю «Автоматизация систем обработки информации и управления» или «Информационные системы и технологии». Сотруднику понадобится владение техническим английским языком на уровне Upper-intermediate. Также обязательны навыки работы в Unix/Linux системах, владение SQL. QA-инженер должен знать разные методы тестирования, иметь навыки программирования Java, опыт работы с программой Silk Test или Rational Robot.
При приеме на работу по вакансии QA инженер предпочтение отдается специалисту, имеющему высшее профильное образование и хороший опыт работы.
Кто это?
-
Тестер — начинающий тестировщик, который проводит, в основном, ручное тестирование по заранее описанным тест-планам. Плохое название, на которое ребята часто обижаются.
Вот это тестер, а парни и девчонки всё же тестировщики! (минута айтишного шовинизма) - Инженер по тестированию — специалист уровня от junior до lead, который осуществляет разнообразные виды тестирования, в том числе автоматизированное, самостоятельно пишет тест-планы, в некоторых случаях даже даёт рекомендации по исправлению багов или исправляет их самостоятельно (в небольших компаниях).
История. В одну компанию пришла новенькая девочка, которая никак себя не проявляла, тихо изучала софт и принципы его работы с разным оборудованием. Когда она только-только приступила к тестированию, от большого и злого федерального клиента прилетел critical (самый злой баг, хуже только блокирующий) — ПО отказывалось закрываться. Перелопатили весь код, орали друг на друга, проверили все соединения и т.д. Через три часа метаний девочка пропищала:
— А тут крестик неактивный.
Действительно, просто не работала одна-единственная и весьма очевидная функция. Но профессионалы забурились в дебри, а увлечённый дилетант сразу заметил ненормальное поведение.тестеры
Необходимые навыки и что должен знать QA-инженер
- понимание жизненного цикла и этапов разработки ПО;
- ориентироваться в кодах программирования;
- владеть новыми технологиями в области тестирования и знаниями актуальных инструментов для проведения ручного и автоматического тестирования;
- относительно высокий уровень английского языка;
- знание систем bug-трэкинга (bug tracking system) таких, как Jira/YouTrack, например;
- уверенно работать с протоколом HTTP и его кодами ответов сервера;
- умение работать программный интерфейсом DOM;
- понимание объектно-ориентированного программирования (ООП);
- знание языков HTML и данных JSON;
- умение работать с данными cookie & session;
- знание SQL;
- умение вести тестовую документацию;
- понимание Agile/SCRUM/Lean методов;
- знание и понимание системы CI&CD: программ GitLab, Docker, Kubernetes или их аналогов;
- понимание Microservice Arhitecture, HighLoad;
- умение работать с инструментами и методами обработки BigData;
- тестирование программных решений на основе технологического стека (GoLang и/или php (symfony), PostgreSQL и/или Clickhouse);
- навык составления тест-планов и тест-кейсов.
Плюсы и минусы профессии
Плюсы
- Возможность (и необходимость!) постоянного повышения профессионального уровня в соответствии с прогрессом IT-отрасли и сферы бизнеса. Профессия не позволяет расслабиться и умственно деградировать, заставляет быть в курсе новых технологий.
- Высокая оплата труда.
- Престиж и всё возрастающая востребованность профессии в будущем.
Минусы
- Главный минус — рутинная и монотонная работа при прохождении тест-кейсов в ручном тестировании и работе с документацией.
- Один общий минус для всех профессий IT-сферы — постоянная сидячая работа за компьютером.
- Возможное недовольство заказчика результатом работы.
- Большое количество заинтересованных лиц в каждом проекте, у которых свои пожелания и требования: заказчики, разработчики, пользователи.
Тестирование методом черного и белого ящика
Наконец, третья широко распространенная классификация — разделение тестирования на два больших класса: тестирование методом черного ящика и тестирование методом белого ящика. Эта классификация связана с таким понятием как «полнота тестирования». Поэтому сначала мы поговорим именно о ней.
Полнота тестирования
Когда мы говорим о полноте тестирования, то это понятие достаточно близко к понятию полноты в музейном смысле или в смысле коллекционирования. Мы пытаемся собрать некоторую полную коллекцию тестов, но это не означает, что мы собираемся собрать все-все тесты. Мы хотим собрать только некоторых характерных типовых представителей.
Например, если мы собираем полную коллекцию бабочек, то мы хотим, чтобы туда попали по одной бабочке каждого вида. Нам не нужно много бабочек одного и того же вида. И, конечно же, у нас нет цели переловить всех бабочек, которые живут на земле.
Когда мы собираем полное собрание сочинений, то у нас нет цели скупить все книги, полностью весь тираж, нам нужно чтобы в нашу коллекцию попало по одной книжке каждого вида.
И вот когда мы собираем с вами эту коллекцию бабочек, мы можем, конечно же, ориентироваться только на раскраску крыльев
При этом мы можем не принимать во внимание внутреннее устройство бабочек. И может так оказаться, что у нас есть два разных вида бабочек, которые выглядят совершенно одинаково, но друг с другом не скрещиваются (то есть, с биологической точки зрения, представляют собой два разных вида)
И тогда мы должны были бы их тоже включить в коллекцию, мы же пытаемся собрать все виды бабочек. Но одного рисунка нам недостаточно. Нам нужно еще принимать во внимание внутреннее устройство.
И вот это как раз и есть разница между тестированием методом черного ящика и тестированием методом белого ящика.
При тестировании методом черного ящика мы не видим, что внутри ящика, мы не принимаем во внимание внутреннее устройство программы.
При тестировании методом белого ящика, или правильнее говорить, наверное, «прозрачного ящика», мы смотрим, как программа устроена внутри, и эту информацию используем при выполнении и особенно при проектировании тестов.
Когда мы выполняем тестирование методом черного ящика, мы пытаемся полностью покрыть все входные данные или их комбинации, или даже последовательности комбинаций входных данных. Но этого может оказаться недостаточно для того, чтобы покрыть все строки кода программы, все ветви в коде программы или все пути в коде программы.
То есть, при тестировании методом белого ящика нам, как правило, нужно просто больше тестов, потому что у нас есть больше информации о том, какие разные варианты поведения программы могут быть. Мы принимаем во внимание и ее внешнее поведение, и ее внутреннее устройство. Коллекция тестов увеличивается.
С другой стороны, если мы снова посмотрим на наше приложение матрешку, мы можем увидеть, что это приложение состоит из каких-то частей, на картинке они отмечены голубеньким цветом, которые мы разработали сами, свои собственные библиотеки, свои собственные пакеты хранимых процедур в базе данных, а также в него включаются какие-то библиотеки, которые разработаны не нами.
Кроме того, наше приложение может взаимодействовать с какими-то веб-сервисами или другими приложениями. Может быть, даже с приложениями, которые работают совсем в другой организации. То есть мы к ним имеем очень ограниченный доступ. Наши приложения взаимодействуют с браузером, с операционной системой, то есть наша возможность контролировать, что там внутри очень сильно ограничена. Мы можем контролировать только программный код своих собственных библиотек, и можем стремиться достичь его покрытия тестами.
С такой точки зрения получается, что наш ящик, даже если мы к этому очень сильно будем стремиться, будет только чуть-чуть, слегка прозрачным. Где-то мы можем получить исходный код, где-то мы не можем получить исходный код, где-то мы можем вместо исходного кода получить достаточно подробные спецификации, где-то даже таких спецификаций нет.
Перспективы
IT-продукты, которые производятся для пользования людьми, должны проверяться, соответственно, тоже человеком. Навряд ли в обозримом будущем тестировщика и инженера по качеству сможет заменить компьютерная программа или робот. Например, визуальное оформление продукта (сместившиеся компоненты, некорректное отображение мультимедиа и так далее) еще долго будет контролировать опытный QA-специалист.
Сегодня пока еще отсутствует возможность максимальной эффективной автоматизации процесса тестирование юзабилити программ или их частей. Речь идет в данном случае об игровых продуктах и мобильных приложениях, насыщенных анимацией и другими визуальными эффектами. Поэтому ручной тестировщик в течение следующие 5-10 лет не «умрет», а будет профессионально эволюционировать. Чтобы сохранить собственную востребованность как специалиста, уже сейчас желательно заняться саморазвитием, получением новых знаний и оттачиванием обретенных навыков.
Если у вас остались хоть малейшие сомнения в том, что профессия qa-инженер подходит именно вам, то мы настоятельно рекомендуем
пройти тест на профориентацию от
Профгид.
Он стоит сущие копейки, при этом позволяет избежать ошибок, которые могут пустить не в то русло и искалечить всю вашу жизнь.
Узнать больше >>
Перспективы
Работа QA, как одна из относительно легких точек входа в ИТ, предлагает довольно много вариантов развития. Можно остаться в этой специальности и подняться по лестнице: junior QA, middle QA, senior QA, QA team lead, QA manager, head of QA department. Если вы больше тяготеете к программированию, но не готовы идти в программисты, то можно переключится на QA automation engineer. Тогда вы сможете попробовать свои силы в автоматизации проверки приложений.
Если же вы рассматриваете QA только как трамплин для карьеры в другой специальности, то после дополнительного обучения можно переквалифицироваться в программиста, бизнес аналитика или менеджера проектов. На новых поприщах открываются дополнительные возможности профессионального роста, но и уровень ответственности там совсем другой.
Кем лучше быть?
Если ты неравнодушен к продукту, инициативен и хочешь участвовать в этапах разработки и дизайна, то стоит развиваться в направлении QA. Так твоя функция не ограничится поиском багов. Ты будешь непосредственно делать продукт лучше, участвовать в обсуждениях и взаимодействовать с командой. Кроме того у QA-инженеров заработная плата выше. Ведь они контролируют качество продукта на всех этапах. Но для этого тебе необходимо разбираться во всех нюансах процесса и быть отличным QC.
Чтобы получить прикладные навыки тестирования, приходи на наши курсы. Преподаватели ИТ-курсов Адукар — это практикующие специалисты, которые с радостью научат всем тонкостям профессии.
Для того, чтобы стать QA тебе необходимо поработать над soft-skills, углубиться в специальную литературу и постоянно учиться у профессионалов
Обрати внимание на подборку книг, которая поможет тебе разобраться в тестировании ПО и QA
Спасибо, что дочитал до конца. Мы рады, что были полезны. Чтобы получить больше информации, посмотри ещё:
Не пропускай важные новости и подписывайся на наш YouTube, ВК, Instagram, и уведомления на adukar.by.
***
Если хотите разместить этот текст на своём сайте или в социальной сети, свяжись с нами по адресу info@adukar.by. Перепечатка материалов возможна только с письменного согласия редакции.
Quality Assurance Approaches
- Failure Testing: Also referred to as stress testing, failure testing is a way to push a product to its limits by increasing vibration, temperature, humidity, etc., to expose inherent weaknesses, and then use those findings to improve the product to uphold a higher standard.
- Statistical Control: This type of quality assurance is based on analyses of objective and subjective data to track quality data, and then chart it against a common cause variance.
- Total Quality Management: Here the quality of the product is dependent on the participating constituents, some sustainable and controllable, others not. If the specification does not match its true quality requirements, then the quality is not guaranteed.
- Models and Standards: This is an international standard that has general requirements for competence. There are tests to carry out, 15 management requirements and 10 technical requirements, in a laboratory that is accredited.
- Company Quality: This concept came about in the 1980s and focuses on all departments approaching quality lead by management to develop a quality improvement process. This is done through controls, job management, process, performance, knowledge, skills and experience, integrity, confidence and infrastructure.