10 лучших инструментов для автоматизации тестирования по

Что почитать?

Тестирование, да и ИТ в целом, — бурно развивающаяся отрасль, поэтому часто можно встретить скептическое отношение к книгам. Слишком уж у них велик “цикл производства”. Писать, издавать, распространять — долго. Он растягивается более чем вдвое, если мы говорим о переводной литературе. Однако одну книгу наш отдел тестирования рекомендовал почти единогласно — “Тестирование Дот Ком” Романа Савина. Это самая известная книга по теме, которая просто и доступно вводит в курс основных понятий и процессов в ручном тестировании. И хотя она издана довольно давно, базовые знания, изложенные в ней, до сих пор актуальны. Пожалуй, ее читали процентов 80 всех тестировщиков в странах СНГ. Другие рекомендации легко найти в распространенных в интернете “списках N книг для начинающего тестировщика”. Но в целом наша команда тестирования считает, что базы из книги Романа Савина будет достаточно для запуска дальнейшего процесса самообразования.

Рекомендации

Как же начинающему инженеру подготовиться к тестированию мобильных приложений?


Мы рекомендуем пройти обучение основам тестирования программного обеспечения, поскольку базовые проверки при тестировании настольных и мобильных приложений будут совпадать.

Параллельно стоит уделять время самообразованию. Читайте материалы про мобильные технологии, особенности разных платформ, новинки устройств.

Кроме того, существуют различные гайдлайны, например, Human Interface Guideline от Apple, где содержатся требования к мобильным приложениям по различным аспектам. Изучайте их.

Однако учтите, что гайдлайны пишутся на английском языке, так что не забывайте про совершенствование своих навыков английского.

И еще один совет

Устанавливайте на свой смартфон различные приложения, обращайте внимание на их работу и на те дефекты, о которых вы бы сообщили разработчикам

И, конечно, пытайтесь получить бесценный опыт работы с реальными продуктами. Фриланс, краудтестинг или начальные позиции в ИТ-компаниях – вариантов много. Подбирайте лучший для вас и дерзайте!

Что еще можно использовать для улучшения кода?

Инструменты статического анализа – это очередной способ улучшить качество вашего кода. Они частично пересекаются с тестами по результату, но зачастую находят и то, что тесты не нашли, особенно при слабом покрытии. Их несомненный плюс – вы видите результат работы сразу же в IDE и получаете обратную связь мгновенно.

Это не значит, что их достаточно оставить только на IDE, я настоятельно рекомендую использовать их и на CI, чтобы видеть потенциальные ошибки и не вмержить такой код. Также рекомендую добавить в IDE и CI поддержку инструмента для проверки code style. Ошибки часто прячутся среди небрежно написанного кода, а такие инструменты позволяют находить такие участки.

Безопасность

Тестированием безопасности пренебрегать не стоит – каждый год эта проблема становится все более актуальной.

Вообще для тестирования безопасности – если для вашего проекта это действительно важно – я советую обращаться к специалистам; неспециалисты вряд ли сходу разберутся во всех тонкостях и смогут дать адекватную оценку. Вам нужно понимать, чем вы рискуете: если тестирование безопасности будет выполнено лишь поверхностно с заключением «ну вроде бы все хорошо», то опытному хакеру будет совсем легко найти какую-нибудь лазейку и получить доступ к закрытым данным или даже к самому сайту

Впрочем, услуги опытных специалистов стоят недешево, поэтому я подскажу вам, на каких ресурсах можно сделать аудит безопасности сайта:

  • http://www.acunetix.com/ — серьезный инструмент для тестирования безопасности вашего сайта;
  • http://sqlmap.org/ — абсолютно бесплатный OpenSource-проект, который можно использовать для тестирования всевозможных SQL-инъекций и других брешей в коде вашего сайта;
  • https://portswigger.net/burp/ — еще один сервис (но платный), предоставляющий услуги по тестированию безопасности вашего приложения;
  • http://find-xss.net/scanner/ — сканер, который ищет опасные и безопасные функции, описанные в разных файлах, и на их основе формирует отчет;
  • http://www.seegnal.ru/test/ — сервис позволяет быстро проверить сайт на наличие уязвимостей;
  • https://github.com/zaproxy/zaproxy – один из самых известных бесплатных инструментов для тестирования безопасности;
  • https://www.kali.org/ — прекрасная платформа для тестирования, которая имеет богатый инструментарий; однако подойдет только тем, кто обладает определенными знаниями и навыками программирования.

Важно: для того, чтобы получить наиболее общую картину, воспользуйтесь не одним, а несколькими сервисами. Самостоятельно вы можете также проверить, к примеру, загрузку файлов на ваш сайт (в том случае, если это предусмотрено) – формат файлов обязательно должен проверяться, иначе злоумышленник сможет загрузить на ваш сайт все, что угодно

Например, если загружать можно только картинки, то возможными доступными вариантами станут форматы jpg, jpeg, gif, png, svg и, при желании, некоторые другие (raw, tiff, cdr и т.д.)

Самостоятельно вы можете также проверить, к примеру, загрузку файлов на ваш сайт (в том случае, если это предусмотрено) – формат файлов обязательно должен проверяться, иначе злоумышленник сможет загрузить на ваш сайт все, что угодно. Например, если загружать можно только картинки, то возможными доступными вариантами станут форматы jpg, jpeg, gif, png, svg и, при желании, некоторые другие (raw, tiff, cdr и т.д.).

Также проверять уязвимости нужно не только на самом сайте, но и на сервере (для этого лучше нанять специалистов).

Как писать интеграционные тесты? Как тестировать базу?

Используйте фикстуры. Изучите популярные инструменты в вашем стеке. Не пишите большие универсальные паки фикстур, используйте минимальное их количество. Если вам нужно определенное состояние объектов для ваших тестов, потом не переиспользуйте такие фикстуры в других местах, где подобное состояние не требуется, иначе поддержка тестов усложнится: изменение их для одних тестов сломает другие и потребует дополнительного времени.

Существуют интеграционные тесты, которые проходят не полный цикл от запроса до ответа, а проверяется взаимодействие классов лишь внутри компонента. Если в них нет прямой работы с базой, то можно сделать набор данных и/или моков, который войдет на вход. В таких случаях можно избежать использования фикстур и сократить сложность и время выполнения таких интеграционных тестов до уровня модульных.

Какие виды тестирования ПО выделяют?

Чтобы понять, чем бы вы хотите заниматься, стоит узнать больше об основных видах тестирования. Все виды тестирования разделяют на две группы:

  • Функциональное (осуществляется проверка того, насколько хорошо система выполняет свои функции, если вообще выполняет).
  • Нефункциональное (тестируется в целом готовность системы к работе, осуществляется проверка всего, что может касаться пользовательского опыта, например, нагрузочное тестирование, тестирование безопасности).

Помимо видов, в тестировании выделяют еще и уровни, которые показывают над чем ведется работа: над системой в целом или только над одним определенным компонентом.

Всего существуют четыре таких уровня:

  • Модульное, или юнит-тестирование, – проверка работы отдельных частей системы.
  • Интеграционное – тестирование взаимодействия нескольких частей программного продукта.
  • Системное – проверка программного продукта на соответствие заявленным требованиям.
  • Приемочное – финальное тестирование на определение уровня готовности ПО к использованию.

Виды тестирования

Unit-тестирование (модульное тестирование) — данный вид подразумевает тестирование отдельных модулей приложения. Для получения максимального результата тестирование проводится одновременно с разработкой модулей.

Функциональное тестирование — цель данного тестирования состоит в том, чтобы убедиться в надлежащем функционировании объекта тестирования. Тестируется правильность навигации по объекту, а также ввод, обработка и вывод данных.


Тестирование БД — проверка работоспособности БД при нормальной работе приложения, в моменты перегрузок и многопользовательском режиме. 

Unit-тестирование

Для ООП обычная организация модульного тестирования заключается в тестировании методов каждого класса, затем класса каждого пакета и.т.д. Постепенно мы переходим к тестированию всего проекта, а предыдущие тесты носят вид регрессионных.

В выходную документацию данных тестов входят тестовые процедуры, входные данные, код, исполняющий тест, выходные данные. Далее представлен вид выходной документации. 

Функциональное тестирование

Функциональное тестирование объекта тестирования планируется и проводится на основе требований к тестированию, заданных на этапе определения требований. В качестве требований выступают бизнес-правила, диаграммы use-case, бизнес-функции, а также при наличии, диаграммы активности. Цель функциональных тестов состоит в том, чтобы проверить соответствие разработанных графических компонентов установленным требованиям.

Данный вид тестирования не может быть полностью автоматизирован. Следовательно, он подразделяется на:

Автоматизированное тестирование (будет использоваться в случае, где можно проверить выходную информацию).

Цель: протестировать ввод, обработку и вывод данных;

Ручное тестирование (в остальных случаях).

Цель: тестируется правильность выполнения пользовательских требований.

Необходимо исполнить (проиграть) каждый из use-case, используя как верные значения, так и заведомо ошибочные, для подтверждения правильного функционирования, по следующим критериям:

  • продукт адекватно реагирует на все вводимые данные (выводятся ожидаемые результаты в ответ на правильно вводимые данные);
  • продукт адекватно реагирует на неправильно вводимые данные (появляются соответствующие сообщения об ошибках).

Тестирование БД

Цель данного тестирования — убедиться в надежности методов доступа к базам данных, в их правильном исполнении, без нарушения целостности данных.

Необходимо последовательно использовать максимально возможное число обращений к базе данных. Используется подход, при котором тест составляется таким образом, чтобы «нагрузить» базу последовательностью, как верных значений, так и заведомо ошибочных. Определяется реакция БД на ввод данных, оцениваются временные интервалы их обработки.

Tags:

  • модели жизненного цикла
  • начинающему тестировщику
  • общие вопросы
  • теория тестирования

View the discussion thread. blog comments powered by DISQUS

Компьютерная академия «Шаг»

Обучение в Компьютерной Академии ШАГ базируется на трех обязательных составляющих эффективного образования:

  1. Актуальная программа
  2. Преподаватели-практики
  3. Дружеская атмосфера

Программа обучения

В основе программы лежат реальные требования IT-рынка. Методисты и преподаватели постоянно работают над её улучшением и обновлением, чтобы выпускники Академии ШАГ могли достойно показать себя перед работодателем.

    • Обзор IT бизнеса: технологии и термины;
    • Фазы процесса разработки программного обеспечения;
    • Методологии процесса разработки программного обеспечения;
    • Анализ существующих моделей и методов разработки;
    • Роль и место QA в процессе разработки программного обеспечения, тестирование и QA;
    • Введение в тестирование;
    • Цели и задачи тестировщика в команде;
    • Теория тестирования: Подход, технологии, уровни, процесс, компоненты;
    • Дефекты: типы и жизненный цикл дефектов;
    • Типы тестов. Организация тестов;
    • Тестирование сложных программных решений и комплексных систем;
    • Requirements, введение в bug tracking systems;
    • QA процесс: инициализация, цели, приоритеты, сроки, риски;
    • Usability. I18N/L10N. MLU;
    • Системы контроля версий: CVS, SVN, GIT, Mercurial;
    • Обзор методологии SCRUM;
    • Сертификация ISTQB;
    • Язык программирования Java. Переменные и типы данных. Логические операторы и операторы ветвления;
    • Введение в теорию баз данных. Запросы SELECT, INSERT, UPDATE, DELETE. Многотабличные базы данных;
    • Функции агрегирования и объединения;
    • Представления, хранимые процедуры, триггеры,пользовательские функции;
    • Автоматизация тестирования: цели, задачи, этапы, подходы к автоматизированному тестированию;
    • Введение в Web-технологии, структура HTML, форматирование текста с помощью HTML и CSS. XML, XPath и WebDriver;
    • Selenium Server. Создание framework для тестирования в Selenium;
    • Анализ продуктов для автоматизации тестирования, автоматизированное тестирование веб-сервисов и мобильных приложений;

Тестирование встроенного ПО и соблюдение стандартов в эру Agile

Соблюдение отраслевых стандартов – это не то, чем вы можете пренебречь или заняться позже; это неотъемлемая часть процесса разработки встроенного программного обеспечения (ПО). Для некоторых индустрий, — таких как авионика, автомобилестроение и здравоохранение, — строгое следование стандартам качества при разработке сложных и безотказных встроенных систем становится жизненно необходимым условием выпуска продукта на рынок. Традиционно, тестирование играет важную роль в разработке встраиваемых систем для регулируемых стандартами отраслей. Однако за последние годы устоявшиеся практики и процессы тестирования, их место и роль в подобных проектах значительно преобразились. Это резко изменило все правила игры, а когда правила игры меняются, необходимо меняться вместе с ними, чтобы выиграть.

В условиях постоянного развития новых, ультрасовременных технологий компаниям необходимо быстро предлагать рынку надежные, безопасные, простые в использовании и совместимые с другими системами продукты – просто чтобы не потеряться в быстро меняющемся технологическом мире. В такой ситуации традиционная каскадная модель, где процесс разработки ПО строго последователен и тестирование выполняется в самом его конце, уходит в прошлое. Большую популярность приобретают методы DevOps и Agile, поскольку они позволяют инженерам выполнять задачи, которые раньше следовали друг за другом, одновременно.

Исследование, проведенное Ауригой при поддержке независимой исследовательской компании LTM Research, показывает, что эта эволюция роли тестирования в цикле разработки ПО имеет огромное значение. При постоянном дефиците времени производители по-прежнему не могут пожертвовать качеством, надежностью и безопасностью своего продукта. К примеру, широко обсуждаемые сегодня беспилотные автомобили являются источником повышенной опасности, а значит, требуют неукоснительного соблюдения стандартов. Нельзя обойтись и без тестирования встроенного ПО, поскольку практически все решения в области IoT и Connectivity основаны на встроенных технологиях.

Все отрасли стремятся к инновациям, быстрому развитию и распараллеливанию процессов, и это делает тестирование встроенного ПО еще более важным. Здравоохранение, где стандарты традиционно очень высоки, отличает огромный спрос на сложные и сверхточные алгоритмы – такие как, например, алгоритм автоматического распознавания сердечных ритмов для инновационного дефибриллятора, над которым сейчас трудятся инженеры Ауриги. Новые интеллектуальные больничные системы, «умное» медицинское оборудование и носимые устройства, которые появляются почти каждый день, должны быть безопасными и надежными.

Говоря о безопасности, нельзя не упомянуть сферу финансов и растущий интерес к биометрии. Сканирование отпечатков пальцев и сетчатки глаз, распознавание голоса и лица – вот что будет использоваться для идентификации пользователей вместо обычных паролей, к которым мы так привыкли. Но прежде чем позволить встроенному ПО сканировать вашу сетчатку, производители должны убедиться, что оно соответствует всем стандартами и устойчиво к киберугрозам, которые сегодня становятся все масштабнее и изощреннее.

Ручное тестирование

Ручное тестирование включает в себя тестирование программного обеспечения вручную, то есть без использования какого-либо автоматизированного инструмента или любого сценария. В этом типе тестер берет на себя роль конечного пользователя и тестирует программное обеспечение для выявления любых непредвиденных действий или ошибок. Существуют различные этапы ручного тестирования, такие как единичное тестирование, интеграционное тестирование, тестирование системы и приемочные испытания пользователей.


Тестеры используют планы тестирования, тестовые примеры или тестовые сценарии для тестирования программного обеспечения для обеспечения полноты тестирования. Ручное тестирование также включает в себя разведочное тестирование, поскольку тестеры исследуют программное обеспечение для выявления ошибок в нем.

Стоит ли ездить на конференции?

Конференции — очень полезный элемент ИТ-мира. В первую очередь это площадка для обмена опытом. Здесь редко можно найти доклад, который ответит на сиюминутный частный вопрос в какой-то конкретной ситуации. Зато можно наткнуться на подходы к решению схожих проблем, которые вполне приложимы к вашей ситуации. На некоторых конференциях можно встретить “базовые” доклады, позволяющие почерпнуть начальные знания в новом для себя сегменте, например в автоматизации. Но чаще это, конечно, информация для более опытных специалистов. В целом конференция — это, скорее, место для нетворкинга и получения смежных знаний (рядом со своей текущей специализацией, например на другом языке). Стоит отметить, что большая часть вопросов, обсуждающихся на конференциях, есть и в интернете. Единичные мероприятия могут дать какой-то действительно неочевидный опыт. Многие доклады с конференций можно найти в записи онлайн. Главное не зацикливаться на их просмотре. Если смотреть много видео, но мало практиковаться, толкового саморазвития не выйдет. Во всем нужен баланс. Кстати, в отличие от просмотра докладов, личное присутствие на конференциях — это обычно еще и знакомства, общение с людьми, с которыми можно обсудить текущие проблемы и вопросы.

Предугадывание ошибок

Используя свои знания о системе, QA-специалист может «предугадать», при каких входных условиях есть риск ошибок

Для этого важно иметь опыт, хорошо знать продукт и уметь выстроить коммуникации с коллегами. . Например, в спецификации указано, что поле должно принимать код из четырех цифр

В числе возможных тестов:

Например, в спецификации указано, что поле должно принимать код из четырех цифр. В числе возможных тестов:

  • Что произойдет, если не ввести код?
  • Что произойдет, если не ввести спецсимволы?
  • Что произойдет, если ввести не цифры, а другие символы?
  • Что произойдет, если ввести не четыре цифры, а другое количество?

Преимущества:

1. Эта проверка эффективна в качестве дополнения к другим техникам. 2. Выявляет тестовые случаи, которые “никогда не должны случиться”. 

Недостатки: 1. Техника в значительной степени основана на интуиции. 2. Необходим опыт в тестировании подобных систем. 3. Малое покрытие тестами. 

Виды тестирования

Тестиспытание

Системное тестирование (system testing) — тест высокого уровня для проверки работы большего куска приложения или системы в целом.

Регрессионное тестирование (regression testing) — тестирование, которое используется для проверки того, не влияют ли новые фичи или исправленные баги на существующий функционал приложения и не появляются ли старые баги.

Функциональное тестирование (functional testing) — проверка соответствия части приложения требованиям, заявленным в спецификациях, юзерсторях и т. д.

Виды функционального тестирования:

  • тест «белого ящика» (white box) на соответствие части приложения требованиям со знанием внутренней реализации системы;
  • тест «черного ящика» (black box) на соответствие части приложения требованиям без знания внутренней реализации системы.

Тестирование производительности (performance testing) — вид тестов, которые пишутся для определения скорости отработки системы или ее части под определённой нагрузкой.

Нагрузочное тестирование (load testing) — тесты, предназначенные для проверки устойчивости системы при стандартных нагрузках и для нахождения максимально возможного пика, при котором приложение работает корректно.

Стресс-тестирование (stress testing) — вид тестирования, предназначенный для проверки работоспособности приложения при нестандартных нагрузках и для определения максимально возможного пика, при котором система не упадёт.

Тестирование безопасности (security testing) — тесты, используемые для проверки безопасности системы (от атак хакеров, вирусов, несанкционированного доступа к конфиденциальным данным и прочих радостей жизни).

Тестирование локализации (localization testing) — это тесты локализации для приложения.

Юзабилити тестирование (usability testing) — вид тестирования, направленный на проверку удобства использования, понятности, привлекательности и обучаемости для пользователей.

  1. Unit — модульные тесты, применяемые в различных слоях приложения, тестирующие наименьшую делимую логику приложения: например, класс, но чаще всего — метод. Эти тесты обычно стараются по максимуму изолировать от внешней логики, то есть создать иллюзию того, что остальная часть приложения работает в стандартном режиме.

    Данных тестов всегда должно быть много (больше, чем остальных видов), так как они тестируют маленькие кусочки и весьма легковесные, не кушающие много ресурсов (под ресурсами я имею виду оперативную память и время).

  2. Integration — интеграционное тестирование. Оно проверяет более крупные кусочки системы, то есть это либо объединение нескольких кусочков логики (несколько методов или классов), либо корректность работы с внешним компонентом. Этих тестов как правило меньше, чем Unit, так как они тяжеловеснее.

    Как пример интеграционных тестов можно рассмотреть соединение с базой данных и проверку правильной отработки методов, работающих с ней.

  3. UI — тесты, которые проверяют работу пользовательского интерфейса. Они затрагивают логику на всех уровнях приложения, из-за чего их еще называют сквозными. Их как правило в разы меньше, так они наиболее тяжеловесны и должны проверять самые необходимые (используемые) пути.

    На рисунке выше мы видим соотношение площадей разных частей треугольника: примерно такая же пропорция сохраняется в количестве этих тестов в реальной работе.

    Сегодня подробно рассмотрим самые используемые тесты — юнит-тесты, так как уметь ими пользоваться на базовом уровне должны все уважающие себя Java-разработчики.

Инструменты общего назначения

Платформы: macOS, WindowsСтоимость: $49.95 для индивидуальной лицензии (2 компьютера)Описание: многофункциональный скриншотер. Один из лучших в своей категории.Возможности:

  • Разные режимы захвата: весь экран, отдельное окно, преобразование картинки в текст, веб-страница, меню и так далее.
  • Снятие видео.
  • Собственный редактор со множеством встроенных инструментов для работы с изображением и видео: рисование, наложение разнообразных иконок, идентификация текста и картинок на изображении с возможностью их редактировать, автозамена элементов на изображении упрощенными объектами и многое другое.
  • Создание пресетов с возможностью установки шорткатов для разных режимов захвата и отправки файлов в какой-либо предзаданный сервис (Google Disc, Dropbox и так далее).
  • Мгновенная отправка файлов с мобильного устройства на компьютер через Wi-Fi (нужно скачивать приложение на девайс и подключаться к прокси).

Платформы: macOS, Windows, Web, Android, iOSСтоимость: 229 ₽ для macOS, для остальных платформ — бесплатноОписание: позволяет общаться между компьютером и всеми девайсами, подключенными к одному аккаунту (как правило, тестовой учетной записи).Возможности:

  • Отправка текста, ссылок, картинок и любых других файлов с компьютера на девайс и обратно.
  • Отправка SMS с компьютера.
  • Просмотр уведомлений девайса на компьютере.

Платформы: macOSСтоимость: £23 за текущую версию, £39 за обновление на все новые версииОписание: приложение для повышения продуктивности и автоматизации рабочих процессов. Представляет собой окно поиска на подобии Spotlight, только на стероидах c более расширенным функционалом. Умеет практически все.Возможности:

  • Создание собственных workflow с использованием встроенных инструментов и языков программирования: начиная с открытия ссылок в браузере, заканчивая сложными интеграционными сценариями.
  • Поиск по файловой системой macOS с гибкой настройкой.
  • Поиск по закладкам браузера.
  • Расширенный буфер обмена.
  • Создание текстовых шаблонов.
  • Выполнение системных команд.
  • Удаленное управление macOS с iPhone при помощи приложения Alfred Remote.

Платформы: macOS, Windows, iOSСтоимость: $3.33 за год персонального использования, $7.96 за год использования для командыОписание: инструмент для создания шаблонов и их вставки.Возможности:

  • Создание текстовых шаблонов.
  • Создание шаблонов с использованием форматированного текста и картинок.
  • Создание шаблонов с использованием скриптовых языков (Shell Script, AppleScript, JavaScript).

Платформы: macOS, iOSОписание: браузер документации API и инструмент для создания фрагментов кода.Возможности:

  • Формирование собственной библиотеки из структурированных наборов документации для разных инструментов (языки программирования, фреймворки, различные системы) и чит-листов (команды, сочетания клавиш) с возможностью просмотра и поиска.
  • Создание собственных наборов документации и чит-листов.
  • Создание фрагментов кода для разных представлений данных.
  • Большое количество интеграций с другими инструментами.

Факультет тестирования ПО в онлайн-университете GeekBrains

Сайт – geekbrains.ru Длительность обучения – 12 месяцев. Стоимость обучения – 7 200 руб. в месяц.

По завершении обучения выпускник сможет работать тестировщиком ПО, мобильных приложений, аналитиком, QA-инженером, инженером по автоматизации тестирования приложений и программного обеспечения.

Программа курса:

  • основы профессии, организация процесса тестирования и планирование рабочего времени;
  • документирование багов, критерии качества ПО, тестирование пользовательского интерфейса;
  • рабочая станция Linux: установка, управление, инструменты, настройка;
  • основы HTML/CSS, JS для тестировщика, браузерные движки, инструменты разработчика Google Chrome, тестирование web-приложений и удобства интерфейса для пользователя;
  • введение в объектно-ориентированное программирование JS и автоматизация процесса тестирования;
  • основы архитектуры, типы и виды мобильных приложений;
  • эмуляторы устройств, тестовые стенды, мобильные фермы, Android Studio;
  • тестирование mobile-приложений в автоматическом режиме;
  • компьютерные сети;
  • работа в сервисе Git.

Важно! В последней четверти обучения участников курса ждет стажировка в течение месяца. В этот период участники группы в составе команды проведут несколько реальных тестирований софта, web и мобильных приложений с ежедневными отчетами и обсуждениями.. Навыки, которыми обладает выпускник GeekBrains:

Навыки, которыми обладает выпускник GeekBrains:

  • планирование и оптимизация технологии тестирования;
  • написание тест-кейсов и чек-листов;
  • проведение всех видов профессионального тестирования;
  • работа с различными системами ошибок, блоками управления целями, системами тест-администрирования;
  • составление правильных и актуальных SQL-запросов, работа с кодом в Git;
  • Java Script и основы ООП;
  • автоматизация процесса тестирования, в том числе для mobile-приложений.

В качестве бонуса студенты получат доступ к курсу «Английский для тестировщиков». Успешные выпускники получают предложения о работе от компаний-партнеров и Mail.ru Group.

Жизненный цикл продукта и тестирование

Все чаще в наше время используются итеративные процессы разработки ПО, в частности, технология RUP — Rational Unified Process (Рис. 1). При использовании такого подхода тестирование перестает быть процессом «на отшибе», который запускается после того, как программисты написали весь необходимый код. Работа над тестами начинается с самого начального этапа выявления требований к будущему продукту и тесно интегрируется с текущими задачами. И это предъявляет новые требования к тестировщикам. Их роль не сводится просто к выявлению ошибок как можно полнее и как можно раньше. Они должны участвовать в общем процессе выявления и устранения наиболее существенных рисков проекта. Для этого на каждую итерацию определяется цель тестирования и методы ее достижения. А в конце каждой итерации определяется, насколько эта цель достигнута, нужны ли дополнительные испытания, и не нужно ли изменить принципы и инструменты проведения тестов. В свою очередь, каждый обнаруженный дефект должен пройти через свой собственный жизненный цикл.

Рис. 1. Жизненный цикл продукта по RUP

Тестирование обычно проводится циклами, каждый из которых имеет конкретный список задач и целей. Цикл тестирования может совпадать с итерацией или соответствовать ее определенной части. Как правило, цикл тестирования проводится для конкретной сборки системы.

Жизненный цикл программного продукта состоит из серии относительно коротких итераций (Рис. 2). Итерация — это законченный цикл разработки, приводящий к выпуску конечного продукта или некоторой его сокращенной версии, которая расширяется от итерации к итерации, чтобы, в конце концов, стать законченной системой.

Каждая итерация включает, как правило, задачи планирования работ, анализа, проектирования, реализации, тестирования и оценки достигнутых результатов. Однако соотношения этих задач может существенно меняться. В соответствие с соотношением различных задач в итерации они группируются в фазы

В первой фазе — Начало — основное внимание уделяется задачам анализа. В итерациях второй фазы — Разработка — основное внимание уделяется проектированию и опробованию ключевых проектных решений

В третьей фазе — Построение — наиболее велика доля задач разработки и тестирования. А в последней фазе — Передача — решаются в наибольшей мере задачи тестирования и передачи системы Заказчику.

Рис. 2. Итерации жизненного цикла программного продукта

Каждая фаза имеет свои специфические цели в жизненном цикле продукта и считается выполненной, когда эти цели достигнуты. Все итерации, кроме, может быть, итераций фазы Начало, завершаются созданием функционирующей версии разрабатываемой системы.


С этим читают