Система функционального тестирования. Тестирование программного продукта

Проведение
тестирования

Подготовка отчета

Анализ программного обеспечения и документации (BRD, FSD, User stories)

Подготовка отчета

Анализ программного обеспечения и документации (BRD, FSD, User stories)

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

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

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

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

Проведение итераций тестирования

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

Подготовка отчетной документации

По окончанию своей работы, мы создадим отчетную документацию для всех заинтересованных лиц, отразив в ней этапы проведенных работ и список найденных дефектов. Также мы дадим свои рекомендации по эксплуатации системы и предоставим набор артефактов, разработанных в процессе нашей работы.

Даже, если Вы настолько терпимы, что можете в течение получаса 18 раз перезапустить программу после сбоя и только после этого метнуть монитор точно в окно, Вы согласитесь с тем, что работа с данной программой была бы более комфортной, если бы она не «падала».

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

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

И это средство называется ТЕСТИРОВАНИЕ программного продукта .

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

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

Когда и кто?

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

Тем не менее, все разработчики сходятся во мнении, что тестирование программного продукта с точки зрения классификации по целям должно делиться на два класса:

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

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

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

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

Для проведения функционального тестирования персоналом отдела технического контроля разрабатывается документ программа и методика испытаний функционала приложения (ПМИ). Документ ПМИ содержит перечень сценариев тестирования программного продукта (test cases) с подробным описанием шагов. Каждый шаг сценария тестирования характеризуется действиями пользователя (специалиста по тестированию) и ожидаемыми результатами – ответной реакции программы на эти действия. Программа и методика испытаний обязана имитировать эксплуатацию программного продукта в реальном режиме. Это означает, что сценарий тестирования должен быть построен на основе анализа операций, которые будут выполнять будущие пользователи системы, а не быть искусственно составленной последовательностью понятных только разработчику манипуляций.

Обычно, функциональное тестирование проводится на двух уровнях:

  • Компонентное (модульное) тестирование. Тестирование отдельных компонентов программного продукта, сфокусированное на их специфике, назначении и функциональных особенностях.
  • Интеграционное тестирование. Данный вид тестирования проводится после компонентного тестирования и направлен на выявление дефектов взаимодействия различных подсистем на уровне потоков управления и обмена данными.

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

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

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

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

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

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

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

Тестирование производительности

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

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

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

Документация для тестирования

Как уже было указано выше, тестирование проводится в соответствии с программой и методикой испытаний, которая разрабатывается в соответствии с ГОСТ 34.603-92.

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

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

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

Если результат тестирования отрицательный, проводится устранение недостатков и повторное тестирование.

Исследовательское тестирование

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

Нагрузочное тестирование

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

1. Генерация тестовых сценариев

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

2. Разработка тестовой конфигурации

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

3. Проведение тестового испытания

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

Автоматизация тестирования

Основная особенность автоматизированного тестирования - возможность быстрого проведения регрессионных тестов. Главными плюсами автоматизации (по даннымотчета компании Worksoft) является увеличение эффективности персонала, более раннее обнаружение дефектов и более высокое качество бизнес-процессов. Эти преимущества компенсируются существенным недостатком: дороговизна, - из-за высокой цены на внедрение и поддержку автоматизации тестирования, около 50% компаний до сих пор применяют в основном ручное тестирование.

Тестирование юзабилити

Любое приложение создается для того, чтобы им воспользовались. Удобство использования - важный качественный показатель программы. IT индустрия знает множество примеров, когда проекты взлетали после удачного исправления удобства использования. Чем шире аудитория, тем важнее фактор юзабилити. Тестирование юзабилити включает в себя детальный анализ поведения пользователей. Для оценки эргономики важно иметь данные не только о скорости выполнения бизнес-задачи, но и об эмоциях пользователя, мимике лица, тембра голоса.

Конфигурационное тестирование

Конфигурационное тестирование дает уверенность, что приложение заработает на разных платформах, а значит у максимального числа пользователей. Для ВЕБ-приложений обычно выбирают тестирование на кросс-браузерность. Для Windows приложений - тестирование на различных операционных системах и битностях (x86, x64). Важной составляющей конфигурационного тестирования является тестовая инфраструктура: для проведения испытаний нужно постоянно поддерживать парк тестовых машин. Их число варьируется от 5 до нескольких десятков.

Интеграционное тестирование

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

Стресс тестирование

У любой системы есть предел нормального функционирования. При превышении предела система попадает в состояние стресса и значительно меняет свое поведение. Стресс тестирование проверяет работу приложения в условиях превышения предлов нормального функционирования. Особенно это важно для "критичных" программ: банковского ПО, программ авиационной отрасли, медицины. Стресс тестирование проводят не только на стадии разработки программного обеспечения, но и на протяжении всего цикла функционирования с целью получения и обработки данных поведения системы за долгий период времени.

В этой статье мы рассмотрим тестирование сайта (веб-приложения ) с помощью наборов тестов. Она довольно длинная, поэтому усаживайтесь по удобнее.

Основные виды тестирования сайта (веб-приложения)

  1. Тестирование функциональности;
  2. Тестирование удобства использования;
  3. Тестирование интерфейса;
  4. Тестирование совместимости;
  5. Тестирование производительности и скорости загрузки сайта;
  6. Тестирование безопасности.

1. Тестирование функциональности

Проверьте все ссылки

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

Проверьте формы

Формы используются для получения информации от пользователей и взаимодействия с ними.

Что нужно проверить в формах:

  • Правильность работы валидации в каждом поле формы.
  • Значения полей, используемые по умолчанию.
  • Опции для создания форм, удаления, просмотра и редактирования форм (если такие имеются ).

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

Есть различные виды валидации, например, проверка электронной почты, финансовой информации пользователя и т.д. Все поля с валидацией нужно протестировать в ручном или автоматическом режиме.

Тестирование файлов cookie

Cookie - это небольшие файлы, хранящиеся на компьютере пользователя. Чаще всего они используются для поддержки сеансов с авторизацией. Проверьте приложение, выключая и включая cookies в опциях браузера.

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

Проверьте HTML/CSS

Если вы оптимизируете сайт для поисковых систем, то валидация HTML/CSS особенно важна. Первым делом проверьте сайт на наличие синтаксических ошибок в HTML-коде . Проверьте, доступен ли сайт для различных поисковых систем.

Тестирование базы данных

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

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

При тестировании функциональности сайтов нужно проверить:

Ссылки

  1. Внутренние ссылки;
  2. Внешние ссылки;
  3. Ссылки на электронную почту;
  4. Битые ссылки.

Формы

  1. Валидация полей;
  2. Сообщения об ошибке при неверном вводе;
  3. Обязательные и необязательные к заполнению поля.

База данных

Следует проверить целостность базы данных.

2. Тестирование удобства использования (юзабилити сайта)

Тестирование юзабилити - это анализ взаимодействия пользователя и сайта, поиск ошибок и их устранение.

При этом проверяется:

  • Легкость обучения;
  • Навигация;
  • Субъективная удовлетворенность пользователей;
  • Общий вид.

Проверка навигации

Под навигацией подразумеваются средства для просмотра страниц пользователем. Это кнопки, блоки. А также то, как посетитель сайта использует ссылки на другие страницы.

Проверка юзабилити:

  • Сайт должен быть простым в использовании;
  • Инструкции должны быть очень четкими;
  • Проверьте, достигают ли предоставленные инструкции поставленной цели;
  • Главное меню должно быть доступно на каждой странице;
  • Главное меню должно быть построено в логической последовательности.

Проверка контента

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

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

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

Другая информация для пользователей

Варианты поиска, карта сайта, справочные материалы и т.д. Проверьте работу всех ссылок в карте сайта. Функция «Поиск по сайту » должна помогать легко находить нужный контент.

3. Тестирование интерфейса

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

Основные интерфейсы:

  • Интерфейсы веб-сервера и приложения.
  • Интерфейсы сервера базы данных и сервера приложения.

Если база данных или веб-сервер для какого-либо запроса, исходящего от сервера приложения, возвращает сообщение об ошибке, сервер приложения должен фиксировать его и отображать пользователю.

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

4. Проверка совместимости

Нужно проверить:

  • Совместимость с браузерами;
  • Совместимость с операционными системами;
  • Просмотр на мобильных устройствах;
  • Параметры печати.

Совместимость с браузерами

Работа некоторых веб-приложений зависит от типа браузера. Сайт должен быть совместим с различной конфигурацией и параметрами разнообразных браузеров.

Верстка сайта должна быть кроссбраузерной. При использовании Java-скриптов и AJAX , обеспечивающего функциональность пользовательского интерфейса, проверки безопасности или валидации создают большую нагрузку на систему.

Проверьте работу веб-приложения в браузерах Internet Explorer , Firefox , Netscape Navigator , AOL , Safari , Opera разных версий.

Совместимость с операционными системами

Некоторые функции веб-приложения могут быть несовместимы с определенными операционными системами. Не во всех из них поддерживаются новые технологии, используемые в веб-разработке. Поэтому проверьте работу приложения в Windows , Unix , MAC , Linux , Solaris и их различных версиях.

Просмотр на мобильных устройствах

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

Параметры печати

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

5. Тестирование производительности сайта

Тестирование производительности сайта или веб-приложения должно включать в себя:

  • Нагрузочное тестирование.
  • Стрессовое тестирование.

Проверьте производительность приложения на различной скорости интернета.

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

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

ab тестирование функциональности также включает в себя проверку на ошибки, связанные с оперативной памяти.

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

Скорость соединения

Сплит тестирование сайта при использовании различных вариантов интернет-соединения: через модем, ISDN и т.д.

Нагрузка

  1. Количество пользователей, одновременно посещающих сайт;
  2. Проверьте работу системы при пиковых нагрузках;
  3. Пользователь осуществляет доступ к большому количеству данных.

Стрессовая нагрузка

  • Производительность памяти, процессора, обработки файлов и т. д.
  • 6. Тестирование безопасности

    Ниже приведены некоторые наборы для тестирования веб-безопасности:

    • Проверка с помощью вставки внутреннего URL в адресную строку браузера без авторизации. Внутренние страницы при этом не должны открываться.
    • После авторизации с помощью логина и пароля, а также просмотра внутренних страниц попробуйте изменять URL . Например, вы проверяете какую-то статистику сайта под идентификатором ID= 123 . Попробуйте изменить ID URL на другой ID сайта, который не имеет отношения к авторизованному пользователю. В любом случае доступ этого пользователя к просмотру других показателей должен быть запрещен.
    • Попробуйте ввести неверные данные в поля формы для авторизации. Выясните, как система реагирует на ввод недопустимых данных.
    • Каталоги или файлы не должны быть доступны напрямую, если для них не предусмотрена возможность скачивания.
    • Проверьте работу капчи для защиты от автоматического входа с помощью программного кода.
    • Проверьте, используется ли в целях безопасности SSL . Если да, то должно отображаться сообщение при переходе пользователя с незащищенных HTTP-страниц к защищенным и наоборот.
    • Все операции, сообщения об ошибках, нарушения безопасности должны записываться в файл журнала на веб-сервере.

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

    • Сетевое сканирование;
    • Сканирование уязвимостей;
    • Возможность потенциального взлома паролей;
    • Обзор журнала;
    • Средства для проверки целостности;
    • Обнаружение вирусов.

    Моменты, которые следует учитывать при тестировании сайта

    Следует обратить внимание на взаимодействие HTML-страниц , интернет-подключение, брандмауэры, приложения, запускаемые на веб-страницах (апплеты, JavaScript , модульные приложения ), а также приложения, работающие на стороне сервера (скрипты CGI , интерфейсы баз данных, генераторы динамических веб-страниц ).

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

    Пример сценариев тестирования сайта

    Дополнительные факторы, которые следует учесть при тестировании сайта:

    • Какова ожидаемая нагрузка на сервер (например, количество запросов за единицу времени )?
    • Какая производительность требуется при различных видах нагрузки (время ответа веб-сервера, время отклика базы данных на запрос )?
    • Какие инструменты потребуются для тестирования производительности?
    • Кто является целевой аудиторией? Какие браузеры будут использовать пользователи? Какова скорость подключения? Предназначен ли сайт для использования внутри организации или будет доступен в интернете для широкого круга пользователей?
    • Какую производительность ожидает получить клиент (насколько быстро должны загружаться страницы, как должны себя вести анимации, апплеты, нагрузка и запуск )?
    • Будут ли разрешены простои сервера и техническое обслуживание, а также обновление контента? Если да, в каком количестве?
    • Какие средства безопасности требуются (файерволы, шифрование, пароли и т.д. ), и какую работу они будут выполнять? Как их можно проверять?
    • Насколько надежным должно быть интернет-соединение? Как оно будет влиять на резервное копирование системы?
    • Как будет выполняться управление обновлением контента сайта?
    • Требования для технического обслуживания, отслеживания и контроля содержимого веб-страниц, графических элементов, ссылок и т.д.
    • Какая спецификация HTML будет соблюдаться? Насколько точно?
    • Как будут проверяться и обновляться внутренние и внешние ссылки? Насколько часто?
    • Как будет происходить управление и проверка CGI апплетов, сценариев JavaScript , компонентов ActiveX и т.д.?
    • Максимальный размер веб-страницы не должен превышать 3-5 экранов, кроме случаев, когда контент сосредоточен на одной теме. Если размер веб-страницы больше, предоставьте внутренние ссылки для навигации по ней.
    • Разметка веб-страницы и элементы дизайна должны быть последовательными и логично связанными.
    • Отображение веб-страниц должно быть независимо от типа браузера.
    • На каждой странице следует указать ссылку для связи.

    Данная публикация представляет собой перевод статьи «Web Testing Complete Guide (Web Application Testing Tips and Scenarios) » , подготовленной дружной командой проекта

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

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

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

    1. Анализ исходных данных (технических требований) и согласование плана тестирования, тест-кейсов, сроков выполнения проекта, числа итераций;
    2. Проведение функционального тестирования по тестовым сценариям с занесением выявленных багов в систему багтрэкинга;
    3. Составление отчета о проведенном тестировании и предоставление рекомендаций по улучшению системы.

    Используемые инструменты:

    Для функционального тестирования мы используем инструменты TeamCity, Selenium, Web Driver, Firebug, XPather, IE Developer Toolbar, JUnit, JMeter, VMWare, TestLink и др., а также багтрэкинговые системы Bugzilla, Mantis, Jira, XBtrack.

    Мы проводим функциональное тестирование по следующим направлениям:

    1. Регрессионное тестирование

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

    2. Модульное тестирование

    Мы также тестируем на корректность отдельные компоненты (модули) программы.

    3. Интеграционное тестирование

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

    4. Дымовое тестирование

    Мы также проводим цикл тестов на проверку функциональности программного продукта после его сборки (добавления нового кода либо исправления ошибок в коде).
    В случае использования метода непрерывной интеграции (Continious Integration) сборка программного продукта производится ежедневно, поэтому проведение дымового тестирования позволяет вовремя выявить и устранить критичные ошибки, тем самым сэкономив время на тестирование сборки.

    5. Тестирование безопасности

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

    6. Системное тестирование

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

    7. Тестирование документации

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

    8. Тестирование мобильных приложений

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

    9. Тестирование процесса инсталляции

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

    10. Стресс-тестирование

    Мы также проводим тестирование на отказ системы и ее способность к восстановлению при возникновении сбоев.

    11. Юзабилити-тестирование

    Мы проверяем продукт на удобство и простоту использования путем имитации поведения пользователей либо посредством экспертной оценки результатов тестирования юзабилити продукта фокус группой.

    12. Обеспечение тестового покрытия

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

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

    Ребята, ключ к сердцу вашего клиента ничего ни что иное как “качество”. Неважно, какой сложности вы создаете сайт, качество является единственным фактором, который движет любым бизнесом, и ведет к главной цели - привлечение клиентов.

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

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

    Проверочный список для веб-разработчика

    1. Совершенство дизайна

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

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

    2. Управление контентом с высокими стандартами

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

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

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

    3. Креатив со здравым смыслом

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

    Помните, что первое впечатление – это всегда самое лучшее впечатление!

    Именно поэтому следует придерживаться следующих правил, в том, что касается содержимого веб-сайта:

    • Умное использование пространства
    • Достаточно пустого пространства для вашего контента, чтобы он «дышал»
    • Отсутствие неуместных изображений
    • Хорошая читабельность
    • Избегайте контрастных цветов и неподходящего размера шрифтов
    • Избегайте битых ссылок
    • Обязательная кросс-браузерная совместимость
    • Не забудьте изменить ваш Email ID с сайта
    • Год Copyright должен указывать год, когда сайт будет запущен


    4. Контент – это король сайта

    Как уже говорилось, веб-сайт – это платформа, которая представляет бизнес глобальной аудитории. Помните, что это не просто местные жители, которые посетят сайт, но и широкий круг людей из разных уголков мира. Будьте готовы столкнуться с ними и удовлетворить их потребности.

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

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

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

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

    • Избегайте орфографических и грамматических ошибок
    • Обеспечьте пробелы между словами
    • Необходимые пробелы после знаков препинания
    • Начинайте предложение с заглавной буквы
    • Проверьте, если есть какие-либо несоответствия
    • Избегайте неорганизованного макета контента


    5. Функциональность

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

    Как вы надеетесь, чтобы ваш заказчик привлек к себе внимание клиентов или потенциальных клиентов с таким сайтом? Все напрасно! А теперь перестаньте волноваться!

    Вот некоторые советы, чтобы помочь вам с тем, что касается его функциональности:

    • Обеспечьте надлежащую навигацию
    • Избегайте ошибок в рассылке сообщений по подписке, контактной информации и т. д.
    • Предоставьте комментарии к разделам входа на сайт и регистрации
    • Проверьте, если все линки функциональны
    • Дважды проверьте функции E-commerce


    6. Функциональность E-commerce

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

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

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

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

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

    Некоторые из них упомянуты ниже:

    • Удаление битых ссылок
    • Фокус на контенте
    • Оптимизация изображений
    • Оптимизация больших файлов
    • Использование чистого CSS
    • Оптимизация PHP кодов


    7. E-Mail

    Много вещей может сделать с помощью электронной почты. Это может варьироваться от простого предоставления ценной информации до огромных бизнес-операций. Итак, убедитесь, что отправка почты никогда не подведет. А также не забудьте о подтверждении адреса электронной почты.

    8. Призыв к действию (СТА)

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

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

    Если он может иметь контрастный цвет из цветовой схемы веб-страницы, и в то же время вписываться в общий дизайн, это будет более эффективно.

    Совершенство - это множество мелочей, которые сделаны правильно!

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

    • Предоставление стандартных сообщений о подтверждении
    • Обеспечение стиля и цветовых сочетаний подтверждение по почте, схожих с сайтом
    • Обязательный логотип компании
    • Название компании в адресе
    • Кросс-браузерная совместимость
    • Настройка страницы «Ошибка 404»
    • Выделение всех ссылок и кнопок

    И последнее, но не менее важное, что сделает ваш сайт дружественным для пользователей!

    Чеклист для клиентов

    Кто этот человек, для которого вы разрабатываете сайт? Это кто-то, кто собирается строить бизнес и делать продажи с помощью сайта, и очевидно, что это не конечный пользователь, но все же он так же клиент, для которого вы работаете.

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

    Чеклист для логотипа

    Логотип сайта так же важен, как и создание каких-либо других компонентов сайта. Поэтому, когда ваш клиент потребует сайт вместе с логотипом, вот некоторые вещи, над которыми вы должны поработать.

    • Связан ли логотип с бизнесом?
    • Вписывается ли логотип в сам сайт?
    • Останется ли он надолго в памяти аудитории?


    Чеклист для дизайна в целом

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

    • Формат Doc, которые вы используете на сайте
    • Набор символов, используемых на сайте
    • Ваш сайт реализует допустимый HTML или XHTML?
    • Вы реализовали действующий CSS для вашего сайта?
    • Вы реализовали какие-либо классы или идентификаторы, которые не важны для вашего сайта?
    • Какой код вы реализовали для вашего сайта?
    • Проверка на битые ссылки! Не игнорируйте это, вы, возможно, не знаете, но там может быть их много!
    • Скорость работы сайта с точки зрения каждой страницы?
    • Есть ли ошибки JavaScript на вашем сайте?

    Вот, пожалуй, и все! Надеемся, с помощью нашего списка вам удастся делать самые крутые сайты!