Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  18:23[Войти] | [Зарегистрироваться]
Обсуждение темы:
Автоматизированные тесты для GUI

Методология "Экстремальное программирование" предлагает создать набор программных тестов и запускать их после каждого изменения программы. Непонятно, как делать такие автоматические тесты для GUI-интерфейса. Существуют различные инструменты для программного эмулирования ввода от пользователя: нажатия кнопок, ввод текста и т. п. Проблема не в этом. Проблема в числе возможных вариантов.

Приведу простейший пример.
Допустим есть форма документа. На ней 10 полей редактирования. Допустим, пользователь открыл уже заполненный документ. Мы не может знать, что он захочет в нем изменить: номер док-та, сумму и пр. Мы не можем знать сколько полей он будет менять и в каком порядке. Мы не можем сохранять документ после каждого изменения.
В общем, число возможных вариантов в данном случае более 10!.
И как же их перебирать?

С уважением,

Евгений Барабашин.

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 15 сообщений

Добавить свое сообщение

Отслеживать это обсуждение


Смотрите также обсуждения:
Тестирование проекта. Отладка.
  • Подводные камни
  • Централизованная обработка ошибок
  • Бета-тестирование
  • Давайте учиться на ошибках.
  • Почему программисты допускают ошибки?
  • О системах контроля ошибок
  • Вопросы оптимизации кода

  • 15—6 | ...>>>
    Всего сообщений в теме: 15; страниц: 2; текущая страница: 1


    № 15   14-08-2002 11:41 Ответить на это сообщение Ответить на это сообщение с цитированием
    2Евгений Барабашин.
    То что вы просите называеться верефикацией программы. Насколько мне известно верефецированны АСУ парижского метро.
    На самом деле количесво вриантов может быть при 10 полях, намного меньше .
    Первый вариант, если поля независимы. ПРосто проверить каждое из полей, автономно 10 вариантов.
    Если они зависимы то дерево вариантов сильно уменьшаеться за счет возможности НЕСУШЕСТВУЮЩИХ СОСТОЯНИЙ. Т.е. Если поле 1 ен введено то поля 2,..,10 немогут быть введены. Это какраз и уладываеться в возможность работы по бизнес правилам.
    Возможный вариант из общего алгоритма выделять автономные куски и писать тесты для них.

    Но верефикация щтука сложная. например если ты написал решение квадратного уравнения то проверяеш и 10-20 вариантов а не ((2^8)^10)Возможных параметров.


    № 14   13-08-2002 13:19 Ответить на это сообщение Ответить на это сообщение с цитированием
    Просто уточнение:
    Экстремальное программирование это целый набор взаимосвязанных методик, например регрессивное тесты никак не создаются для чего то уже сделаного. Тесты создаются первыми, а после реализации они становятся регрессивными. ;) К тому же _все_ варианты никогда и не тестируются. То есть для XP проблема в таком виде не стоит, но что делать если хочется протестировать?

    Не знаю как для общего случая, но конкретный "простейшый пример" можно разобрать. Перебирать все случаи не надо, это точно. Необходимо выбрать _что_ надо протестировать. Считаем, что с логикой всё хорошо, она уже протестирована отдельно от GUI (если это сделать без GUI невозможно - лучше заняться рефакторингом, ещё одной методикой XP ;), чем тестированием).

    Конечно, мы можем и не знать, что хочет изменить пользователь в документе, но наверняка знаем что он делает чаще всего. Таких случаев не должно быть много (на одну форму то!). Основной тест.

    Целенаправленно искать "грабли", то есть тестировать только то в чём скорее всего может быть ошибка.

    Monkey test (защита от дурака).

    и т.д.

    Только вот проверить "грабли" или провести monkey test достаточно на стадии отладки, вручную (то есть возможно их и придётся повторить, но вряд ли это будет часто, а тем более будет требовать автоматизации. А для регрессивного тестирования GUI как такового будет вполне достаточно основного теста.

    То есть кажется мне что на форму должно приходится не более 1-2 автоматических тестов. Даже при всём богатстве вариантов.


    № 13   13-08-2002 13:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    >Евгений Барабашин

    Это так, но тесты пишуться на основе того что даст заказчик и при непосредственном его участие. Помните про человека который отвечает на вопросы разработчиков и является сотрудником заказчика?
    Правда возможно это уже адаптивная версия ХР.


    № 12   13-08-2002 13:01 Ответить на это сообщение Ответить на это сообщение с цитированием
    Доброго дня.
    Насколько я понимаю XP, тесты и unit-тесты програмист пишет для тестирования функциональности программы, то есть именно некоего вычислительного модуля, а не интерфейса.
    Интерфейс в XP является величиной, зависящей от т.н. "дизайна" программы, который делается "максимально простым". Исходя из условия "простоты" получаем достаточно мелкое количество багов в GUI-интерфейсе, которые можетвыловить сам программист по мере работы или ближайший тестер.
    Так или иначе, полягаю, что понятие "постоянного тестирования" относится именно к функциональности программы, а тестирование GUI в него не входит.


    № 11   13-08-2002 12:57 Ответить на это сообщение Ответить на это сообщение с цитированием
    Возможно ХР имеет в виду в большей именно тесты исходников, движка программы.
    Поэтому и существуют юнитесты.

    Хотя разработка (дизайн) интерфейса тоже может быть при необходимости реформирована, доработана мозговым штурмом.

    С другой стороны тест GUI можно провести,
    дав попользовать его разным людям, записать для себя, как они думают при выборе контролов и работе с ними.

    Я считаю, что программирование это творчество.
    ХР скорей всего в этом случае сообщает нам правила, оперируя объектами разной природы. А уж способ реализации и то, как мы поймем эти правила - все зависит от нас.


    № 10   13-08-2002 12:46 Ответить на это сообщение Ответить на это сообщение с цитированием
    > Alex Klyanchin

    Изменение во View -> изменение значения свойства БО -> изменение View

    Из за этой обратной связи на View  прогон тестов, которые меняют непосредственно свойства БО не гарантирует правильной работы программы.

    > Путилин Евгений Валентинович
    > Если смотреть Rational Robot, то он может делать проверку на дурака. Во все окна слать нажатия случайных клавиш и мыши.

    Все таки 'умный дурак' работает не так.

    > Второй вариант, пишеш скрит буквально работаеш спрограммо Robot запоминает что и как ты делал и пишет скрипт. Язык скрипта VBA или perl. Потом правиш скрипт например что бы в одну ячеку данные вносили последевательно 1,3,5,7,9,11,13,15,17,....

    Это все детали. И проблема, как я сразу сказал в заглавии темы не в этом.

    > AnoD
    > Тестирование GUI с помощью XP преполагает, что у вас есть среда которая позволяет писать эти тесты, но не программисту, а заказчику.

    Вроде в XP тесты пишет программист.

    > All

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

    Как бороться с огромным числом вариантов?

    Можете рассмотреть, как вы будете тестировать пример, описанный в заголовке темы?


    № 9   13-08-2002 12:09 Ответить на это сообщение Ответить на это сообщение с цитированием
    Если смотреть Rational Robot, то он может делать проверку на дурака. Во все окна слать нажатия случайных клавиш и мыши.
    Второй вариант, пишеш скрит буквально работаеш спрограммо Robot запоминает что и как ты делал и пишет скрипт. Язык скрипта VBA или perl. Потом правиш скрипт например что бы в одну ячеку данные вносили последевательно 1,3,5,7,9,11,13,15,17,....
    Таких систем много но они дорогие. Хотя Rational Sute можно получить 30 дневную версию
    А что бы сажать человека надо действовать по такмоу плану. При написании программы пишется ТЗ, в котором описываюся требования к ней. Потом строися схема бизнес процессов, По ним и строится план тестирования. Который и прогняется каждй раз, при использовании Robot. Можно один раз прогнать человеком потом гонять машиной.
    Каждый раз человек нужен только в исключительных случаеш это как правило дорогой и не надежый ресурс.
    В Ratinal Unified Process есть сбор ошибок и запросов на изменение функциональности. Так там есть вариант робработка ишибка как не повторилась, среди Исправленна, Отложенна, Требование Расширения функциональности.
    Вообщето есть несколько тем в котором затрагиваються проблеммы написани ПО, таких как постановка ТЗ, тестирование , и т.п. а Надо подходить способы написани ПО. И Варианты реализации кнкретных шагов.


    № 8   13-08-2002 12:09 Ответить на это сообщение Ответить на это сообщение с цитированием
    >Все равно надо дизаблить некоторые поля в зависимости от ввода, >пересчитывать группу полей при изменении какого-то поля и пр. Или нет?

    Наверное надо перейти на другой язык. Есть БО, есть его свойства. Одни свойства зависят от других. БО - это модель, форма - это отображение модели (MVC).

    Есть конечно другие вещи которые требуется учитывать: это доступные из списка свойства, они тоже могут меняться динамически.


    № 7   13-08-2002 11:41 Ответить на это сообщение Ответить на это сообщение с цитированием
    Самый лучший тестер GUI - человек.
    Как мне кажется, тестирование в стиле XP это прежде всего тестирование алгоритмов и того как правильно они функционируют.
    Тестирование GUI с помощью XP преполагает, что у вас есть среда которая позволяет писать эти тесты, но не программисту, а заказчику. И программист должен рассматривать эти тесты всего лишь как ТЗ. И как следствие, добиться срабатывания всех тестов, предполагает что вы всего лишь выполнилши то что хотел заказчик.


    № 6   13-08-2002 11:09 Ответить на это сообщение Ответить на это сообщение с цитированием
    Давайте определимся: тестировать корректное поведение диалог. окон, чтобы ошибок не возникало, вводилсь только корректные данные и пр.

    Юзабилити -- нечто другое и автоматически не тестируется. Для него надо сажать за программу пользователей и пр. -- это другой разговор.

    > Alex Klyanchin

    Все равно надо дизаблить некоторые поля в зависимости от ввода, пересчитывать группу полей при изменении какого-то поля и пр. Или нет?


    15—6 | ...>>>
    Всего сообщений в теме: 15; страниц: 2; текущая страница: 1


    Добавить свое сообщение

    Отслеживать это обсуждение

    Дополнительная навигация:
    Количество сообщений на странице

    Порядок сортировки сообщений
    Новое сообщение вверху списка (сетевая хронология)
    Первое сообщение вверху списка (обычная хронология)

    Перейти на конкретную страницу по номеру
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования