powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / Тестирование и QA [игнор отключен] [закрыт для гостей] / Какой вид тестирования применить?
7 сообщений из 7, страница 1 из 1
Какой вид тестирования применить?
    #36186719
Есть необходимость реализовать ряд тестов, которые бы проверяли условия для всех классов в проекте. К примеру для всех кнопок в проекте проверить правильность установки шрифта или для всех датасетов в проекте проверить корректность SQL запросов.
Пробовал использовать для этого функциональное тестирование с помощью TestComplete однако он может оперировать только с объектами, которые уже созданы, т.е с помощью него нельзя протестировать к примеру форму которая еще не открыта (и не создана). Полагаю что тут нужно идти другим путем :)
Посоветуйте, как (и чем) сделать тестирование с таком случае?
З. Ы. Проект на Delphi
...
Рейтинг: 0 / 0
Какой вид тестирования применить?
    #36193807
DexterI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чет вообще не понял... как можно протестировать еще не созданную форму?

Если форма есть, так научитесь ее программно открывать, да и тыкайте нужные кнопки..

Что касается проверки правильности SQL-запросов, то что вы собственно вкладываете в понятие "правильность" запроса??
...
Рейтинг: 0 / 0
Какой вид тестирования применить?
    #36201004
авторЧет вообще не понял... как можно протестировать еще не созданную форму?
Смысл в том чтобы выявить возможные ошибки в клиентской программе при изменении схемы БД. К примеру переименовали какое нибудь поле в схеме, необходимо проверить, не забыли ли это поле переименовать везде в датасетах на клиенте.

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

автор
Что касается проверки правильности SQL-запросов, то что вы собственно вкладываете в понятие "правильность" запроса??
В данной случае правильность = открытие датасета без ошибок, фактически синтаксическая правильность СКЛ запроса + наличие переменных привязки
...
Рейтинг: 0 / 0
Какой вид тестирования применить?
    #36201243
DexterI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Быдло___кодеравторЧет вообще не понял... как можно протестировать еще не созданную форму?
Смысл в том чтобы выявить возможные ошибки в клиентской программе при изменении схемы БД. К примеру переименовали какое нибудь поле в схеме, необходимо проверить, не забыли ли это поле переименовать везде в датасетах на клиенте.


Ну так создайте тест, который будет открывать все клиентские формы и делать запросы к БД и запускайте его в случае изменения схемы БД - где формы валяться - там ошибку и ищите..

А если форма новая создается так все датасеты должны сразу правильными запросами заполняться..
...
Рейтинг: 0 / 0
Какой вид тестирования применить?
    #36203998
Если форма уже создана, то проблем не каких, пару строчек скрипта в тест комплите. Проблема в том, чтобы доступиться (создать) объект которого еще нет.
Для форм, которые ещё не созданы, описание структуры формы и свойств всех компонентов лежит в ресурсах, которые прилинкованы к вашей программе. Но пытаться их оттдуа извлечь и проанализировать, это та ещё задачка. Скорее всего, действительно, будет где-то втихаря эти формы создать, просмотреть, а потом также втихаря уничтожить, если не нужны, или держать "про запас" пока не понядобяться. Но только при большом количестве сложных форм работать это всё будет достаточно медленно, да и ресурсов такая программа скушает тоже прилично (придётся все формы держать в опреативке сформированные).

Смысл в том чтобы выявить возможные ошибки в клиентской программе при изменении схемы БД. К примеру переименовали какое нибудь поле в схеме, необходимо проверить, не забыли ли это поле переименовать везде в датасетах на клиенте.
То есть, вы хотите сказать, что проект настолько большой и "крутой", что стоит это делать именно так? Прогнать обычный тест оператором уже не получается?

DexterI
Быдло___кодерВ данной случае правильность = открытие датасета без ошибок, фактически синтаксическая правильность СКЛ запроса + наличие переменных привязки
Ну так создайте тест, который будет открывать все клиентские формы и делать запросы к БД и запускайте его в случае изменения схемы БД - где формы валяться - там ошибку и ищите..
Только при этом не стоит забывать, что вся эта процедура "проверки" может занимать весьма приличное время. Поэтому я бы не стал её делать при каждой загрузке программы, а сделал бы какую-нибудь специальную команду, по котороая данный тест бы запускался. Всё равное кроме собственно разработчиков это больше никому не интересно. Так вот пусть они его и запускают, а пользователям это совершенно ни к чему.

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

Да, что касается поиска всех датасетов в программе. Если бы вы придерживались правильной технологии разработки подобных программ, то все датасеты у вас были бы собраны в одном или нескольких (обычно от 2 до 5) датамодулях. Тогда не нужно было бы и все формы создавать, и искать свои датасеты по всему проекту. Просто бы просмотрели все датасеты во всех датамодулях через список компонетов датамодулей и сравнением их через is TDataSet.
...
Рейтинг: 0 / 0
Какой вид тестирования применить?
    #36205225
Быдло__кодер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу так создайте тест, который будет открывать все клиентские формы
Проект большой, разрабатывается уже 6 лет. Написать функциональный тест который вызовет все формы не так то просто (я вообще думаю что это нереально) + его придется переписывать каждый раз когда добавляется еще одна форма.
Думал поначалу схитрить :) В настройках проекта можно все формы сделать автосоздаваемые. Но к сожалению от этой идеи пришлось отказаться по ряду технических причин.

Мыльников Дмитрий
Для форм, которые ещё не созданы, описание структуры формы и свойств всех компонентов лежит в ресурсах, которые прилинкованы к вашей программе. Но пытаться их оттдуа извлечь и проанализировать, это та ещё задачка.

Собственно у меня есть еще код приложения :) а делфи имеет некоторые механизмы для парса *.dfm файлов, которые описывают датасеты. Парсер "почти" удалось написать, проблема только с описанием объектов-наследников, которое размазано по нескольким модулям. Писал по этому поводу на делфи-форум http://sql.ru/forum/actualthread.aspx?tid=696262


Смысл в том чтобы выявить возможные ошибки в клиентской программе при изменении схемы БД. К примеру переименовали какое нибудь поле в схеме, необходимо проверить, не забыли ли это поле переименовать везде в датасетах на клиенте.
То есть, вы хотите сказать, что проект настолько большой и "крутой", что стоит это делать именно так? Прогнать обычный тест оператором уже не получается?
Не совсем понял, что имеется в виду под обычным тестом?

DexterI
Только при этом не стоит забывать, что вся эта процедура "проверки" может занимать весьма приличное время. Поэтому я бы не стал её делать при каждой загрузке программы, а сделал бы какую-нибудь специальную команду, по котороая данный тест бы запускался. Всё равное кроме собственно разработчиков это больше никому не интересно. Так вот пусть они его и запускают, а пользователям это совершенно ни к чему.

Естественно. Это разовая операция, которая будет выполняться перед сборкой версии (вместе с остальными тестами) Ее можно поставить на ночь на мощной машине, т. е ресурсы и время не очень критичны


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

Да нет, зная текст запроса его можно лекго проверить средствами СУБД. В частности в оракле (который мы используем) есть пакет dbms_sql который и реализует описанный вами парсер, и позволяет сделать синт. анализ запроса, не выполняя его. Скорей всего так и буду делать. Проблема в том, что есть еще переменные привязки, хотелось бы протестировать их правильное наличие в датасетах
...
Рейтинг: 0 / 0
Какой вид тестирования применить?
    #36224353
Фотография Влом регистрироваться
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНаписать функциональный тест который вызовет все формы не так то просто (я вообще думаю что это нереально) + его придется переписывать каждый раз когда добавляется еще одна форма.
Для каждой формы пишется тест + пишется еще один, который проверяет покрытие форм тестами.


Собственно у меня есть еще код приложения :) а делфи имеет некоторые механизмы для парса *.dfm файлов, которые описывают датасеты.

Т.е. разбиения на слои данные/бизнес-логика/UI нет? Печально...

Смысл в том чтобы выявить возможные ошибки в клиентской программе при изменении схемы БД. К примеру переименовали какое нибудь поле в схеме, необходимо проверить, не забыли ли это поле переименовать везде в датасетах на клиенте.
Если бы слой доступа к данным был выделен, то там надо было бы просто дернуть каждую кверю (ExecSQL)...


Это разовая операция, которая будет выполняться перед сборкой версии (вместе с остальными тестами) Ее можно поставить на ночь на мощной машине, т. е ресурсы и время не очень критичны

Это не разовая операция, а регулярная (при каждом изменении), а уж в момент сборки - просто обязательная.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Тестирование и QA [игнор отключен] [закрыт для гостей] / Какой вид тестирования применить?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]