Конспект по дисциплине Информационные технологии на тему “Основные понятия и принципы тестирования ПО”
Основные понятия и принципы тестирования программного обеспечения
Тестирование – это процесс выполнения программы с целью обнаружения ошибок.
Шаги процесса задаются тестами. Каждый тест определяет:
1) свой набор исходных данных и условий для запуска программы;
2) набор ожидаемых результатов и работы программы.
Другое название теста – тестовый вариант. Полную проверку программы гарантирует только исчерпывающее тестирование. Оно требует проверить все наборы исходных данных, все варианты их обработки и включает большое количество тестовых вариантов. На практике исчерпывающее тестирование практически никогда не выполняется из-за ресурсных ограничений, прежде всего ограничений по времени.
Хорошим считается тестовый вариант с высокой вероятностью обнаружения еще нераскрытой ошибки. Успешным называется тест, который обнаруживает до сих пор не найденную ошибку. Целью проектирования тестовых вариантов является систематическое обнаружение различных классов ошибок при минимальных затратах времени и стоимости.
1) обнаружение ошибок;
2) демонстрацию соответствия функций программы ее назначению;
3) демонстрацию реализации требований характеристикам программы;
4) отображение надежности, как индикатора качества программы.
Тестирование не может показать отсутствие дефектов, оно может показать только присутствие дефектов.
Рисунок 12 – Информационные потоки процесса тестирования
На входе процесса тестирования 3 потока: текст программы, исходные данные, ожидаемые результаты.
После выполнения тестов полученные результаты оцениваются. Это значит, что результаты тестов сравниваются с ожидаемыми результатами. Когда обнаруживается несовпадение и фиксируется ошибка, начинается отладка. Это значит, что реальные результаты тестов сравниваются с ожидаемыми результатами. Процесс отладки непредсказуем по времени. На поиск места возникновения ошибки и исправление может потребоваться час, день или месяц. Неопределенность в отладке приводит к большим трудностям в планировании действий.
После сброса и оценивания результата тестирования начинается оценка качества и надежности программного обеспечения. Если регулярно встречаются серьезные ошибки, требующие значительных проектных изменений, то качество и надежность программного обеспечения становятся подозрительными и констатируется необходимость усиления тестирования.
С другой стороны, если функции программного обеспечения реализованы правильно, а обнаруживаемые ошибки легко исправляются, может быть сделан один из двух выводов: либо качество и надежность программного обеспечения полностью удовлетворительны, либо используемые тесты неспособны обнаружить серьезных ошибок. В конечном счете, если тесты не обнаруживают ошибок, появляются сомнения в том, что тестовые варианты достаточно продуманы и что в программном обеспечении нет скрытых ошибок.
Такие ошибки будут, в конечном счете, обнаруживаться пользователями и корректироваться разработчиками на этапе сопровождения, когда стоимость исправления возрастет в 100 раз по сравнению с этапом разработки.
Результаты, накопленные в ходе тестирования, могут оцениваться и более формальным способом. Для этого используются модели надежности программного обеспечения, выполняющие прогноз надежности по реальным данным об интенсивности ошибок.
Существуют 2 основных принципа тестирования программ:
1) функциональное тестирование (тестирование черного ящика);
2) структурное тестирование (тестирование белого ящика).
При тестировании черного ящика известны функции программы и исследуется работа каждой функции на всей области определения.
Местом приложения тестов черного ящика является интерфейс программного обеспечения.
Рисунок 13 –Схема тестирования черного ящика
Тесты черного ящика демонстрируют:
1) как выполняются функции программ ;
2) как принимаются исходные данные ;
3) как вырабатываются результаты ;
4) как сохраняется целостность внешней информации.
При тестировании черного ящика рассматриваются системные характеристики программ, но игнорируется их внутренняя логическая структура.
Исчерпывающее тестирование черного ящика также, как правило, невозможно. Например, если в программе 10 входных величин и каждая принимает по 10 значений, то потребуется тестовых вариантов.
Необходимо также отметить, что тестирование черного ящика не реагирует на многие особенности программных ошибок.
При тестировании белого ящика известна внутренняя структура программы, а исследуются внутренние элементы программы и связи между ними.
Рисунок 14 –Схема тестирования белого ящика
При тестировании белого ящика объектом тестирования является не внешнее, а внутреннее поведение программы. Проверяется корректность построения всех элементов программы и правильность их взаимодействия друг с другом. При этом обычно анализируются управляющие связи элементов, реже информационные.
Тестирование по принципу белого ящика характеризуется степенью, в которой тесты выполняют логику, т.е. исходный текст программы.
Что такое тестирование ПО, зачем оно нужно и кто им занимается
Профессия тестировщика считается самой доступной для входа в IT. Но так ли это? Чем на самом деле занимаются тестировщики? И что будет, если не проводить тестирование ПО? Рассказываем в этой статье.
Освойте профессию
«Тестировщик-автоматизатор»
Что такое тестирование
- Составление ТЗ.
- Проектирование.
- Разработка.
- Тестирование продукта.
- Запуск и поддержка.
Тестирование — это этап, на котором программу проверяют на ошибки: где она работает не так, как задумано. Это необходимо, чтобы вас неожиданно не выкинуло из корзины интернет-магазина во время покупок или игра не зависла на решающей схватке с «боссом».
Профессия / 16 месяцев
Тестировщик-автоматизатор
Лучший выбор для быстрого старта в IT
Разработчик не всегда может заметить дефекты в коде, а пострадает от этого конечный пользователь. Тестировщики моделируют различные ситуации, которые могут возникнуть в работе приложения. Так можно исправить ошибки до того, как продукт станет доступен широкой аудитории.
Для чего нужно тестирование ПО
Философия тестирования гласит, что в любой программе всегда есть ошибки и найти их все невозможно. Но поиск багов — не единственная задача. Помимо этого есть и другие цели тестирования:
- проверить, соответствует ли продукт требованиям;
- обнаружить проблемы на раннем этапе, чтобы избежать дополнительных трат на их исправление;
- найти новые варианты использования программы;
- оценить продукт со стороны;
- избежать багов в будущем, т.к. любые ошибки, обнаруженные пользователем, могут испортить репутацию компании.
Как тестируют программное обеспечение
Несмотря на то, что тестирование продукта — это этап перед самым запуском, работа тестировщика начинается уже на старте проекта, до разработки. Тестировщики составляют важные документы:
- тест-план (test plan) — общий список работ для отдела тестирования;
- чек-лист (check list) — список того, что именно нужно проверить;
- тестовый сценарий (test case) — перечень шагов для проверки конкретных функций программы.
Когда первая версия программы будет готова, начнется дымовое тестирование. На этом этапе важно понять, запускается ли программа, как она выполняет свои основные функции. Если тестировщики найдут баги — ПО вернут обратно на доработку. Если все работает как надо — продолжат тесты.
Рутинные операции в тестировании принято автоматизировать. Тестировщики пишут автотест, который запускает программу и проверяет ее работоспособность. Так можно облегчить работу при больших объемах и сэкономить время.
Итог работы отдела тестирования — это отчет, который отправляют разработчикам. Все найденные ошибки программисты устраняют, прежде чем программа попадет к пользователю. Доработка и тестирование будут продолжаться до тех пор, пока продукт не будет полностью рабочим.
Мой рабочий день обычно выглядит так: по дороге на работу, если получается, слушаю курсы, уроки. Работа начинается в 9:15. Первым делом разгребаю обращения от сотрудников дирекции по работе с клиентами: повторно проверяю, воспроизводятся ли баги, записываю в Trello, если нужно, смотрю дополнительную информацию через запросы SQL. В 11 утра открывается биржа, до этого мне нужно проверить работоспособность инвестиционного приложения. Далее, если у разработчиков готова фича и нужно протестировать локально, то тестирую. Очень мотивирует то, что участвуешь в создании продукта, а исправленные баги повышают его качество.
Ерлан Байдильдин
тестировщик в Jusan Invest
Типы и виды тестирования
Большая часть ошибок появляется при написании кода. Но некоторые могут возникнуть еще при составлении техзадания. Поэтому код проверяют на всех этапах работы. Есть четыре уровня программного тестирования:
- модульное тестирование — проводится в самом начале, это проверка отдельных кусочков кода;
- интеграционное тестирование — проверка связей между готовыми элементами, а также сочетаемости программы с окружающей средой (оборудованием и ОС);
- системное тестирование — проверяет, соответствует ли программа заявленным характеристикам;
- приемочное тестирование — согласование продукта с клиентом.
Станьте тестировщиком – это лучший выбор для быстрого старта в IT
Также выделяют разные виды тестирования:
- статическое — проверка кода и документации без запуска приложения или программы;
- динамическое — с запуском ПО. Тестировщики оценивают, долго ли грузятся страницы, сколько оперативной памяти нужно для нормальной работы приложения;
- функциональное — проверяет, справляется ли приложение с возложенными на него функциями и задачами;
- нефункциональное — исследует совместимость и производительность компонентов приложения;
- тестирование «черного ящика» (поведенческое тестирование) — когда тестировщик работает только с интерфейсной частью продукта и не видит его код;
- тестирование «белого ящика» (структурное тестирование) — когда инженер видит код проекта.
Читайте также Что такое ручное тестирование и почему без него не бывает качественного ПО
Принципы тестирования
Главная задача тестировщика — помнить, что пользователи непредсказуемы и могут совершать действия, не предусмотренные программой.
Опытные тестировщики руководствуются в работе этими принципами.
- Тестирование не гарантирует, что не будет ошибок, но снижает вероятность их возникновения.
- Полного тестирования не существует. Проверить все физически невозможно.
- Тестирование нужно начать как можно раньше.
- Большая часть ошибок допущена в одних и тех же модулях.
- Если тестировать продукт по одному и тому же сценарию, то рано или поздно вы перестанете выявлять новые ошибки.
- Способ и вид тестирования подбирается под конкретную задачу.
- Отсутствие ошибок при проверке не означает, что продукт готов к запуску. Он все еще может быть неудобным или не закрывать потребности пользователей.
Как стать тестировщиком
Тестировщик — одна из самых востребованных профессий в IT. Согласно отчету Хабр.Карьеры, средняя зарплата тестировщиков в 2022 году составила 109 тысяч рублей. QA-лиды могут получать от 200 тысяч в месяц.
Исследование Skillfactory показало, что работодатели ждут от тестировщиков следующих навыков.
Языки программирования: Python — для автоматизации тестов, SQL, GraphQL, JSON — чтобы запрашивать нужные данные из базы, HTTP — чтобы искать ошибки в коде сайтов и веб-приложений.
ПО для разработки: Git — для хранения версий кода, Pytest — для разработки автотестов, Selenium — для автоматизации тестирования веб-приложений, Postman — для тестирования бэкенда сайта, DevTools — чтобы проверять фронтенд сайта.
Для управления данными: ORACLE, PostgreSQL, Grafana, REST API.
ПО для управления проектами: Atlassian, Jira.
Начать изучать тестирование можно самостоятельно, например на бесплатных курсах или на YouTube. Чтобы сократить путь в профессию и научиться необходимым навыкам на практике под руководством ментора из IT, можно пойти на платные курсы.
В процессе изучения базы, можно начать искать работу. Не все компании требуют от тестировщиков перечисленных навыков: на должность джуна или стажера ручного тестирования можно устроиться, имя базовое понимание архитектуры приложений, принципов и алгоритма тестирования. В этом случае вы начнете с простых задач и небольшой зарплаты, но с опытом сможете двигаться вверх по карьерной лестнице.
Тестировщик-автоматизатор
Как ворваться в IT, даже если вы не умеете программировать? Стать тестировщиком. Для старта достаточно базовых знаний ПК. А начать работать можно уже через 4 месяца обучения.
Рабочая программа тестирования что это
Медиаблог / Тестирование программ: что это такое и зачем нужно
21 декабря 2022
Тестирование программ: что это такое и зачем нужно
Построить карьеру в IT можно не только с позиции разработчика. Создание программного обеспечения начинается с разработки, но большую часть времени занимает тестирование. Что это такое, как устроено и за что платят деньги тестировщикам — рассказываем в статье.
Для чего проводить тестирование
Тестирование — это контроль качества любого продукта разработки: мобильного приложения, сайта или компьютерной программы. Его задача — сделать конечную версию максимально удобной, надёжной и безопасной для пользователя.
Когда вы собираете корзину на портале доставки еды и не можете добавить нужный продукт, потому что сайт не реагирует — на языке разработки это означает, что в коде есть баг. Работа тестировщика заключается в обнаружении таких багов до того, как программа попадёт к пользователю.
Чтобы найти как можно больше ошибок, тестировщик моделирует возможные ситуации и сценарии поведения. Если этого не сделать, высока вероятность вместо качественного программного обеспечения (ПО) выдать абсолютно бесполезный продукт с кучей ошибок.
Какие бывают виды тестирования
Существует философия, что ошибки присутствуют всегда — в любой программе. Найти все невозможно, но если не удалось выявить ни одной — работа тестировщика провалена. Ошибки могут обнаружиться уже на этапе планирования системы или даже при составлении технического задания. Чтобы их минимизировать, код тестируется на разных стадиях.
Используют несколько видов тестирования:
Функциональное — определяет насколько ПО выполняет поставленные задачи, как реагирует на действия пользователя. Нефункциональное — выявляет производительность, надёжность.
Статистическое — обычно проводят в самом начале, ещё до запуска программы: изучают документацию и уже существующий код. Динамическое — следующий этап, программу запускают и тестируют «в деле».
Ручное — когда все тесты выполняются вручную, без автоматизации. Автоматическое — с применением программных средств.
Тестирование по принципу чёрного и белого ящика — в первом варианте работа ведётся без доступа к коду. Тестировщик проверяет производительность, функции, ошибки в интерфейсе. Во втором — код открыт. Выполняется проверка структуры и логики программы.
Что и когда тестировать
Уровень тестов определяется стадией разработки проекта.
Модульное тестирование проводится в самом начале, когда собраны только отдельные блоки кода. Под каждую функцию или метод пишутся тесты. Это самый первый уровень, который могут проводить и разработчики.
Затем выполняется интеграционное тестирование. Когда модули объединяются и образуют целостный компонент, тесты определяют, как он функционирует, проверяют на совместимость с операционной системой и аппаратной частью.
При системном тестировании выявляют, насколько программа соответствует требованиям, все ли запрашиваемые функции выполняются.
Приёмочное тестирование — завершающее. Проводится при передаче конечного продукта заказчику. Цель — показать, что ПО полностью соответствует требованиям и выполняет все поставленные задачи.
Как построен процесс тестирования
Есть три определяющих этапа, из которых складывается процесс. Уже на старте проекта тестировщики начинают работу.
Специалист разрабатывает детальный тест-план, в котором прописывает все работы, сроки, критерии начала и окончания тестирования. Тест-план учитывает, какое необходимо оборудование, какие есть риски и варианты их решения.
Следом тестировщик разрабатывает тест-кейсы — четкие описания действий для проверки каждой определенной функции программы. Тест-кейсы должны быть написаны так, чтобы их мог выполнить любой участник команды разработки.
После тестировщик уже решает: нужна ли будет автоматизация или можно обойтись ручными тестами.
Обновленная версия программы проходит дымовое или smoke тестирование. Это минимальный набор тестов на выявление явных ошибок. Если сборка не прошла проверку — программа возвращается на доработку.
Затем выполняется регрессионное тестирование — поиск багов в новых участках кода и в тех, где уже исправляли ошибки. Основная задача — получить подтверждение, что исправленные ошибки не повлияли на остальной код.
Результаты тестов направляются разработчикам для исправления багов. Когда все сценарии, прописанные в тест-плане отработаны и результаты соответствуют техническому заданию, тестирование завершается.
Как начать карьеру в IT
IT-специалисты — одни из самых востребованных на рынке труда: только на карьерном сайте HeadHunter размещено более 13 тыс. вакансий. Работать можно как в офисе, так и удаленно.
Начать обучение IT-профессии вы можете самостоятельно, используя информацию из сети, книги и обучающие ролики. Это долгий и трудозатратный путь без гарантий. Работодатели отдают предпочтение тем, кто уже имеет практический опыт.
Чтобы получить опыт и системные знания — пройдите бесплатное обучение программированию. Обучение проходит на базе топового IT-вуза — Томского государственного университета.
Выпускники наших IT-курсов получат до +8 баллов к ЕГЭ при поступлении в ТГУ на бакалавриат и специалитет любой программы.
На курсе 4 модуля, за каждый можно заработать 2 балла, за весь курс 8.
Вы сможете получить престижное образование в ТГУ и стать квалифицированным разработчиком. Выпускники ТГУ работают в Microsoft, Facebook, Google и Goodgame.
ТГУ входит в тройку лучших классических университетов страны по версии рейтинга RUR и в топ-300 мирового рейтинга QS на 2022 год.
Университет славится сильными факультетами программирования, например, Высшей IT-школой. В ней обучают по системе 2+2. Студенты 2 года изучают теорию программирования. А потом 2 года применяют знания на реальных задачах и получают ЗП на практике в IT-компаниях.
Учитесь IT бесплатно.
Обучение по программам
занимает не более 4 часов
в неделю
При подготовке материала использовались источники:
https://infourok.ru/konspekt-po-discipline-informacionnie-tehnologii-na-temu-osnovnie-ponyatiya-i-principi-testirovaniya-po-2881586.html
https://it-school.tgu-dpo.ru/blog/testirovanie-programm-chto-eto-takoe-i-zachem-nuzhno