Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

03.11.13_1 / 7_Условия тестирования

.doc
Скачиваний:
109
Добавлен:
08.06.2015
Размер:
70.14 Кб
Скачать

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

В статье «Обеспечение качества. Контроль качества. Тестирование», было предложено, выработанное по результатам опроса, определение понятия тестирования программного обеспечения:

Software Testing (тестирование ПО) является одной из техник контроля качества и включает в себя активности по планированию работ (Test Management), проектированию тестов (Test Design), выполнению тестирования (Test Execution) и анализу полученных результатов (Test Analysis).

Предлагаю вашему вниманию исследование на тему «необходимые и достаточные условия для проведения тестирования».

Рассмотрим определения требуемых понятий:

  • Необходимыми условиями истинности утверждения А называются условия, без соблюдения которых А не может быть истинным.

  • Достаточными называются такие условия, при наличии (выполнении, соблюдении) которых утверждение А является истинным.

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

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

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

Для подтверждения, что тестирование произошло, нам необходим отчет о результатах. Как говорится: «есть отчет - есть тестирование, нет отчета – нет тестирования». Значит, для подтверждения того, что тестирование имело место быть, отчет о результатах тестирования должен быть сформирован.

Итого мы имеем следующие необходимые и достаточные условия для проведения тестирования:

Необходимые условия:

  1. Наличие объекта тестирования, доступного для проведения испытаний

  2. Наличие исполнителя(ей) (в зависимости от вида проводимых испытаний им может быть как человек, так и машина или комбинация человек+машина)

Достаточные условия:

  1. Наличие объекта тестирования, доступного для проведения испытаний

  2. Наличие исполнителя(ей) (в зависимости от вида деятельности на разных фазах им может быть как человек, так и машина или комбинация человек+машина)

  3. Наличие плана тестирования

  4. Наличие тест кейсов / тестов

  5. Наличие отчета, подтверждающего выполнение задач и достижение целей, по тестированию объекта

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

Разница Между QA, QC & Testing (начало пути)

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

Рассмотрим следующую схему, где структурно показано место тестирования (Testing), контроля качества (QC) и обеспечении качества (QA) в общем процессе Обеспечения Качества: Разница видна невооруженным взглядом. Постараюсь разъяснить ее подробнее: Testing (тестирование) - это самый низкий уровень - прохождение тест кейсов и локализация дефектов… В принципе на это способны люди и без специального образования… QC - следующий уровень - контроль качества продукта - анализ результатов тестирования и качества “билдов”, в процессе разработки. QA - решает более глобальные задачи. Анализируя работу тестировщиков и QC, в случае возникновения проблем, вовремя находит пути ее решения и не дает ей развиться и повлиять на качество продукта. В принципе все эти 3 роли можно объединить в одну - это не страшно для небольших проектов, но когда, либо кол-во маленьких проектов растет или мы имеем очень большой проект, то я бы предпочел выделить все 3 роли (тестеры, инженеры по контролю качества и обеспечению качества)… Также зачастую, роль QC могут играть грамотно построенные диаграммы: результатов тестирования, диаграммы открытых багов в разрезе выпущенных билдов и т.д., на основании которых, QA может делать самостоятельные оценки качества. Глава 1: Зачем нужен контролер? У сотрудника по работе возник вопрос: ЗАЧЕМ НУЖЕН КОНТРОЛЛЁР? Наш ответ Чемберлену: Может я конечно и передергиваю, но для всего должны быть специально обученные люди: тестировать должен тестер, контролировать должен контролер, а обеспечивать качество должен какой-нить, скажем, управленец. Вот вам простейший пример: есть в какой-нить конторе 3 команды тестирования. В каждой есть тестеры и лиды, и ими руководит QA менеджер. В этой структуре сразу выделяются 3 роли:

  1. тестер - тестер

  2. лид - QC

  3. менеджер - QA

А теперь допустим, что мы убрали лида, и что у нас таких команд было не 3, а допустим 10. Получаем, что 1 менеджер управляет и контролирует 10 проектов и 30 человек. А если каждая команда ведет не 1, а несколько проектов? Согласитесь - сложно… Вот поэтому я считаю, что QC никак нельзя исключать из этой цепочки. Глава 2. Что делает QA команда? На днях кастомер спросил: What is the responsibility of the QA group? Наш ответ Чемберлену: The main responsibility of QA team is to ensure that the released product satisfies the quality criteria described in test plan. To achieve this goal QA team performs the following types of activities:

  1. Quality Assurance

  2. Quality Control

  3. Testing

Quality Assurance It is not enough just to test application to release good quality product. It is extremely important to work by strictly organized processes. The main responsibility of QA is to ensure that all processes and procedures are being performed and followed in the correct way. Quality Control Each build passes BVT (Build Verification Tests) to ensure that build is valid for testing:

  • Core functionality is working and testable

  • New features are implemented correctly

  • Released build has better quality than the previous one

  • ...

Testing Test team performes different types of testing which are fully described in test plan Глава 3. Окончательный анализ И вот, наконец, нашлось время и мечта была реализована. Я приблизился на шаг ближе к истине. Теперь с гарантией в 90% могу сказать, что понятия QA, QC & Testing определены. Читайте следующий пост Обеспечение Качества, Контроль Качества. Тестирование

Комент

По моему, вы зря выделили Тестирование и QC и сузили определение QA. Анализ результатов тестирования это этап Тестирования ПО, а не выделенная активность. Тестирование, которое как вы пишите могут выполнять неквалифицированние работники не только проход по тестам, как мы с вами понимаем. Наверное, имеется в виду всё-таки "кликинг", или тупое прохождение тест-кейсов при black-box тестировании, а не тестирование как активность по проверке требований в самом широком смысле слова. QA не контроль Тестирования и Тестировщиков, а контроль выполнения процессов производства ПО: бизнес-анализа, проектирования, разработки как кодирования , тестирования (в том числе тест-дизайн, тест-анализ и тест-менеджмент), внедрения и эксплуатации. Про картинку: она по сути правильная, с учётом того что testing это часть QC в который также надо добавить test design, test analyze + test management, а не только test execution.

Обеспечение качества. Контроль качества. Тестирование

Рад, что наконец смогу поделиться со всеми, тем что давно уже изучаю, исследую и обдумываю. А именно это вопрос определений Обеспечение качества (Quality Assurance), Контроль качества (Quality Control), Тестирование ПО (Software Testing). Казалось бы все просто и ясно, но на самом деле эти понятия связаны между собой, переплетены и запутаны. И как оказывается, нет единого мнения о том, что они представляют из себя.

В течении недели я проводил небольшой опрос среди своих коллег, занимающих разные позиции в разных компаниях, связанных и не связанных с тестированием и обеспечением качества и разработкой ПО. Было опрошено 15 человек: 3 тест менеджера, 1 руководитель группы тестирования, 2 ведущих тестировщика, 6 тестировщиков, 2 разработчика, 1 человек не имеющий отношения к разработке и тестированию вообще. Цифра конечно не большая, но уже из нее видно, что более менее адекватное и правильное определение этих понятий имеют не более половины опрошенных, что само по себе ужасно. Получается что половина опрошенных не понимают что такое качество, и как его достигать, а так как в основном отвечали на вопросы люди отвечающие за качество, то получается, что половина из них не до конца понимает, чем занимается.

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

Не буду вдаваться в подробности темы обучения тестировщиков, так как она часто поднимается и уже, я думаю, что достаточно раскрыта. Речь идет о понятих Обеспечение качества (Quality Assurance), Контроль качества (Quality Control), Тестирование ПО (Software Testing).

До проведения опроса мое понимание данных определений было следущим: Тестирование (Testing) - совокупность действий проводимых над объектом тестирования, а именно применение различных видов тестирования, для получения результата о его соответствии поставленным требованиям. Контроль качества (Quality Control) - совокупность мероприятий проводимых в процессе разработки, для постоянного получения исчерпывающей информации о соответствии объекта тестирования поставленным требованиям. Сюда входят Test Management, Test Analysis, Test Design, Testing and etc. Обеспечение качества (Quality Assurance) - совокупность мероприятий, охватывающих все подразделения компании, предпринимаемых на разных стадиях разработки, для улучшения качества выпускаемого продукта. Сюда входят, оптимизация имеющихся процессов: бизнес-анализа, проектирования, разработки, тестирования и т.п.

Но, проанализировав все полученные ответы, а также посоветовавшись с авторитентными людьми, я пришел к выводу, что понятие тестирования, представленное выше, слишком узко и сводится к банальному исполнению тестов (Test Execution). Немного переосмыслив могу резюмировать следующее:

QA (Quality Assurance, Обеспечение качества) - совокупность мероприятий, охватывающих все технологические этапы разработки, выпуска и эксплуатации ПО информационных систем, предпринимаемых на разных стадиях жизненного цикла ПО, для обеспечения качества выпускаемого продукта. QC (Quality Control, Контроль качества) - совокупность действий проводимых над объектом тестирования в процессе разработки для получения информации об актуальном состоянии объекта тестирования в разрезах: "готовность Продукта к выпуску", "Соответствие зафиксированным требованиям", "Соответствие заявленному уровню качества продукта". Software Testing является одной из техник контроля качества и включает в себя активности по планированию работ (Test Management), проектированию тестов (Test Design), выполнению тестирования (Test Execution) и анализу полученных результатов (Test Analysis).

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

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

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

Оригиналы ответов на опрос о разнице между Quality Assurance, Quality Control и Testing, можно найти здесь