Перейти к содержимому

Фотография

Тест-кейсы для проверки работы wizard'a


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 yurock

yurock

    Новый участник

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Юрий

Отправлено 17 ноября 2007 - 00:38

Привет!

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

Он состоит из последовательности страниц:
- Страница1 позволяет выбрать соединение (combobox), выбрать имя БД (тоже combobox), указать файл экспорта (editbox и кнопка Browse)
- Страница2 позволяет выбрать что будем экспортировать: данные, структуру, все вместе (3 radiobutton'a)
- Страница3 позволяет выбрать из дерева объектов список объектов для экспорта (есть 4 кнопки для выделения объектов и отмены выделения)
- Страница4 появляется если в Странице2 было выбрано "Структура и данные". Близнец Страницы3. Позволяет уточнить список таблиц, для которых нужно экспортировать данные.
- Страница5 содержит 5 вкладок, на каждой чекбоксы - опции генерации sql скриптов. Всего около 30 опций. Некоторые опции зависят от других опций.
- Страница6 отображает прогресс экспорта.
- Страница7 - Процесс окончен. Есть чекбокс для открытия сгенерированного файла.

На каждой странице присутствуют кнопки Help, Back, Next, Generate, Cancel. Причем, кнопку Generate можно нажать уже с третьей страницы.
Визард можно открыть несколькими способами: главное меню, контекстное меню БД в дереве, горячая комбинация клавиш.

Ничего, что я так подробно?)

Так вот. Следует проверить и непосредственно работу элементов GUI, и результаты генерации: соответствует ли содержимое скрипта установленным опциям, правильно ли сохранен файл...

Как следует структурировать тест-кейсы? Какие категории важно выделить? В каком стиле их писать? На основании прочитанного на форуме предполагаю, что нужно отдельно написать кейсы для GUI и отдельно более-менее абстрактно описанные кейсы, проводящие через весь путь от открытия визарда до завершения/отмены генерации. Но не знаю как оптимальнее их оформить. Отделить данные от действий? Никогда еще такого не делал), только читал об этом немного.
На данный момент для хранения тест-сценариев используется OpenOffice Calc, но из-за невозможности одновременного доступа и непонятностей (по крайней мере, для меня)) в слиянии документов рассматриваю testlink.

В скором (надеюсь)) будущем основные тест-кейсы будут автоматизироваться в TestComplete.

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

Заранее благодарствую!
  • 0

#2 Spam

Spam

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Юра
  • Город:KIEV

Отправлено 21 ноября 2007 - 07:57

Зравствуйте.
Я бы вам посоветовал просто походить по сайту и почитать статьи, тема создания тест кейсов подымалась много раз уже.
Введите в строку ПОИСК слово Тест кейсы и там куча тем иобсуждений всплывет.
  • 0

#3 yurock

yurock

    Новый участник

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Юрий

Отправлено 21 ноября 2007 - 14:16

Зравствуйте.
Я бы вам посоветовал просто походить по сайту и почитать статьи, тема создания тест кейсов подымалась много раз уже.
Введите в строку ПОИСК слово Тест кейсы и там куча тем иобсуждений всплывет.


День добрый!

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

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

Относительно моего вопроса, в книге Романа Савина встретил рекомендацию составить блок-схему работы визарда. Наверное, это один из тех советов, которые я рассчитывал получить. Возможно, все-таки, кто-то предложит что-нибудь еще. Опять же, буду признателен весьма).

p.s. Поиск - очень хорошая фича). Часто им пользуюсь. За совет - спасибо)
  • 0

#4 rlabs

rlabs

    Специалист

  • Members
  • PipPipPipPipPip
  • 660 сообщений
  • Город:Россия, Санкт-Петербург

Отправлено 21 ноября 2007 - 16:39

Относительно моего вопроса, в книге Романа Савина встретил рекомендацию составить блок-схему работы визарда. Наверное, это один из тех советов, которые я рассчитывал получить. Возможно, все-таки, кто-то предложит что-нибудь еще. Опять же, буду признателен весьма).

Ну блок-схему может быть и не надо, а вот модель - весьма полезно. Ибо связи между функциями иначе отследить сложно будет.
  • 0

#5 LeshaL

LeshaL

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 21 ноября 2007 - 19:54

Эх, непростой вопрос. Визарды - это зло.
1) Надо определть все пути от старта к финишу. Тяжело? Да. Можно еще расставить приоритеты для каждого пути, чтобы каждый раз по всем не ходить.
2) Для начала забудьте об UI. Постарайтесь описать тест-кейзы без привязки к UI. Ведь по идее все-равно контрол это чекбокс или меню из двух пунктов (true\false). Важнее то, на что выбор влияет.
3) Если по результатам прохождения визарда получается какой либо пропертевый файл, который потом скармливается процедуре экспота. В этом случае можно разделить проверки на два шага - первый, генерить такие пропертевые файлы и проверять, что процедура работает правильно. Второй - проверять, что через UI получаются правильные файлы пропертей.
4) Раз это визард - не забудьте заняться заморочным видом тестирования визардов - ходить туда-обратно по страницам и а) ничего не меняя - все ответы должны сохраняться б) меняя что-либо - на предыдущей странице - на следующей должно произойти адекватное изменение или сброс ответов.
5) Еще неприятность - визард должен адекватно реагировать на неправильные ответы и не давать ходить дальше.
6) Cancel должен работать!
7) Будет хрошо для каждого из возможных путей получить один раз шаблонный результат руками. Лучше несколько, для разных начальных данных. Потом, как-нибудь автоматизировать и сравнивать что итоговый результат совпадает с шаблонным.
8) Выясните те опции, которые не влияют ни на какие другие, и на которые другие не влияют. Их работу, вероятно, можно будет тестировать не задумываясь о других ответах.
  • 0
Regards,
Alexey

#6 yurock

yurock

    Новый участник

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Юрий

Отправлено 23 ноября 2007 - 21:23

Большое спасибо rlabs и LeshaL за ответы!

to rlabs:

уточните, пожалуйста, какую модель вы имеете ввиду? для меня эта тема (имеется ввиду тема моделей, если можно так выразиться) еще не изведанная). хотя бы полное название понятия или ссылку на материал).


to LeshaL:

большое спасибо за практичные советы! учту каждый!)


  • 0

#7 Nadya Kochetova

Nadya Kochetova

    Новый участник

  • Members
  • Pip
  • 66 сообщений
  • ФИО:Kochetova Nadya
  • Город:London, UK

Отправлено 12 февраля 2008 - 16:47

я бы еще добавила к списку LeshaL диагностику установленного ПО, если ваша инсталлируемая система будет взаимодействовать с ним.
Обязательна проверка на наличие предыдущей версии устанавливаемой системы, все ли нужные компоненты были правильно зарегистрированы, правильная ли версия другого ПО установлена. нужные версии Framework, ASPNET и пр. .. все это так часто вызывает проблемы

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

#8 Guriy

Guriy

    Опытный участник

  • Members
  • PipPipPipPip
  • 316 сообщений
  • Город:Киев, Украина

Отправлено 10 марта 2008 - 18:50

1) Надо определть все пути от старта к финишу. Тяжело? Да. Можно еще расставить приоритеты для каждого пути, чтобы каждый раз по всем не ходить.
2) Для начала забудьте об UI. Постарайтесь описать тест-кейзы без привязки к UI. Ведь по идее все-равно контрол это чекбокс или меню из двух пунктов (true\false). Важнее то, на что выбор влияет.
[грызь]
4) Раз это визард - не забудьте заняться заморочным видом тестирования визардов - ходить туда-обратно по страницам и а) ничего не меняя - все ответы должны сохраняться б) меняя что-либо - на предыдущей странице - на следующей должно произойти адекватное изменение или сброс ответов.
5) Еще неприятность - визард должен адекватно реагировать на неправильные ответы и не давать ходить дальше.
6) Cancel должен работать!
7) Будет хрошо для каждого из возможных путей получить один раз шаблонный результат руками. Лучше несколько, для разных начальных данных. Потом, как-нибудь автоматизировать и сравнивать что итоговый результат совпадает с шаблонным.
8) Выясните те опции, которые не влияют ни на какие другие, и на которые другие не влияют. Их работу, вероятно, можно будет тестировать не задумываясь о других ответах.


Очень хорошо расписано. Добавлю разве что только то, что часть экшенов будет стандартной для каждой (или для большинства) форм визарда. Тут можно будет воспользоваться чем нить типа pairwise или опять-же mbt.
Тем более, что разница не велика для pairwise комбинировать данные или действия.

Вот набросал файлик для пикта:
Step 1:Next - Changed Data Correct, Next - Changed Data Incorrect, Cancel - Changed Data Correct, Cancel - Changed Data Incorrect, Next - Unchanged Data Correct, Next - Unchanged Data Incorrect, Cancel - Unchanged Data Correct, Cancel - Unchanged Data IncorrectStep 2:Next - Changed Data Correct, Next - Changed Data Incorrect, Cancel - Changed Data Correct, Cancel - Changed Data Incorrect, Next - Unchanged Data Correct, Next - Unchanged Data Incorrect, Cancel - Unchanged Data Correct, Cancel - Unchanged Data Incorrect, Back - Unchanged Data Correct, Back- Unchanged Data Incorrect, Back - Changed Data Correct, Back - Changed Data Incorrect, UnavaliableStep 3:Next - Changed Data Correct, Next - Changed Data Incorrect, Cancel - Changed Data Correct, Cancel - Changed Data Incorrect, Next - Unchanged Data Correct, Next - Unchanged Data Incorrect, Cancel - Unchanged Data Correct, Cancel - Unchanged Data Incorrect, Back - Unchanged Data Correct, Back- Unchanged Data Incorrect, Back - Changed Data Correct, Back - Changed Data Incorrect, UnavaliableStep 4:Next - Changed Data Correct, Next - Changed Data Incorrect, Cancel - Changed Data Correct, Cancel - Changed Data Incorrect, Next - Unchanged Data Correct, Next - Unchanged Data Incorrect, Cancel - Unchanged Data Correct, Cancel - Unchanged Data Incorrect, Back - Unchanged Data Correct, Back- Unchanged Data Incorrect, Back - Changed Data Correct, Back - Changed Data Incorrect, UnavaliableStep 5:Next - Changed Data Correct, Next - Changed Data Incorrect, Cancel - Changed Data Correct, Cancel - Changed Data Incorrect, Next - Unchanged Data Correct, Next - Unchanged Data Incorrect, Cancel - Unchanged Data Correct, Cancel - Unchanged Data Incorrect, Back - Unchanged Data Correct, Back- Unchanged Data Incorrect, Back - Changed Data Correct, Back - Changed Data Incorrect, UnavaliableStep 6:Next - Changed Data Correct, Next - Changed Data Incorrect, Cancel - Changed Data Correct, Cancel - Changed Data Incorrect, Next - Unchanged Data Correct, Next - Unchanged Data Incorrect, Cancel - Unchanged Data Correct, Cancel - Unchanged Data Incorrect, Back - Unchanged Data Correct, Back- Unchanged Data Incorrect, Back - Changed Data Correct, Back - Changed Data Incorrect, UnavaliableStep 7:Next - Changed Data Correct, Next - Changed Data Incorrect, Cancel - Changed Data Correct, Cancel - Changed Data Incorrect, Next - Unchanged Data Correct, Next - Unchanged Data Incorrect, Cancel - Unchanged Data Correct, Cancel - Unchanged Data Incorrect, Back - Unchanged Data Correct, Back- Unchanged Data Incorrect, Finish - Changed Data Correct, Finish - Changed Data Incorrect, UnavaliableIF [Step 1] = "Next - Changed Data Incorrect" THEN [STEP 2] = "Unavaliable";IF [Step 1] = "Next - Unchanged Data Incorrect" THEN [STEP 2] = "Unavaliable";IF [Step 2] = "Next - Changed Data Incorrect" THEN [STEP 3] = "Unavaliable";IF [Step 2] = "Next - Unchanged Data Incorrect" THEN [STEP 3] = "Unavaliable";IF [Step 2] = "Unavaliable" THEN [STEP 3] = "Unavaliable";IF [Step 3] = "Next - Changed Data Incorrect" THEN [STEP 4] = "Unavaliable";IF [Step 3] = "Next - Unchanged Data Incorrect" THEN [STEP 4] = "Unavaliable";IF [Step 3] = "Unavaliable" THEN [STEP 4] = "Unavaliable";IF [Step 4] = "Next - Changed Data Incorrect" THEN [STEP 5] = "Unavaliable";IF [Step 4] = "Next - Unchanged Data Incorrect" THEN [STEP 5] = "Unavaliable";IF [Step 4] = "Unavaliable" THEN [STEP 5] = "Unavaliable";IF [Step 5] = "Next - Changed Data Incorrect" THEN [STEP 6] = "Unavaliable";IF [Step 5] = "Next - Unchanged Data Incorrect" THEN [STEP 6] = "Unavaliable";IF [Step 5] = "Unavaliable" THEN [STEP 6] = "Unavaliable";IF [Step 6] = "Next - Changed Data Incorrect" THEN [STEP 7] = "Unavaliable";IF [Step 6] = "Next - Unchanged Data Incorrect" THEN [STEP 7] = "Unavaliable";IF [Step 6] = "Unavaliable" THEN [STEP 7] = "Unavaliable";

Сколько будет отрабатывать, даже думать боюсь...
Но это время машинное, а не человеческое ;)
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных