Уровень 1

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

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

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

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

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

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

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

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

 

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

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

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

 

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

1987

1980

 

1990

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

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

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

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

 

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

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

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

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

 
 

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

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

 

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

 

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

 

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

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

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

 

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

 

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

 

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

 

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

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

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

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

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

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

Уровень 2

  • Facebook Social Icon
  • Instagram
  • Vkontakte Social Icon
  • YouTube Social  Icon
  • mail_icon

© 2017 Galaxy QA Academy. All rights are protected.