четверг, 30 сентября 2010 г.

Основы тестирования. Фундаментальный процесс тестирования (часть I).

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

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

  • планирование и управление (planning and control)
  • анализ и проектирование (analysis and designing)
  • реализация и выполнение (implementation and execution)
  • оценка выходного критерия и отчетность (evaluating exit criteria and reporting)
  • завершение процесса тестирования (test closure activities)
В данном случае этапы размещены последовательно, но на практике они могут замещать друг друга или происходить одновременно.

Планирование и управление тестирования


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

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

Анализ и проектирование тестов 


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

Анализ и проектирование имеют следующие задачи:


  • просмотр базы тестирования (требования к проекту, архитектура, интерфейсы, проектирование)
  • оценивание тестируемости объектов
  • определение и приоритетность тест условий, основанных на анализе элементов тестирования, спецификации, поведении и структуре
  • проектирование и приоритетность тест кейсов
  • определение необходимых данных для поддержки тест условий и кейсов
  • настройка среды тестирования и определение необходимой инфраструктуры и инструментов

среда, 29 сентября 2010 г.

Основы тестирования. Главные принципы тестирования.

Принципы 


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

Принцип 1 - Тестирование показывает наличие ошибок 


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


Принцип 2 - Тестирование всех возможных входных данных и условий программы (exhaustive testing) невозможно


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

Принцип 3 - Начинать тестирование рано


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

Принцип 4 - Скопление ошибок


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

Принцип 5 - Парадокс тестирования (Pesticide paradox)


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

Принцип 6 - Тестирование контекстно-зависимо


Тестирование проходит по-разному в разных контекстах. Например, тестирование критических по безопасности программ (safety-critical software) на сайтах электронной коммерции отличается от тестирования этого программного обеспечения на других сайтах.

Принцип 7 - Отсутствие ошибок это заблуждение


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

понедельник, 27 сентября 2010 г.

Основы тестирования. Что такое тестирование?

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

Существуют этапы до и после запуска тестов: планирование и контроль (planning and control), выбор условий теста (choosing test conditions), составление тест кейсов и сверка результатов (designing test cases and checking results), оценка выходного критерия (evaluating exit criteria), запись всех результатов тестового процесса и тестируемой системы (reporting on the testing process and system under test) и завершение (finalizing or closure) (например, завершение фазы тестирования). Тестирование также включает в себя обзор документов (reviewing of documents), в том числе программный код, и статический анализ (static analysis).

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

Тестирование имеет следующие цели:
- найти дефекты в программе;
- подтвердить качество продукта и полученной информации;
- предотвратить баги.

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

Разные точки зрения в тестировании преследуют разные цели. Например, в тестировании в процессе разработки (development testing) (компонентное, интеграционное и системное тестирование) главной целью является создать как можно больше ошибочных вариантов работы программ, чтобы затем определить и исправить найденные баги. В приемочном тестировании (acceptance testing) цель - убедиться в том, что система работает правильно и соответствует спецификации. В некоторых случаях целью тестирования может быть оценка качества продукта (без исправления дефектов), чтобы заказчик знал о риске релиза продукта. Тестирование релиз продукта (maintenance testing) часто ставит задачей отсутствие багов в релиз системе, которая дорабатывается или изменяется. Во время операционного тестирования (operating testing) оцениваются такие системные характеристики как надежность (relaibility) и доступность (availability).
Отладка (debugging) и тестирование - разные понятия. Тестирование может показать сбои, причиной которых являются дефекты программы. Отладка это деятельность, в результате которой выявляется причина дефекта, исправляется код и проверяется, чтобы дефект был полностью устранен. Последующее регрессионное (confirmation testing) тестирование подтверждает, что действительно баг исправлен. Ответственность у этих задач разная, тестировщики тестируют, а программисты занимаются отладкой.

Основы тестирования. Зачем нужно тестирование? (часть IІ)

Тестирование и качество продукта 


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

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

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

Есть ли предел тестирования? 


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

пятница, 24 сентября 2010 г.

Основы тестирования. Зачем нужно тестирование? (часть І)

Работа с системами программного обеспечения


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

Причины программных дефектов


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

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

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


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









четверг, 23 сентября 2010 г.

Введение в учебную программу ISTQB Certification

Цель данной программы

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

Базовый уровень сертифицированного специалиста в области тестирования программного обеспечения (ПО)

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

Сдача экзамена


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