top of page

Уровень 1

Определение тестирования и качества

Galaxy QA Academy

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

Мануальное тестирование ПО

А я говорю, что нужна практика, только практика и еще раз практика. Без реального применения - все знания фуфло!

Я буду давать тебе много тестов, практических задач и просить магистра проверить все тщательно, тщательно!

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

QA обучение

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

Как стать тестировщиком

Слишком много умных слов. Вот расскажи лучше простыми словами что такое QA.

Как говорит нам  стандарт ISO 9000:2005

 

«Скоординированная деятельность по руководству и управлению организацией применительно к качеству», а в примечании сказано, что он «обычно включает разработку политики и целей в области качества, планирование качества, управление качеством, обеспечение качества и улучшение качества»

Эй, умники! А что насчет QC? Я все время слышу про QA и QC, но что такое QC и чем отличается "это" от QA ?

Обучение QA

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

QA/QC

Quality Assurance включает в себя Quality Control наряду с другими процессами по улучшению качества работы компании.

 

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

Давайте разберемся: что же такое качество?

Качество
Чубака о тестировании ПО

Я думаю, что качество - это отсутствие ошибок!

  • Автомобиль Мерседес признан качественным автомобилем, но речь не идёт об ошибках.

  • Смартфон Apple IPhone признан качественным телефоном. При этом его нельзя назвать "идеальным"

Как стать тестировщиком?

Хороший Заказчик всегда недоволен 

Троль тестировщик

Тогда я думаю, что качество - это удовлетворённость заказчика. Съел ?!

Тогда скажу так: качество - это соответствие ожиданиям. Делает то, что должен, не делает того, чего не должен

Обучение тестированию с нуля

ISO cтандарт дает такое определение: "Качество программного обеспечения - это способность программного продукта при заданных условиях удовлетворять установленным или предполагаемым потребностям."

Но я согласен с тем, что отсутствие ошибок - это фактор качества. Кстати, давайте поговорим подробнее

о факторах качества

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

Факторы качества

R2D2, какие ты знаешь факторы качества?

  • Надежность — работает ли приложение без сбоев, «зависания» или вызова исключений;

 

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

 

  • Практичность - назначение ПО должно быть понятным из самой программы и документации;

 

  • Эффективность -  насколько рационально программа относится к ресурсам (память, процессор) при выполнении своих задач;

 

  • Производительность — работает ли приложение с приемлемой скоростью при доступе к нему многих пользователей;

 

  • Мобильность - лёгкость в адаптации программы к другому окружению: другой архитектуре, платформе, операционной системе или её версии;

 

  • Функциональность — делает ли приложение то, что от него требуется;

 

  • Удобство использования: простота и удобство использования программы. Это требование относится прежде всего к интерфейсу пользователя;

 

  • Безопасность. Имеется в виду защищенность ПО от взлома.

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

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

Да! Те ужасы, что они творят, придают мне силы для борьбы. Теперь я хочу спросить - откуда берётся Качество?

Как стать тестировщиком?

Ёжичек! Сколько пунктов. Думаю мы встретимся с этими понятиями еще, когда дойдем до видов тестирования

  • Качество Продукта определяется только Качеством Процесса его разработки

 

  • Качество Процесса определяется только Уровнем Культуры разработки в Компании

 

  • Качество Продукта определяется используемой методологией и подходом к управлению процессов разработки / тестирования

Качество ПО

Понятненько. Мы тут все время ходим вокруг да около. Но до сих пор не выяснили, что такое тестирование?

Несравненный Глен Маерс в своей книге "Надежность программного обеспечения" [М:Мир, 1980], дал определение:

 

Тестирование - это процесс выполнения программ с намерением найти ошибки. (классика)

Определение тестирования

Ты старая консервная банка! Даешь людям определение 1980 года. Тогда интернет был только по dial-up. Это бесполезное старье!

Старый, значит опытный! Это все еще актуально!

Я тебя перепрограммирую в мойщика унитазов после таких определений!

Практическое задание
Тест дизайн

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

Представьте себе форму валидации введённого значения.

Требование к работе формы: если введено целочисленное значение от 0 до 9 (включительно), форма должна возвращать значение VALID

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

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

Пример тестирования ПО
Протестировать форму

Это что-то вроде такого?

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

Обьясните как тестировать

Я ничего не понял. Как проводить тесты? Эта форма такая странная и не понятная. Что я с ней должен делать?

Каждый тест, в данном случае - вариант вводимых в форму данных. Например ты вводишь цифру 3, она попадает в диапазон от 0 до 9. Тест пройден если форма выдала VALID. Затем вводишь 342, и форма не возвращает INVALID. В таком случае тест также пройден. Смысл задания состоит в том, чтобы придумать такой минимальный набор тестов, который позволит убедиться на 100%, что форма работает правильно. И учесть все возможные пары: ввод - ответ, при этом не перебирая все цифры мира

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

Ура! Ты справился. Делаешь первые успехи. Ну как, почувствовал себя тестировщиком?

Успехов тебе! Что касается определения тестирования. Обрати внимание на это слово: 

Тестирование - это процесс выполнения программ с намерением найти ошибки.

 

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

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

Большинство багов возникают из-за ошибок, допущенных разработчиками программы в её исходном коде, логике поведения или дизайне. Все-все о багах Вы узнаете на 5 уровне QA Academy.

Полное определение тестирования программ

В дополнение этой темы я хочу привести определение придуманное Полом Йоргенсеном:

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

Пожалуй тут я соглашусь с тобой. После такой-то работы. И дам обобщённое определение:

Тестирование – это процесс проверки соответствия заявленных к продукту требований и реально реализованной функциональности

Что такое тестирование?

Преимущества определения:

фокус процесса тестирования смещён в сторону проверки требований

Итак, уточним, наконец, определение:

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

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

       Итак эволюция представлений о тестировании

 

  • Процесс выполнения программы с намерением найти ошибки. [Г.Майерс. Надежность программного обеспечения. М:Мир, 1980]

 

  • Процесс наблюдения за выполнением программы в специальных условиях и вынесения на этой основе оценки каких-либо ее аспектов. [ANSI/IEEE standard 610.12-1990: Glossary of SE Terminology. NY:IEEE, 1987]

 

  • Это не действие. Это интеллектуальная дисциплина, имеющая целью получение надежного программного обеспечения без излишних усилий на его проверку. [B. Beizer. Software Testing Techniques, Second Edition. NY:van Nostrand Reinhold, 1990]

  • Техническое исследование программы для получения информации о ее качестве с точки зрения определенного круга заинтересованных лиц. [С. Kaner, 1999]

 

  • Проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранном определенным образом. [IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004]

2004

1999

1990

1987

1980

Вопросы

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

Задачи тестировщика

Допустим, я нашёл определённое количество ошибок. Как понять - N найденных багов - это много или мало? Например 3 ошибки при тестировании предыдущей формы?

Вопросы по тестированию

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

Подумал? Теперь сверься с ответом.

Очень важно подумать самому пред тем как узнать, что думает R2D2 по этому поводу.

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

Ответ появится через 60 секунд

Вопрос из области философии тестирования. Почему наши пользователи находят ошибки, если мы потратили на тестирование столько времени?!

Зачем тестирование

Я дам тебе минуту подумать самому.  

Затем ты можешь узнать мое мнение.

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

Ответ появится через ...

Мне все-таки хочется уточнить, ну нашел я свои N багов, допустим 82 бага на всем сайте. Я же могу спокойно сказать что работа окончена и я все протестировал? 

Ответы по тестированию

Вопрос простой. Ты сам догадаешься, если минутку подумаешь. 

Сверимся с ответами

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

Ответ появится через ...

Вот только подумать. Если пользователи все равно увидят баги и тестировщики не отловят их на 100%, зачем они вообще нужны тогда? Почему не поручить все пользователям?

Стоимость ошибки

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

Тестирование
Стоимость исправления багов

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

 

  • Тестирование программного обеспечения занимает от 30 до 50 процентов от всей стоимости разработки (классическая метрика)

 

  • Тестировать эффективно – значит решать проектные задачи  в рамках процесса с применением интегрируемых решений

 

  • Тестирование - не только процесс контроля, но и мощный инструмент разработки, который позволяет достичь определённого уровня качества

Баг. Как находить баги. Стоимость бага

Твоя задача - тестировать эффективно. Понятно?!

Будь вежлив R2D2. Перед тобой будущий тестировщик. Магистр им очень доволен. Итак, давай подведём итоги:

 

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

 

  • Процесс тестирования может не только выявлять и определять дефекты, но и предотвращать их

 

  • Тестирование становится процессом, эффективность которого кардинально влияет на стоимость Продукта и Сроки его выхода на рынок

Задание уровня
Тестирование по тестированию ПО

Понял о чем шла речь в первом уроке? Серьезно?

Супер! Тогда вот тебе первый теоретический тест. Если тест будет пройден - запустится резервный генератор корабля. Энергии будет достаточно для перехода на другой уровень. Но знай, результаты тестов вносятся в рейтинг тестировщиков только у пользователей купивших подписку. Учти, что в системе тестирования тебе прийдется зарегистрироваться

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

Протестируй сайт и найди максимальное количество дефектов. Отправить список этот мне через форму или на email

Преподаватель по тестированию

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

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

Уровень 2

Пример тестирования ПО
bottom of page