Уровень 1
Определение тестирования и качества
После обучения вы самостоятельно сможете готовиться, планировать и выполнять процесс тестирования, проводить подготовку тестовых сред и наборов тестовых данных, составлять описания дефектов и отчеты по проведенному тестированию.
Обеспечивать поддержкой процесс разработки ПО и управления проектом.
Эй, умники! А что насчет QC? Я все время слышу про QA и QC, но что такое QC и чем отличается "это" от QA ?
Quality Control (контроль качества) - это процесс нахождения ошибок в продукте с целью их последующего исправления. Задачей Quality Control является поддержка качества продукта в текущий момент времени. Quality Control ориентирован на продукт, разрабатываемый в данный момент
Quality Assurance включает в себя Quality Control наряду с другими процессами по улучшению качества работы компании.
Говоря другими словами, Quality Assurance гарантирует, что процесс поставлен правильно и дает предсказуемый результат, в то время как Quality Control гарантирует, что продукт удовлетворяет указанному набору требований.
Давайте разберемся: что же такое качество?
Я думаю, что качество - это отсутствие ошибок!
-
Автомобиль Мерседес признан качественным автомобилем, но речь не идёт об ошибках.
-
Смартфон Apple IPhone признан качественным телефоном. При этом его нельзя назвать "идеальным"
Тогда я думаю, что качество - это удовлетворённость заказчика. Съел ?!
Тогда скажу так: качество - это соответствие ожиданиям. Делает то, что должен, не делает того, чего не должен
Фактор качества - это требование к программе, которое обычно не описывается в договоре с заказчиком, но тем не менее является желательным требованием, повышающим качество программы.
R2D2, какие ты знаешь факторы качества?
Да! Те ужасы, что они творят, придают мне силы для борьбы. Теперь я хочу спросить - откуда берётся Качество?
Понятненько. Мы тут все время ходим вокруг да около. Но до сих пор не выяснили, что такое тестирование?
Несравненный Глен Маерс в своей книге "Надежность программного обеспечения" [М:Мир, 1980], дал определение:
Тестирование - это процесс выполнения программ с намерением найти ошибки. (классика)
Старый, значит опытный! Это все еще актуально!
Я тебя перепрограммирую в мойщика унитазов после таких определений!
Верно. Не спеши, подумай хорошенько. Нужно проверить все варианты верных и неверных операций. Пока надежда в основном на логику, но с постижением силы тестирования, ты начнешь видеть все тесты с одного взгляда.
Ура! Ты справился. Делаешь первые успехи. Ну как, почувствовал себя тестировщиком?
Успехов тебе! Что касается определения тестирования. Обрати внимание на это слово:
Тестирование - это процесс выполнения программ с намерением найти ошибки.
Из этого извлеки вывод, что поиск ошибок - не должен находиться в центре усилий тестировщиков.
Каждый тест, в данном случае - вариант вводимых в форму данных. Например ты вводишь цифру 3, она попадает в диапазон от 0 до 9. Тест пройден если форма выдала VALID. Затем вводишь 342, и форма не возвращает VALID. В таком случае тест также пройден. Смысл задания состоит в том, чтобы придумать такой минимальный набор тестов, который позволит убедиться на 100%, что форма работает правильно. И учесть все возможные пары: ввод - ответ, при этом не перебирая все цифры мира
Теперь понятнее. Я должен вводить разные данные пока не пойму, что во всех случаях получаю корректный ответ. Спасибо магистр!
Преимущества определения:
фокус процесса тестирования смещён в сторону проверки требований
И не забывай про здравый смысл! Главная аксиома тестировщика - все ошибаются. Программисты, аналитики, составители требований и документации. Всех нужно проверять!
Итак эволюция представлений о тестировании
-
Процесс выполнения программы с намерением найти ошибки. [Г.Майерс. Надежность программного обеспечения. М:Мир, 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, 2012]
Окей, мы выяснили наконец что такое тестирование. Я понял, что задачи тестирования намного шире, чем просто поиск дефектов! Но у меня накопились вопросы конкретного характера. На которые вся ваша теория конкретного ответа не дает.
Допустим, я нашёл определённое количество ошибок. Как понять - N найденных багов - это много или мало? Например 3 ошибки при тестировании предыдущей формы?
Вопрос из области философии тестирования. Почему наши пользователи находят ошибки, если мы потратили на тестирование столько времени?!
Мне все-таки хочется уточнить, ну нашел я свои N багов, допустим 82 бага на всем сайте. Я же могу спокойно сказать что работа окончена и я все протестировал?
Вопрос простой. Ты сам догадаешься, если минутку подумаешь.
Вот только подумать. Если пользователи все равно увидят баги и тестировщики не отловят их на 100%, зачем они вообще нужны тогда? Почему не поручить все пользователям?
Эх молодежь... Да никакие пользователи не захотят покупать программный продукт с ошибками. Давно прошла эра синих экранов в windows. Конкуренцию выигрывает самый качественный продукт, даже если он стоит дороже. Я для тебя спроектирую график стоимости исправления дефектов. Тогда ты поймешь, что тестировщики необходимы в самом начале создания ПО. Ведь с каждым этапом все больше людей будет задействовано в исправлении.
Пользуясь моментом, хотел бы преподнести вам важные факты о практике тестирования:
-
Тестирование программного обеспечения занимает от 30 до 50 процентов от всей стоимости разработки (классическая метрика)
-
Тестировать эффективно – значит решать проектные задачи в рамках процесса с применением интегрируемых решений
-
Тестирование - не только процесс контроля, но и мощный инструмент разработки, который позволяет достичь определённого уровня качества
Твоя задача - тестировать эффективно. Понятно?!
Будь вежлив R2D2. Перед тобой будущий тестировщик. Магистр им очень доволен. Итак, давай подведём итоги:
-
Основной целью процесса тестирования является достижение определённого уровня качества Продукта или Системы, которая находится в разработке
-
Процесс тестирования может не только выявлять и определять дефекты, но и предотвращать их
-
Тестирование становится процессом, эффективность которого кардинально влияет на стоимость Продукта и Сроки его выхода на рынок
Чтобы почувствовать знания тестирования, должен ты на практике их использовать. Знаю, что тяжело кажется тебе это, но если поверишь в себя, успех найдешь.
Протестируй сайт и найди максимальное количество дефектов. Отправить список этот мне через форму или на email
Слишком много умных слов. Вот расскажи лучше простыми словами что такое QA.
А я говорю, что нужна практика, только практика и еще раз практика. Без реального применения - все знания фуфло!
Я буду давать тебе много тестов, практических задач и просить магистра проверить все тщательно, тщательно!
Уважаемый студент! Наш курс позволит лучше понимать цели процесса тестирования ПО в разрезе существующих проектных ролей, связанных задач и соответствующих им артефактов.
Хороший Заказчик всегда недоволен
ISO cтандарт дает такое определение: "Качество программного обеспечения - это способность программного продукта при заданных условиях удовлетворять установленным или предполагаемым потребностям."
Но я согласен с тем, что отсутствие ошибок - это фактор качества. Кстати, давайте поговорим подробнее
о факторах качества
-
Надежность — работает ли приложение без сбоев, «зависания» или вызова исключений;
-
Сопровождаемость - насколько сложно изменить программу для удовлетворения новых требований. Это требование также указывает, что программа должна быть хорошо документирована, не слишком запутана и иметь резерв роста по использованию ресурсов (память, процессор);
-
Практичность - назначение ПО должно быть понятным из самой программы и документации;
-
Эффективность - насколько рационально программа относится к ресурсам (память, процессор) при выполнении своих задач;
-
Производительность — работает ли приложение с приемлемой скоростью при доступе к нему многих пользователей;
-
Мобильность - лёгкость в адаптации программы к другому окружению: другой архитектуре, платформе, операционной системе или её версии;
-
Функциональность — делает ли приложение то, что от него требуется;
-
Удобство использования: простота и удобство использования программы. Это требование относится прежде всего к интерфейсу пользователя;
-
Безопасность. Имеется в виду защищенность ПО от взлома.
Ёжичек! Сколько пунктов. Думаю мы встретимся с этими понятиями еще, когда дойдем до видов тестирования
-
Качество Продукта определяется только Качеством Процесса его разработки
-
Качество Процесса определяется только Уровнем Культуры разработки в Компании
-
Качество Продукта определяется используемой методологией и подходом к управлению процессов разработки / тестирования
Ты старая консервная банка! Даешь людям определение 1980 года. Тогда интернет был только по dial-up. Это бесполезное старье!
Это что-то вроде такого?
Я ничего не понял. Как проводить тесты? Просто какая-то форма ввода странная... Что я с ней должен делать?
Пожалуй тут я соглашусь с тобой. После такой-то работы. И дам обобщённое определение:
Тестирование – это процесс проверки соответствия заявленных к продукту требований и реально реализованной функциональности
Понял о чем шла речь в первом уроке? Серьезно?
Супер! Тогда вот тебе первый теоретический тест. Если тест будет пройден - запустится резервный генератор корабля. Энергии будет достаточно для перехода на другой уровень. Но знай, результаты тестов вносятся в рейтинг тестировщиков только у пользователей купивших подписку
Валидация в технике или тестировании - процесс приведения доказательств того, что требования конкретного внешнего пользователя продукта или системы удовлетворены.
Вижу, устали вы от изучений тонкостей тестирования. И начали оскорбления вместо мудрости применять
Нужно выполнить вам задание. Для сил духовных восстановления
Представьте себе форму валидации введённого значения.
Требование: если введено целочисленное значение от 0 до 9 (включительно), форма должна возвращать значение VALID
В дополнение этой темы я хочу привести определение придуманное Полом Йоргенсеном:
Тестирование сфокусировано на ошибках и сбоях. Тест - это выполнение действий над ПО с целью найти ошибки или продемонстрировать его работоспособность.
Уровень 2
Как говорит нам стандарт ISO 9000:2005
«Скоординированная деятельность по руководству и управлению организацией применительно к качеству», а в примечании сказано, что он «обычно включает разработку политики и целей в области качества, планирование качества, управление качеством, обеспечение качества и улучшение качества»
Отличный вопрос. Он волновал не одно поколение роботов. Поговаривают, что у робота R1F1 перегорели все транзисторы при поиске ответа. Подумай и ты.
Я дам тебе минуту подумать самому.
Хочется рассказать подробнее об ошибке. Ошибки и дефекты, из-за которых программа выдает неожиданное поведение и, как следствие - результат в тестировании называют багами.
Большинство багов возникают из-за ошибок, допущенных разработчиками программы в её исходном коде, логике поведения или дизайне. Все-все о багах Вы узнаете на 5 уровне QA Academy.
Итак, уточним, наконец, определение:
Тестирование – это процесс проверки соответствия заявленных к продукту требований и реально реализованной функциональности, осуществляемый путем наблюдения за его работой в искусственно созданных ситуациях и на ограниченном наборе тестов, выбранных определенным образом в соответствии с потребностями бизнес – задачи.
Это техническая страница.
This is technical page.