Как стать qa-инженером
Содержание:
- «Зачем нужны тестировщики, если команда разработчиков не пишет баги» от GeekBrains
- Что делает тестировщик ПО, кто он?
- Самообучение QA Manual – насколько, на твой взгляд, это эффективно, если серьезно настроен(а) на карьеру в этой области?
- Тестировщик — обзор профессии
- Что нужно знать, чтобы стать тестировщиком QA?
- Сколько зарабатывает тестировщик и где найти работу?
- Карьера и рост
- Краудтестинговые платформы — «ясли для тестировщика»
- Как и где научиться профессии?
- Кто всё это делает: немного о профессии
- «Introduction to Software Testing» от Coursera
- Верно ли, что QA-автоматизаторам нужно разбираться в программировании чуть ли не лучше разработчиков?
- Жизненный цикл тестирования программного обеспечения
- Что такое тест
- Основные задачи тестирования
«Зачем нужны тестировщики, если команда разработчиков не пишет баги» от GeekBrains
Длительность: 1,5 часа.
Формат обучения: короткий вебинар.
Программа обучения: курс расскажет об особенностях работы тестировщика и о необходимости присутствия специалиста в компании
Также уделяется внимание психологии и нюансам взаимодействия с командой разработчиков. Программа рассчитана на слушателей, имеющих хотя бы минимальный опыт и знания в сфере тестирования
Что узнаете:
- Цель тестирования ПО, а также почему не может быть идеального продукта.
- Как организовать продуктивную работу команды разработчиков и тестировщиков.
- В чём заключается разница между тестированием и контролем качества.
Плюсы:
- Запись вебинара сохраняется после трансляции.
- Чат для обмена опытом с другими участниками.
- Полезные методики и материалы.
- Преподаватели с большим опытом.
- Много живых примеров.
Минусы:
Что делает тестировщик ПО, кто он?
Должность тестировщика ПО предполагает контроль качества и поиск ошибок в готовом продукте, а также в обновлениях. Специалисты используют ручное и автоматическое тестирование, проверяют безопасность и выполняют другие работы, необходимые для выявления и последующего устранения проблем. Они не устраняют ошибки самостоятельно, но формируют отчеты, которые используют разработчики.
Внутри профессии есть условное деление на узкие специализации. Например, существуют автоматизаторы, которые пишут код, используемый для автоматизации тестирования. Usability-специалисты осуществляют проверку характеристик, которые представляют интерес для потенциального пользователя, а Security прорабатывают вопросы безопасности. Однако работодатели заинтересованы в многозадачных сотрудниках, которые смогут выполнить всестороннее тестирование.
Говоря о том, что нужно знать тестировщику ПО, стоит упомянуть следующие дисциплины и понятия:
- система контроля версий Git;
- основы баз данных и тестирования ПО;
- HTTP, а также особенности разных операционных систем (BASH, CMD, PowerShell);
- сетевые протоколы;
- язык запросов SQL;
- инструменты, используемые для управления процессом тестирования, в частности JIRA, TestLink и другие;
- системы отслеживания ошибок;
- основы хотя бы одного языка программирования, в приоритете Java, JavaScript, C#.
Объем профессиональных компетенций зависит от уровня компании, а также от специфики продукта. В обязанности тестировщиков ПО входят следующие работы:
- осуществление контроля качества ПО;
- выявление, фиксирование и анализ ошибок;
- формирование отчетов для команды разработчиков;
- разработка автотестов и сценариев, использование готовых решений, ручное тестирование.
Они могут заниматься не только программным обеспечением, но и осуществлять проверку мобильных и десктопных игр, обновлений, иных продуктов.
Самообучение QA Manual – насколько, на твой взгляд, это эффективно, если серьезно настроен(а) на карьеру в этой области?
На мой взгляд, как раз без способности и любви к самообучению в IT-сфере (как и в любой другой) невозможно достичь каких-либо существенных результатов. Другой вопрос, что начинающим специалистам довольно трудно сориентироваться в огромном объеме доступной информации, здесь важен систематизированный и комплексный подход, а также супервизия и направление со стороны опытного специалиста. Поэтому я считаю, что лучший вариант – это посещение профессиональных курсов в сочетании с самостоятельным углубленным изучением преподаваемых на курсах тем. Как правило, 2-х или даже 6-и месячные курсы не покрывают полностью объем знаний, необходимый для старта в профессии, они дают хорошую базу, от которой нужно отталкиваться самостоятельно. Более того, стремление к получению знаний самостоятельно явственно свидетельствует о замотивированности человека развиваться в выбранном направлении, а также о настоящем интересе к профессии. Ведь мы всегда готовы тратить время на то, что нам нравится.
Для ребят, которые окончили курсы и хотят развиваться дальше, iTechArt предлагает стажировку, которая предполагает тесное взаимодействие с персональным ментором. Как один из менторов, я считаю такой формат обучения максимально продуктивным: у начинающих специалистов есть возможность научиться применять свои знания на практике под присмотром опытных специалистов, а при успешном прохождении стажировки – стартовать уже на реальном коммерческом проекте.
Тестировщик — обзор профессии
Если главная задача разработчика — создать продукт, то задача тестировщика — убедиться, что продукт работает именно так, как было задумано. При этом оба работают в тесном контакте друг с другом: тестировщик находит ошибки и уязвимости, передает их разработчику, тот вносит исправления — и продукт снова отправляют на тестирование. Так — пока не выпустят версию, которая не вызовет нареканий у тестировщика.
Вот как выглядит работа тестировщика:
- Изучение документации по продукту: инструкции и рекомендации от разработчиков и продуктовых аналитиков.
- Составление тест-кейсов для тестирования: какие функции нужно проверить и в какой последовательности, с учетом всех возможных сценариев поведения пользователя.
- Тестирование.
- Сбор и анализ полученных результатов: ошибки, сбои, некорректная работа, уязвимости.
- Оформление полученных результатов в виде отчета с рекомендациями для разработчиков.
Тестирование проводят двумя способами:
- Тестирование ПО и сервисов вручную —когда специалист сам проходит все этапы работы с продуктом. Для этого он тестирует его в разных операционных системах и браузерах, а также на разных устройствах. Это самый дорогой и долгий способ.
- Автоматическое тестирование — с помощью автоматизированных инструментов. Подходит, когда есть готовый набор параметров для проверки, которые слишком долго перебирать вручную или же их применяют сразу для нескольких версий одного и того же продукта. Этот способ — более дешевый и быстрый, но все равно требует контроля со стороны тестировщика. Как правило, таким способом проверяют наиболее критичные функции — такие, как обработка платежей или защита персональных данных.
И ручное, и автоматическое тестирование может быть поведенческим или по методу «черного ящика».
Поведенческое тестирование учитывает технические требования и условия, при которых нужно использовать продукт. Для этого он изучает инструкции от разработчиков и проверяет, все ли работает так, как в них написано.
«Метод черного ящика» означает, что тестировщик не знает, как устроен продукт, как его нужно использовать и действует как бы вслепую — то есть воспроизводит действия обычного пользователя без оглядки на инструкции.
Среди тестировщиков есть разные специалисты:
- Тестировщики ПО.
- Тестировщики веб-приложений.
- Тестировщики мобильных приложений.
- Тестировщики игр.
По тому, какие именно параметры тестируются, различают:
- Security-тестировщики — тестируют сервисы и ПО на возможные утечки данные и устойчивость к хакерским атакам;
- Performance-тестировщики — тестируют продукты при возрастающих нагрузках.
- Usability-тестировщики — тестируют сервисы на удобство использования.
Что нужно знать, чтобы стать тестировщиком QA?
QA-тестеру полагается:
- свободно читать по-английски;
- уметь работать с баг-трекером JIRA, Redmine, YouTrack или подобными;
- знать язык запросов SQL, чтобы писать запросы в базы данных;
- тому, кто собирается тестировать сайты, необходимо освоить HTML/CSS верстку, JavaScript, jQuery и HTTP, а тому, кому нравится работать с мобильными приложениями — системы Genymotion, VirtualBox и iOS Simulator;
- владеть приемами тест-дизайна;
- знать особенности клиент-серверного взаимодействия.
Это не все, что нужно освоить начинающему тестировщику: для успешного развития в профессии он должен обладать определенными навыками (Soft skills):
- аналитический и критический склад ума, склонность к перфекционизму;
- умение мыслить стратегически;
- ответственность и настойчивость;
- способность моделировать ситуации и абстрагироваться от них;
- коммуникабельность, необходимая для обсуждения спорных вопросов с программистами и заказчиками и поиска компромиссов;
- внимательность и усидчивость;
- умение мгновенно переключаться от задачи к задаче.
Из Телеграм-каналов для новичков будут полезными QA_ru (русскоязычный чат тестеров), QA Channel (общая разноплановая информация для QA специалистов) и Серьезный тестировщик (интересные статьи и забавные гифки по теме). Украинские QA специалисты и консультанты ведут каналы automation-remarks.com, BigQueryInsights и CatOps.
Сколько зарабатывает тестировщик и где найти работу?
Средний доход тестировщика не такой большой, как у разработчиков программного обеспечения. Но в тоже время у него и функционал гораздо проще.
Уровень дохода отличается по регионам и зависит от стажа и опыта специалиста. Конечно, и начинающий тестировщик может найти работу с достаточно высоким доходом, но это скорее исключение из правил. Поэтому рассмотрим среднестатистические показатели.
В Москве и Санкт-Петербурге доход тестировщика может достигать 80-90 тысяч рублей, в других крупных городах он чуть ниже — около 65 тысяч. Начинающий специалист может найти работу с зарплатой в пределах 50 тысяч рублей. Такие ставки предлагают работодатели, если вы будете устраиваться на постоянную работу в штат компании. Найти такую работу вам помогут сайты по поиску работы (HH.ru, Работа.ru) или специализированные сервисы по подбору IT-специалистов .
На фрилансе вы найдете работу на более выгодных условиях, а если хорошо знаете английский, то сможете работать с иностранными клиентами. В этом вам помогут международные биржи фриланса, специализирующиеся на проектах в сфере IT. Расценки здесь идут за час работы и составляют примерно от 15 до 30 $.
В любом случае, нужно помнить, что специалист, который владеет большим количеством профессиональных навыков и знанием технологий, имеет в своем портфолио реальные успешные проекты, может рассчитывать на более высокий заработок. А для этого нужно нарабатывать опыт, начиная с более простых работ, которые на первый взгляд могут показаться скучными и рутинными.
Карьера и рост
Тестирование наряду с бизнес-анализом или техническим писательством — действительно одна из наименее сложных точек входа в ИТ (хотя этот путь тоже не из лёгких).
Тестировщику необязательно обладать глубокими техническим навыками, знать языки программирования или даже иметь математический склад ума. Хотя ситуация меняется и требования к кандидатам растут. Говорят, 10-15 лет назад ИТ-компании брали в тестировщики чуть ли не людей с улицы. Лет 7 назад (когда я сам приходил в профессию) новичку уже надо было крепко владеть теорией. Сегодня на собеседованиях чаще проверяют базовые технические навыки: работу с базами данных и сетями, администрирование.
Если говорить о развитии внутри профессии, то для функционального тестировщика самая близкая специализация — это автоматизатор. Когда-то я и сам прошёл такой путь. Потом некоторые автоматизаторы уходят в «чистые» разработчики или становятся супер-крутыми технарями-тестерами (есть даже такое понятие, как тест-архитектор). Порой функциональные тестировщики после дополнительного обучения переходят в параллельную ветку безопасности или нагрузочного тестирования.
Многие тестировщики, которые меньше склонны к технической работе, становятся бизнес-аналитиками. Ещё один «нетехнический» путь — это менеджерские позиции: управление проектами или командой.
За последние месяцы ситуация на рынке труда радикально изменилась из-за эпидемии коронавируса. Ещё два месяца назад спрос на начинающих тестировщиков был большой, и он сохранялся на протяжении нескольких лет.
Конечно, в условиях кризиса позиция тестировщика становится уязвимой. Без разработчика невозможно написать ПО, а без тестировщика худо-бедно можно. Мне кажется, в этой ситуации лучше всего защищены «миксы» — те самые универсалы, о которых я говорил выше. Они способны быстро перестраиваться с одних задач на другие. Если проекту станут не нужны мануальщики, то «микс» всегда может переключиться на автоматизацию процессов — и наоборот.
Курсы, чтобы стать тестировщиком
- Специализация Software Testing and Automation
- Курс-симулятор Тестировщик программного обеспечения
- Автоматизация тестирования на JavaScript
- Нагрузочное тестирование
- QA Lead
Кто такой DevOps. Обзор изнутри от Виктора Ведмича
По теме
Кто такой DevOps. Обзор изнутри от Виктора Ведмича
Кто такой Data Scientist. Обзор изнутри от Арсения Кравченко
По теме
Кто такой Data Scientist. Обзор изнутри от Арсения Кравченко
23 популярных курса по Data Science от Coursera
По теме
23 популярных курса по Data Science от Coursera
Краудтестинговые платформы — «ясли для тестировщика»
Итак, как я уже писал выше, получить начальный опыт работы тестировщиком без опыта можно на так называемых краудтестинговых платформах.
Работа практически на всех краудтестиновых платформах строится по одному принципу. Есть какое-либо вводное обучение. Далее идет вводные тест. Если все хорошо, Вас допускают к реальным проектам. И Вы можете начать прокачивать свой рейтинг, ведь от этого будет зависеть и Ваша «зарплата».
А «доход» обычно начисляется в английских тугриках. И в принципе он достаточно неплохой.
Да. Помните. Чем «крупнее» ошибки Вы находите, тем выше Ваше вознаграждение!
Краудтестинговые платформы в основном «буржуинские». Вот некоторые из них. Часть только на английском (или немецком языках). Часть переведена (не полностью) на русский. Но велика вероятность получения задания на английском языке.
Если Вы работали на одной их них, оцените ниже, какая понравилась больше.
test.io— одна из старейших платформ краудтестинга
www.testbirds.com — есть вариант для русскоязычных пользователей.
www.passbrains.com — еще один сайт для тестирования ПО
www.globalapptesting.com — еще краудтестинговый сайт
ubertesters.com — еще одна (немецкая) платформа для тестирования
testlio.com — еще ловите сайтик для тех, кто ищет работу тестировщика ПО без опыта
www.crowdtesting.ru — и еще. Это уже на русском языке, что является редкостью в мире тестировочных платформ.
Про условия работы на этих сервисах лучше сами посмотрите у них. Заодно и с платформами ознакомитесь.
Как и где научиться профессии?
Как я уже говорила, для успешной работы тестировщиком необходимы специальные знания и навыки. Если у вас есть базовое образование по программированию, то вы сможете самостоятельно научиться тестировать ПО. В противном случае, вам необходимо получить дополнительные знания. Это несложно, многие онлайн-университеты и школы смогут предложить вам пройти курсы, на которых вы научитесь проводить ручные и автоматические тесты с нуля. Предлагаю вам ознакомиться с некоторыми из них:
1. «Профессия Тестировщик» от SkillBox
SkillBox – образовательный онлайн-портал, участник проекта Skolkovo, обладатель премии Рунета за 2018 и 2019 годы.
- Чему научитесь: ручному и автоматическому тестированию сайтов и приложений; техникам тест-дизайна; программированию на языке Java; веб-верстке.
- Формат обучения: практические видеоуроки, самостоятельные задания с проверкой куратора, защита дипломного проекта; всего 586 уроков, сгруппированных в 185 тематических блоков.
- Преимущества: обучение на практике; помощь в трудоустройстве; отсрочка платежа на 3 месяца; шаблоны тест-планов, кейсов, сценариев и чек-листов.
- Длительность обучения: четкий срок зависит от выбранных модулей, в среднем от 1 года.
- Кому подойдет: новичкам и начинающим тестировщикам.
- Стоимость: от 93 000 рублей, возможна рассрочка от 3 900 рублей в месяц.
2. «Тестировщик программного обеспечения» от SkillFactory
SkillFactory – онлайн-школа интернет-профессий с опытом 5 лет на рынке, участник проекта Skolkovo, лидер на рынке онлайн-образования в сегменте Data Science.
- Чему научитесь: автоматизации на Python; основам тест-дизайна; написанию собственных тест-кейсов; пользоваться баг-трекером и многому другому.
- Формат обучения: курс-симулятор (обучение в игровом формате с полным погружением в профессии); всего 336 учебных часов; вебинары с разбором важных тем и ответами на вопросы.
- Преимущества: обучение с нуля; практическая программа; опыт тестирования; помощь ментора; преподаватели – практики с опытом более 5 лет; именной сертификат о прохождении профессиональной подготовки; есть возможность получить обратно часть оплаты (если прошли курс не полностью по какой-либо причине).
- Длительность обучения: 8 месяцев.
- Кому подойдет: для новичков, начинающих IT-специалистов.
- Стоимость: около 60 000 рублей единовременно или в рассрочку на 12 месяцев по 4 950 рублей.
3. «Тестировщик» от Нетологии
Нетология – онлайн-университет для тех, кто хочет реализовать себя в профессии в сфере маркетинга, дизайна, программирования и аналитики, с опытом более 9 лет на рынке онлайн-образования.
- Чему научитесь: освоите 12 инструментов тестировщика и методы ручного и автоматического тестирования; изучите язык программирования Java и английский для начинающих разработчиков.
- Формат обучения: онлайн-вебинары по вечерам по 2-3 раза в неделю; домашние задания с проверкой и работой над ошибками;
- Преимущества: обучение с нуля; диплом о профессиональной подготовке установленного образца; для лучших учеников предложат собеседование в Альфа-банке; преподают специалисты ведущих компаний; помощь в составлении резюме; возможность получить налоговый вычет.
- Длительность обучения: 6 месяцев.
- Кому подойдет: начинающим тестировщикам, специалистам из техподдержки.
- Стоимость: 46 740 рублей при единовременной оплате или в рассрочку по 3 895 рублей на 12 месяцев без переплат.
Кто всё это делает: немного о профессии
Тестированием программы занимаются специалисты по контролю качества программного обеспечения — QA-инженеры. У них есть разные специализации: тестировщики баз данных, специалисты автоматизированного тестирования, аналитики, разработчики тестов, специалисты по безопасности приложений и другие.
Если проект большой, над ним работает целая команда: одни тестировщики готовят тесты, другие проверяют их полноту и логику, третьи занимаются непосредственно тестированием. Над небольшими задачами может работать один специалист, причём удалённо.
Тестировщики — среди самых востребованных сейчас специалистов-айтишников. Появляется множество новых программ, и каждой из них нужен контроль качества. QA-специалистов нанимают крупные компании-разработчики ПО, они могут стать фрилансерами и работать сразу на несколько фирм.
Как показывает статистика работных сайтов, на рынке не хватает разработчиков автотестов, а специалистов ручного тестирования достаточно. Средняя зарплата тестировщика в Москве больше 120 тысяч рублей, а по регионам — примерно 55–60.
На скриншотах ниже — данные с HeadHunter. В сентябре 2020 года там было 3000 открытых вакансий тестировщика.
В описаниях вакансий работодатели предлагают зарплаты от 45 до 250–300 тысяч рублей.
В среднем по России на одну вакансию приходится шесть резюме от ищущих работу. Чаще всего нужны опытные тестировщики, но есть места и для начинающих.
«Introduction to Software Testing» от Coursera
Длительность: 4 недели.
Формат обучения: видеолекции, материал для самостоятельного изучения, тесты.
Программа обучения: курс знакомит учащихся с основными принципами и процессами тестирования ПО. От студентов требуется понимание жизненного цикла разработки ПО и знание Java (подойдёт и другой язык ООП).
Чему научитесь:
- Понимать терминологию тестирования.
- Самостоятельно писать тесты для различных целей.
- Разрабатывать план тестирования.
- Использовать инструменты автоматического тестирования.
- Создавать отчёты о дефектах.
Плюсы:
- Понятное объяснение сложных терминов.
- Отличная организация учебного процесса.
- Профессиональные преподаватели.
- Много реальных примеров.
- Субтитры на русском языке.
Минусы:
Верно ли, что QA-автоматизаторам нужно разбираться в программировании чуть ли не лучше разработчиков?
ЕКАТЕРИНА ЖУКОВСКАЯ: QA-автоматизатор – это такой же разработчик, что и Python Developer или .NET Developer. В задачах обычного разработчика и QA-автоматизатора стоит даже одинаковая цель – автоматизация. Только в привычной нам разработке автоматизируют бизнес-процессы, а QA-автоматизатор – тесты для проверки автоматизации этих бизнес-процессов. Так что я считаю, что в программной части должны разбираться отлично и те и другие, ведь от эффективности первых, зависит и качество работы вторых.
АЛЕКСЕЙ БЕДУНКЕВИЧ: Я не считаю что автоматизатору надо разбираться в коде на уровне разработчика, но всегда хорошо если человек разносторонне развит. Но даже простое знание базы и наличие здравого смысла уже позволит стать довольно успешным автоматизатором.
Жизненный цикл тестирования программного обеспечения
Независимо от того, какую методологию вы используете, от вас всегда ожидается соблюдение определенного жизненного цикла тестирования. Жизненный цикл тестирования программного обеспечения помогает вам сосредоточиться на требованиях к продукту и разработке функций по очереди.
Давайте подробнее рассмотрим каждый из этих 6 шагов:
Анализ требований
Вы и ваша команда разработчиков встречаетесь с группами по продукту и маркетингу, чтобы обсудить конечные требования и особенности продукта. Для каждого требования группа проводит мозговой штурм по проверяемой спецификации, в которой будет указано, выполнено ли это требование.
Эти спецификации могут быть такими, как «время выполнения должно быть ниже X» или «клиенты должны иметь возможность легко управлять пользовательским интерфейсом». Вы будете использовать эти спецификации для последующих шагов.
План тестирования
На этом этапе вы и ваша команда разработчиков обдумываете особенности разработки теста. Вот некоторые общие моменты: «Какие ресурсы нам понадобятся?», «Какие количественные показатели мы можем использовать для проверки наших требований?» и «каковы исходные факторы риска, которые могут повлиять на результаты тестирования?».
Наиболее важным аспектом этого шага является сохранение конкретных показателей тестирования / случаев и их соответствия спецификациям продукта.
Разработка тестового случая
На этом этапе вы создадите тестовый пример или набор тестов, которые проверят, что целевое требование было выполнено. Для общего тестирования вы можете использовать процесс функционального тестирования или для более конкретных требований вы можете выбрать нефункциональный тест, такой как тест удобства использования.
Обычно это делается путем перевода спецификации, найденной на шаге 1, в код. Полезно разделить большие спецификации на несколько подусловий, чтобы вы могли видеть, на каком этапе процесса происходит сбой программы.
Вы и команда разработчиков также разделите тестовые примеры на категории автоматического и ручного тестирования в зависимости от их метрики и сложности.
Настройка тестовой среды
На этом этапе вы создадите свою тестовую среду. Большинство продуктов выпускается на нескольких платформах, а это значит, что вам придется создать как минимум одну среду для каждой платформы. В основном это делается с помощью фреймворков тестирования и нескольких виртуальных машин.
Здесь вы также создадите тестовые входные данные, которые будут создавать согласованные выходные данные при запуске программы. Хорошие входные данные для тестирования охватывают весь спектр сценариев использования и приводят к тому же результату при повторном запуске.
Выполнение теста
На этом этапе вы и ваша команда выполните тест и запишите все выбранные показатели. Большинство команд будут запускать тесты несколько раз, чтобы получить несколько сопоставимых точек данных. Отметьте любые критические или некритические программные дефекты, которые будут пересмотрены в следующем цикле разработки.
Вы также можете осознавать, что ваши метрики не содержат всех необходимых данных. Это хорошее время для переоценки выбранных вами показателей для будущих тестов.
Завершение тестового набора и анализ
Этот шаг посвящен получению надежных, подлежащих отчетности результатов тестов. Большинство компаний попросят вас написать ежедневный или еженедельный отчет, в котором резюмируется, как прошел каждый тест и какие изменения будут внесены в результате теста.
Отсюда вы можете:
- Измените тест и повторите его, чтобы получить дополнительную информацию (различные метрики, усовершенствованные среды тестирования и т. Д.).
- Вернуться к разработке решений для продукта, используя результаты тестирования (оптимизировать для выполнения, повысить масштабируемость и т. Д.)
Используя методы гибкого тестирования, вы завершите этот цикл тестирования до того, как создадите код продукта, а также после него. Это позволяет ускорить разработку, поскольку при разработке продукта вы учитываете спецификации тестов.
Что такое тест
- Это специальная, искусственно созданная ситуация, выбранная определенным образом,
- и описание того, какие наблюдения за работой программы нужно сделать
- для проверки ее соответствия некоторому требованию.
Ну и таким образом мы можем заключить, что тестировщик делает в процессе тестирования две вещи.
1.Во-первых, он управляет выполнением программы и создает эти самые искусственные ситуации, в которых мы собираемся проверять поведение программы.
2.И, во-вторых, он наблюдает за поведением программы и сравнивает то, что он видит с тем, что ожидается.
Разумеется, иногда мы отклоняемся от этого определения, например, при тестировании удобства использования тестировщик может наблюдать не только за поведением программы, но и за поведением специального человека, испытуемого, которому дается некоторое задание. Он выполняет задание, а мы смотрим, справляется он с ним или не справляется, за какое время он справляется.
Если тестировщик автоматизирует тесты, то он не сам наблюдает за поведением программы — он делегирует эту задачу специальному инструменту или специальной программе, которую он сам написал. Именно она наблюдает, она сравнивает наблюдаемое поведение с ожидаемым, а тестировщику выдает только некоторый конечный результат — совпадает ли наблюдаемое поведение с ожидаемым, или не совпадает.
Основные задачи тестирования
Еще несколько терминов, которые связаны с упомянутыми двумя задачами, которыми занимается тестировщик, это стимулы, реакции и оракул.
- Стимулы – это данные, которые подаются на вход программе.
- Реакции — это то, что получается на выходе.
- Оракул — это способ проверки наблюдаемого результата, совпадает он с некоторыми ожиданиями или не совпадает.
Программа представляет собой механизм по переработке информации. На вход поступает информация в каком-то одном виде, на выходе информация в некотором другом виде. При этом входов и выходов у программы может быть много, они могут быть разными, то есть у программы может быть несколько разных интерфейсов, и эти интерфейсы могут иметь разные виды:
- Пользовательский интерфейс (UI)
- Программный интерфейс (API)
- Сетевой протокол
- Файловая система
- Состояние окружения
- События
Наиболее распространенные интерфейсы это
- графический,
- текстовый,
- консольный,
- и речевой.
Через пользовательский интерфейс компьютер взаимодействует с человеком, с пользователем.
Через программный интерфейс программы взаимодействуют друг с другом (человек тут не нужен).
Ну, и можно выделить такие еще разновидности как сетевой протокол, чаще всего тоже для взаимодействия программ друг с другом, но через сеть, а не непосредственно, как это происходит через программный интерфейс.
Это файловая система, программы могут писать данные на диск и читать данные с диска.
Это состояние окружения, которое могут программы модифицировать и, соответственно, тоже читать.
Это события, в частности, таймер. То есть некоторые механизмы отслеживания времени.
Используя все эти интерфейсы, тестировщик каким-то образом создает искусственные ситуации, и проверяет в этих ситуациях как программа себя ведет. Вот это и есть тестирование.