Что пишут в блогах

Подписаться

Очные тренинги

Все очные тренинги
Оставь заявку на тренинг в своем городе

Онлайн-тренинги

  • Все онлайн-курсы
  •  

    http://software-testing.ru/about/authors/9-barancev

    Разделы портала

    VIP-вакансии

    Наши партнёры

    www.it4business.ru

    UML2.ru

    SysIQ Inc.

    Препарируем RUP — задачи и роли в тестировании
    20.10.2008 10:36

    Автор: Панкратов Вячеслав

    Классификация задач и ролей в тестировании, основанная на методологии RUP.

    Вокруг ролей и задач, связанных с тестированием и обеспечением качества, сложилось несколько противоположных идейных течений, которые усердно культивируются носителями этих идей. Точки зрения во многом противоположны, во многом противоречивы. Тестирование видится с одной стороны каким-то полумеханическим процессом, который не требует особенной квалификации: тестировщика видят эдаким «кликальщиком», который просто гоняет приложение, ждёт пока оно «упадёт», потом радостно сообщает об ошибке и продолжает в том же духе. В последнее время, надо отдать должное, появляются материалы о тестировании и качестве, выходят в свет книги, развиваются сайты посвящённые этому направлению это направление мысли постепенно сходит на «нет». С другой точки зрения, которую, наверное, культивируют отчасти и сами тестировщики (в самом широком смысле этого слова), тестирование это процесс, покрытый множеством неопределённостей, трудно формализируемый и поддающийся оценкам. Если же к тестированию добавить автоматизацию, которая по оценкам тех, кто внедрял инструменты и решения для тестирования, требует больших (по сравнению с ручным тестированием) трудозатрат и говорить об оценке качества продукта, направление тестирования получается совсем непрозрачным для стороннего наблюдателя, а порой и для самих тестировщиков и QA.

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

    Попробуем определиться и понять, какие же роли и задачи решаются направлением тестирования. Чтобы не изобретать велосипед, я предлагаю взять за основу существующую методологию RUP (Rational Unified Process), как наиболее общий и полный вариант.

     

    Аналогии

    Есть замечательная реклама: Как делают автомобили SAAB? Берут самолёт и отсекают всё лишнее, что помогает ему взлетать.

    Попробуем взять шаблон RUP-а для MTP (Master Test Plan) и отсечь всё лишнее, что не касается темы данной статьи. Самое интересное, что отсечь пришлось практически весь шаблон, оставив только одно приложение и табличку, для расчета ресурсов. Добавим перевод, вырежем лишнее.

    Деятельность/Задачи тестирования (Testing Activities)

    Рассмотрим более подробно существующие активности/задачи связанные с тестированием:

    • Планирование тестов (Plan Test)
      • Определение требований к тестам (identify requirements for test)
      • Оценка рисков (assess risk)
      • Разработка стратегии тестирования (develop test strategy)
      • Определение ресурсов (identify test resources)
      • Создание расписания/последовательностей (create schedule)
      • Разработка Плана тестирования (generate Test Plan)
    • Дизайн тестов (Design Test)
      • Анализ объёма работ (prepare workload analysis)
      • Определение и описание тестовых случаев (identify and describe test cases)
      • Определение и структурирование тестовых процедур (identify and structure test procedures)
      • Обзор и оценка тестового покрытия (review and assess test coverage)
    • Разработка тестов (Implement Test)
      • Запись или программирование тестовых скриптов (record or program test scripts)
      • Определение тесто-критичной функциональности в Дизайне и Модели реализации (identify test-specific functionality in the Design and Implementation Model)
      • Создание/подготовка внешних наборов данных (establish external data sets)
    • Выполнение тестов (Execute Test)
      • Выполнение тестовых процедур (execute Test procedures)
      • Оценка выполнения тестов (evaluate execution of Test)
      • Восстановление после сбойных тестов (recover from halted Test)
      • Проверка результатов (verify the results)
      • Исследование неожиданных результатов (investigate unexpected results)
      • Запись ошибок (log defects)
    • Оценка тестов (Evaluate Test)
      • Оценка покрытия тестовыми случаями (evaluate Test-case coverage)
      • Оценка покрытия кода (evaluate code coverage)
      • Анализ дефектов (analyze defects)
      • Определение критериев завершения и успешности тестирования (determine if Test Completion Criteria and Success Criteria have been achieved

    Роли в тестировании (roles)

    Роль Описание

    Тест-менеджер, менеджер проекта по тестированию

    (Test Manager, Test Project Manager)

    Производит управленческий контроль (management oversight)

    Ответственность:

    • Обеспечивает техническое направление
    • Получает необходимые ресурсы
    • Обеспечивает управленческую отчётность

    Тест дизайнер

    (Test Designer)

    Определяет, приоритизирует и обеспечивает разработку тестовых случаев

    Ответственность:

    • Разрабатывает план тестирования
    • Разрабатывает модель тестирования
    • Оценивает эффективность тестирования

    Тестировщик, Инженер по тестированию

    (Tester)

    Выполняет тесты

    Ответственность:

    • Выполняет тесты
    • Фиксирует результаты
    • Восстанавливает тесты и систему после сбоев
    • Документирует запросы на изменение

    Администратор тестовой системы, приложений поддерживающих жизненный цикл тестирования

    (Test System Administrator)

    Обеспечивает управление и поддержку тестовых окружений и данных

    Ответственность:

    • Администрирует систему управления тестированием
    • Инсталлирует и управляет доступом к тестовым системам

    Администратор баз данных, менеджер баз данных

    (Database Administrator, Database Manager)

    Обеспечивает управление и поддержку тестовых данных (баз данных)

    Ответственность:

    • Администрирует тестовые данные (базы данных)

    Тест-дизайнер

    (Designer)

    Устанавливает и определяет операции, атрибуты и связи тестовых классов

    Ответственность:

    • Устанавливает и определяет тестовые классы
    • Устанавливает и определяет тестовые наборы (пакеты)

    Разработчик тестов

    (Implementer)

    Разрабатывает юнит тесты (unit tests), тестовые классы и тестовые наборы (пакеты)

    Ответственность:

    • Создаёт тестовые классы, собирает тестовые пакеты и интегрирует их с тестовую модел
     

    Как видите, при ближайшем рассмотрении, оказывается, что тестирование вполне определённый процесс с выделенными ролями и зоной ответственности для различных игроков проекта. Порядок перечисления задачи определяет обычный (полный) цикл проведения тестирования. Такой цикл может применятся, как для проектов ориентированных на длительные итерации, так и для «быстрых» проектов ведущихся по эволюционным методикам (evolutionary) или согласно набирающему обороты XP.

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

     

    Добавьтe Ваш комментарий

    Ваше имя (псевдоним):
    Ваш адрес почты:
    Заголовок:
    Комментарий: