Когда вы начинаете подумывать о том, чтобы стать тестировщиком, и читаете что-то на эту тему, новые термины и понятия встречаются буквально в каждом предложении. Процесс контроля качества, “черный ящик”, “белый ящик”, модульные тесты, регрессионные тесты, ручное и автоматическое тестирование, BrowserStack, Jira. Все это звучит так сложно! Складывается впечатление, что на то, чтобы освоить эту профессию, у вас уйдут годы.
Что ж, нужно признать: чтобы стать тестировщиком, потребуются определенные усилия. Но поверьте, это не так сложно, как может показаться на первый взгляд. Под умелым руководством вы можете обучиться основным навыкам довольно быстро.
Эта статья поможет вам разобраться в процессе QA, основных этапах тестирования программного обеспечения и наиболее часто используемых при этом инструментах.
Прочитав её, вы узнаете:
- В чем разница между процессом обеспечения качества (QA) и контролем качества (QС)
- Каковы основные этапы QA процесса при разработке программного обеспечения
- В чем разница между ручным и автоматическим тестированием
- Какие бывают виды тестов и подходы к тестированию
- Какие инструменты помогают оптимизировать процесс
Как работает программа? Как компилируется код? (устройство компьютерных программ) [2020]
Что такое процесс обеспечения качества (QA) и чем он отличается от контроля качества (QC)?
Процесс обеспечение качества при разработке программного обеспечения или QA (quality assurance) — это процесс, который предотвращает появление ошибок в конечном продукте и гарантирует, что компания выпустит по-настоящему качественное приложение. Процесс QA — это больше, чем просто контроль качества и тестирование. В то время как контроль качества (QC) сосредоточен на проверке конечного продукта, QA является частью всех этапов и стадий разработки программного обеспечения. Другими словами, QA — это комплекс мероприятий, направленных на предотвращение дефектов и ошибок, а QC — на их выявление. Правильно настроенный процесс QA гарантирует, что все члены команды будут работать эффективно, время, необходимое для разработки, сократится, а затраты снизятся.
Конечно, в разных компаниях процесс QA может отличатся. Однако, как правило, основные стадии и этапы совпадают. И если вы с ними знакомы, вам проще будет разобраться во всех этих новых терминах и концепциях.
Каковы основные этапы QA процесса?
Работа с требованиями
В современных компаниях процесс QA начинается на очень ранних этапах жизненного цикла разработки программного обеспечения — прямо на этапе анализа требований. Тестировщики проверяют требования и функциональные спецификации, чтобы убедиться, что они чёткие, непротиворечивые, полные, выполнимые и их возможно протестировать.
Планирование тестирования
После того, как тестировщики поняли требования, они могут начать разработку стратегии тестирования и планирование процедур по контролю качества. На этом этапе они определяют объем работ и бюджет, решают, какой подход использовать на каждом этапе разработки программного обеспечения, какие виды и типы тестирования потребуются, какие инструменты лучше использовать.
Разработка тестовых сценариев
Имея на руках план, пора разработать тестовые сценарии или тест кейсы, создать чек-листы, подготовить среду для выполнения тестов и создать сценарии для автоматического тестирования.
Тестирование программного обеспечения
На этом этапе всё готово для поиска ошибок и дефектов. Команда QA специалистов начинает выполнять различные типы тестов. Тестировщики сообщают обо всех обнаруженных ошибках.
Повторное тестирование
Как только группа разработчиков устраняет проблему, тестировщики повторно проверяют функциональность и проводят так называемое регрессионное тестирование, чтобы убедиться, что после внесённых изменений программное обеспечение по-прежнему работает правильно.
Завершение тестирования
После того, как все запланированные тесты выполнены и все исправления перепроверены, наступает время подготовки отчёта о результатах тестирования. В документации описываются все тесты, выполненные в течение жизненного цикла разработки программного обеспечения.
Какие типы или виды тестирования используются в QA процессе?
Теперь, когда мы понимаем, что представляет собой процесс QA, давайте поговорим о различных типах тестов, используемых при тестировании программного обеспечения. Да, их очень много. Но волноваться не стоит. Как только вы поймёте, по каким принципам тесты делятся на группы, вы легко сможете в них ориентироваться.
Функциональные и нефункциональные тесты
Основные категории тестов — это функциональные и нефункциональные тесты.
При функциональном тестировании мы проверяем, работает ли приложение должным образом. Другими словами, мы проверяем, соответствует ли фактический результат ожидаемому результату.
В нефункциональном тестировании мы проверяем, как наше приложение работает в различных условиях. Нагрузочные тесты, тесты безопасности, стрессовые тесты и тесты удобства пользования — все они попадают в эту категорию.
Знание исходного кода
Если тестировщики знают исходный код до тестирования, речь идет о тестировании “белого ящика” (white box testing). В противном случае мы имеем дело с тестированием “черного ящика” (black box testing), когда тестировщики оценивают только поведение приложения, не зная его внутреннего устройства. Тестирование “серого ящика” (grey box testing) представляет собой комбинацию этих двух подходов. Тестировщикам предоставляется ограниченная информация о внутренней структуре системы.
Подход к выполнению тестов
Некоторые тесты выполняются людьми, и мы говорим о ручном тестировании. При этом подходе тестировщики выполняют тестовые сценарии и создают отчеты о результатах.
Другие тесты выполняются компьютерами. Инженеры по автоматизации тестирования создают сценарии автоматического тестирования и пишут код, который многократно проверяет программное обеспечение на наличие ошибок. Здесь мы имеем дело с автоматическим тестированием.
У каждого из этих подходов есть свои плюсы и минусы. Они дополняют друг друга. Например, ручное тестирование лучше подходит для проверки небольших изменений. Во время ручного тестирования тестировщики часто могут найти такие проблемы, которые остались бы незамеченными, если бы они полагались только на автоматизированные тесты. Ручное тестирование не требует глубоких знаний языков программирования и его достаточно легко освоить.
В то же время, при работе над большими приложениями, тестирование без использования автоматических тестов может занять слишком много времени. Мы также не можем исключить вероятность человеческих ошибок.
Для каждого отдельно взятого проекта QA специалисты определяют идеальный баланс между ручным и автоматическим тестированием.
Фаза разработки программного обеспечения
11 Компьютерное тестирование
Компьютерное тестирование – разновидность тестирования с использованием современных технических средств, имеющее ряд преимуществ по сравнению с традиционным бланочным тестированием (получение мгновенного результата, исключение предвзятости, нормирование трудности и объёма тестовых заданий, массовость, лёгкость обработки результатов, возможность тестирующих программ работать в режиме обучения).
Функции компьютерного теста
– обучение (в качестве дидактического обучающего средства);
– контроль ЗУНов учащихся;
– самообучение (тренажёр) и самоконтроль;
– корректировка учебного процесса.
Инструментальные тестовые оболочки
Для создания тестов по предметной области разрабатываются специальные инструментальные программы-оболочки, позволяющие создавать компьютерные тесты путем формирования базы данных из набора тестовых заданий.
1. Универсальные (содержат тестовую оболочку как составную часть. Примеры: «Адонис» (Москва), «Linkway» (Microsoft), «Фея» (Томск), «Радуга» (Москва) и т. п.
2. Специализированные (предназначены лишь для формирования тестов. Примеры: «Аист» (Москва), «I_now» (Иркутск), «Тест» (Красноярск) и др.
Для того чтобы разработать компьютерный вариант теста с помощью одной из названных выше программ, необходимо уяснить, какие формы тестовых заданий они допускают.
Показатели качественного компьютерного теста
– Восприимчивость к угадыванию тестируемым;
– восприимчивость к невнимательности и ошибочным действиям тестируемого;
– положительное влияние на тестируемого и педагога, который использует тест.
Компьютерные формы представления
1. Альтернативные вопросы (требуют ответа да – нет).
Закрытая форма вопроса: номер правильного ответа.
2. Задание на соответствие: требует соотнести элементы двух множеств.
3. Задание на восстановление правильной последовательности: требует расположить элементы множества в определённом порядке.
4. Вопросы с шаблоном ответа (предполагают числовой или текстовой ввод правильного ответа).
5. Вопросы с выбором нескольких вариантов (ключевых слов, изображений, обозначений).
6. Конструирование ответа (шаблонный и бесшаблонный варианты): ответ формируется путем последовательного выбора его элементов из инструментария по типу меню.
7. Задание на конструирование изображений: с помощью графредактора, меню изображений (аналогично предыдущему примеру).
8. Задание на демонстрацию с движущимися объектами. Ответ в виде действия тестируемого (определенный набор клавиш). (Пример: клавиатурный тренажер на время.)
Выбор формы представления задания определяется
• особенностями инструментальных тестовых программ (тестовыми оболочками);
• особенностями предметной области;
• опытом и мастерством экспертов.
С 2001 года в нашей стране проводится эксперимент по введению единого государственного экзамена (ЕГЭ) для выпускников школ и поступающих в высшие учебные заведения.
Причины введения ЕГЭ
В результате реформ конца 80-90-х годов российское образование перестало носить унифицированный характер и перешло к использованию вариативных программ, учебников и пособий, что, с одной стороны, увеличило возможности системы образования: реализация идей развивающего обучения, профессиональной ориентации, возможности индивидуального подхода, но, с другой стороны, усложнило контроль за качеством получаемого образования. «В условиях резко возросшего разнообразия средств, методов и содержания обучения школьников со всей остротой встала задача обеспечения единого уровня и содержания базового ядра общего и среднего образования для всех выпускников школ» [7]. ЕГЭ может стать эффективным надежным и объективным средством контроля за качеством знаний и умений учащихся, в случае успешного завершения эксперимента. Таким образом, в данный момент ЕГЭ рассматривается как одно из средств модернизации современного образования в России.
Задачи единого экзамена:
· расширение доступности высшего образования благодаря введению однотипных экзаменов для всех выпускников общеобразовательных школ и их параллельного участия в заочном конкурсном отборе сразу в несколько вузов;
· совершенствование системы и практики финансирования высших учебных заведений на основе рыночной состязательности между ними за прием лучших студентов;
· снижение психологической нагрузки на выпускников общеобразовательных учреждений за счет упразднения вступительных экзаменов в вузы;
· объективизация и унификация требований к общеобразовательной подготовке поступающих в вузы;
· стимулирование деятельности педагогических коллективов общеобразовательных учреждений по улучшению качества учебного процесса за счет объективной и независимой сравнительной оценки результатов общеобразовательной подготовки выпускников школ.
Преимущества ЕГЭ перед другими формами контроля
Использование ЕГЭ в качестве выпускного экзамена в средней школе и его результатов для поступления в высшие учебные заведения имеет ряд преимуществ перед традиционными устными и письменными экзаменами. Прежде всего, это объективность оценивания. В системе ЕГЭ отсутствует преподаватель, который проверяет знания выпускника, то есть исключается субъективный момент (неприязнь к учащемуся, заинтересованность в хороших показателях, плохое настроение, самочувствие преподавателя и др.) при выставлении оценки. Благодаря стандартизации — единой форме предъявления контрольно-измерительных материалов (КИМ) и единого метода обработки полученных результатов достигается высокий уровень объективности оценивания учебных достижений выпускников.
Разработка тестов и анализ результатов тестирования в соответствии с принципами классической или современной теорий тестов позволяют обеспечить точность и надежность оценивания уровня учебных достижений. Чтобы это преимущество ЕГЭ могло быть реализовано, КИМы должны включать тестовые задания, которые прошли экспертную оценку и были апробированы на репрезентативной выборке испытуемых.
Тестовые технологии могут обеспечить достоверные результаты, свободные от фальсификации и искажения. Нельзя не согласиться, что без обеспечения высокой достоверности единого экзамена, без гарантий его информационной безопасности невозможно завоевать доверие к результатам ЕГЭ, что, безусловно, резко снизит эффективность этого нововведения.
Выделяют ряд возможностей, которые могут способствовать снижению достоверности. Это рассекречивание, подставка, подсказка, подтасовка.
Чтобы не произошло рассекречивания КИМов, существует система информационной безопасности, которая защищает тестовые материалы от преждевременного доступа.
Один из возможных способов защиты — это создание большого банка калиброванных тестовых заданий и обеспечение свободного доступа к этому банку (например, через интернет или печатные издания). Знакомство учащихся с множеством заданий банка позволит им лучше подготовиться к сдаче теста. Для самого экзамена формируются многочисленные варианты теста в компьютерном режиме из существующего банка заданий (калиброванных) индивидуально для каждого испытуемого.
Источник: studfile.net
Основы тестирования ПО 2020: самый подробный гайд
Уже готов стать тестировщиком или хочешь освежить базовые понятия? Тогда этот гайд – то, что нужно! Команда ПОИНТ и курса Jedi.Point структурированно делится теоретическими основами тестирования: от видов до полезных инструментов.
Что такое Тестирование ПО?
Тестирование ПО – процесс, который помогает проверить выполнение всех бизнес-сценариев и требований пользователей, а также выявить все возможные проблемы и дефекты IT-продуктов.
В чем разница между тестированием, QC и QA?
Зачастую понятия «тестирование», «QA» и «QC» или путают, или используют для обозначения одного и того же. На самом деле эти термины характеризуют немного разные процессы:
- тестирование отвечает непосредственно за нахождение багов;
- QC (контроль качества) – за выполнение процесса тестирования (написание/прохождение кейсов, поиск/заведение дефектов etc);
- QA (обеспечения качества) – за создание системы контроля, которая будет предотвращать появление багов уже на этапе разработки ПО, сокращая количество выявленных дефектов на этапе тестирования; грубо говоря – построение самого процесса тестирования.
Зачем нужно тестирование и тестировщики?
Действительно, разве разработчики сами не могут проверять свои же продукты?
Еще 5-6 лет назад такой вопрос обсуждался в IT-кругах и на просторах Интернета. Но в 2020 ясно: тестировщики без работы не останутся, а тестирование должны осуществлять специалисты в сфере QA.
Во-первых, они проверяют все взаимодействия разных кусков кода и окружений, а не часть программы, которую сами же написали. Во-вторых, в процессе тестирования они ставят себя на место пользователя, для которого и создается продукт. В-третьих, логика их работы основана не только на создании ПО, но и включает возможность его поломки. И, в конце концов, время тестеров стоит дешевле, да и разработчикам не придется забивать себе голову дополнительной информацией.
Чтобы понять, как еще тестировщики помогают своим заказчикам, читайте также:
Виды тестирования ПО
Составить эталонную классификацию почти невозможно – выделяют аж 100 видов тестирования, которые можно сгруппировать по различным характеристикам.
Более того, периодически методы устаревают, и возникают новые термины.
С какими же основными классификациями и типами тестирования стоит ознакомиться начинающим тестировщикам?
Виды тестирования ПО по степени автоматизации
Среди тестировщиков существует огромное разделение на более узкие специальности: тестирование безопасности, производительности, удобства использования и др. Но в самом широком смысле их можно разделить на ручных тестировщиков и тестировщиков-автоматизаторов.
Любое тестирование можно выполнить как вручную, так и с помощью инструментов автоматизации.
Ручное тестирование – это тип тестирования программного обеспечения, при котором тестировщик вручную проводит тесты без помощи каких-либо средств автоматизации.
Автоматизированное тестирование, в свою очередь, выполняется с помощью таких фреймворков, как Selenium, PHPUnit, Mockery и других. Его целью является снижение затрат и рисков, связанных с человеческим фактором. Особенно эффективен данный тип на долгосрочных проектах с частыми релизами и объемным регрессом.
Каждое из этих направлений имеет свою область применения, потому что 100-% автоматизация невозможна. Например, проверка юзабилити всегда осуществляется вручную.
Разница между ручным и автоматизированным тестированием
Ручное тестирование | Автоматизированное тестирование |
тестировщик выполняет тесты вручную | выполняется с использованием инструментов |
требует квалифицированного труда и продолжительного времени | экономит время, бюджет, человеческий ресурс |
некоторые типы тестирования больше подходят для ручного выполнения | рекомендуется только для стабильных систем, в основном используется для регрессионного тестирования |
может стать повторяющимся и утомительным | рутинную часть можно переложить на инструменты автоматизации |
Также рекомендуем:
Виды по объекту тестирования
Функциональное тестирование (functional testing) проверяет часть системы, которая необходима для того, чтобы пользователь мог выполнить бизнес-сценарий от начала до конца. Оно выполняется первым, до нефункционального тестирования. Примеры: переход по разделам форума, поиск по сайту.
Методы и техники функционального тестирования:
- Модульное тестирование
- Тестирование серого ящика
- Тестирование черного ящика
- Тестирование белого ящика
- Пользовательское тестирование
- Регрессионное тестирование
- Смоук тестирование
- Исследовательское тестирование
- Сессионное тестирование — компромисс между исследовательским и скриптовым тестированием.
Агеева Нина, автор курса Погружение в тестирование. Jedi Point, рассказывает о сессионном тестировании
Нефункциональное тестирование необходимо для проверки работоспособности системы при различных условиях, которые могут влиять на удовлетворенность пользователя (надежность, удобство использования, масштабируемость).
Типы нефункционального тестирования:
- Тестирование безопасности (security testing)
Тестирование безопасности – это вид тестирования для выявления уязвимости программного обеспечения к различным атакам (SQL, XSS etc).
Рекомендуем ознакомиться:
- Тестирование локализации (localization testing)
Тестирование локализации – процесс адаптации продукта, который ранее был переведен на несколько языков для определенной страны или региона.
Тренер ПОИНТ Валерия Останко рассказывает о том, как тестировать локализации даже без знания языка
- Юзабилити тестирование (usability testing)
Тестирование юзабилити – это метод тестирования, направленный на выявление удобства и понятности интерфейса.
Оценивать удобство без субъективности и научиться создавать продукт, который будет нравиться вашим пользователям, вы можете на курсе Тестирование удобства использования. |
Виды тестирования по позитивности сценария
Негативное тестирование – проверка того, что при вводе недопустимых значений/совершении недопустимых действий программа ведет себя корректно – не совершает того, чего не должна и выдает человекочитаемое сообщение об ошибке.
Позитивные тестирование – проверка того, что программа работает правильно на «правильных» данных – не выдает ошибок, делает то, что должна.
Агеева Нина, автор курса Погружение в тестирование. Jedi Point, рассказывает о позитивном и негативном тестировании
Этапы тестирования
Для описания процесса тестирования поэтапно существует несколько методик. Одна из самых понятных и простых моделей – STLC.
STLC (Software Testing Life Cycle) означает жизненный цикл тестирования программного обеспечения.
Модель жизненного цикла тестирования программного обеспечения (модель STLC) состоит из шести основных фаз.
6 фаз STLC (Software Testing Life Cycle):
Анализ требований. На этом этапе тестировщики изучают требования с точки зрения тестирования и общаются с заказчиками для детального понимания. Также, если необходимо, выполняют технико-экономическое обоснование автоматизации.
Зачастую тестировщикам приходится сталкиваться с ситуацией, когда требования отсутствуют или недостаточно ясны. В таких случаях тестировщик использует методы и инструменты для организации тестирования в условиях отсутствия идеальных требований на проекте.
По этой теме рекомендуем почитать:
Научиться тестировать в условиях отсутствия идеальных требований на проекте можно на курсе: Тестирование без требований: выявление и восстановление информации о продукте |
Планирование тестирования. На данном этапе разрабатывается стратегия тестирования, выявляются риски, выбираются инструменты и распределяются роли в команде. Все это фиксируется в таких документах, как тест-план и тест-стратегия.
Агеева Нина, автор курса Погружение в тестирование. Jedi Point, подробно объясняет, что такое стратегия и как ее составить
Разработка тест-кейсов.
О том, почему мы пишем тест-кейсы, можно узнать в нашем видео:
Станислав Марков, тренер ПОИНТ и курса Погружение в тестирование. Jedi Point детально рассказывает о каждой фазе
А о том, как писать тест-кейсы, вы можете узнать на нашем Youtube-канале |
Настройка тестовой среды окружения. Этот шаг нужен для того, чтобы подготовить все условия для эффективного процесса тестирования. Он включает настройку тестового сервера, настройку сети, настройку тестовых ПК или устройств, а также формирование тестовых данных для тестовой среды.
Выполнение тестов. Команда QC начинает выполнение тест-кейсов в соответствии с планами тестирования и создает отчеты о багах. Также чаще всего на этом этапе происходит валидация багов. Она нужна для того, чтобы убедится, что дефекты, которые ты завёл ранее, ДЕЙСТВИТЕЛЬНО пофиксили.
Закрытие цикла – последний этап жизненного цикла тестирования программного обеспечения. Он включает в себя встречу членов группы тестирования для того, чтобы оценить показатели проекта.
Станислав Марков, тренер ПОИНТ и курса Погружение в тестирование. Jedi Point детально рассказывает о каждой фазе
Инструменты тестировщика
Инструменты тестирования – все продукты, которые помогают QA-инженерам организовывать свою работу на каждом этапе.
Выбор инструментов для работы тестировщика зависит от вида тестирования, личных предпочтений и места работы тестировщика. Со временем у каждого тестировщика появляется свой набор инструментов.
Инструменты для управления тестированием
Инструменты для автоматизации тестирования
Инструменты для кросс-браузерного тестирования
Инструменты для нагрузочного тестирования
Инструменты для баг трекинга
Инструменты для автоматизации тестирования мобильных приложений
Для iPhone и iPad:
Мобильные эмуляторы
- mobiReady
- BrowserStack
- CrossBrowserTesting
- Screenfly
- Mobile phone emulator
Инструменты для тестирования юзабилити
Инструменты для API- тестирования
Инструменты тестирования безопасности
- NetSparker
- OWASP
- Acunetix Vulnerability Scanner
CSS Валидаторы
Также рекомендуем:
Надеемся, наш гайд помог вам в понимании основ тестирования. Успехов в карьере тестировщика!
А тем, кто хочет узнать о каждом аспекте тестирования на практике, рекомендуем пройти курсы тестирования ПО.
И обязательно скачайте чек-лист “Что должен знать и уметь джуниор-тестировщик”, заполнив небольшую анкету.
Источник: qaschool.ru