OberonCore https://forum.oberoncore.ru/ |
|
О задачах, проектировании и тестировании https://forum.oberoncore.ru/viewtopic.php?f=5&t=1437 |
Страница 2 из 3 |
Автор: | Info21 [ Пятница, 10 Апрель, 2009 14:15 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Валерий Лаптев писал(а): Категорически согласен. ... А так паттерны в виде неформальных приемов ходили-то уже давно. Таки неверно, что они ходили в неформальном виде. Какие-то, конечно, и в неформальном виде -- они же все время нарождаются.
|
Автор: | Info21 [ Пятница, 10 Апрель, 2009 23:46 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
А всё же. Раз всё из модулей, и для каждого модуля свой тестовый модуль с тестовой процедурой, то два вопроса: 1. Как назвать тестовые модули и/или тестовые процедуры. Чтобы дисциплина. 2. Как прогонять. Простейший (текущий ) вариант: 1 -- как попало; 2 -- тупым коммандером: (!)"М1.P1;M2.P2;..." Кстати, интересно, сколько тут можно напихать, пока коммандер не подавится. Но это легко исправить: дать имена модулей.процедур, столбиком к примеру, ну и шнягу впереди приписать, у нас же текст как интерфейс, мол, (!)xUnit.Do Можно только имена модулей перечислять, где тестовые процедуры, а шняга сама будет все команды из каждого модуля вызывать. Или, лучше, одну команду Test. Порядок тестов, вроде, важен. Значит, как-то его задавать по-любому надо. Тесты в модуле пронумеровать-по порядку расставить? Через Met'у подряд их и перебрать. А лучше просто одну: Test, да и всё. А там все остальные. Способы именований: А. Каджый тестирующий модуль имеет доп. суффикст Test по сравнению с тестируемым. Плюс: всё тут же. Он же и минус -- отковыривать тесты от нетестов (придется Sym, Code чистить). B. На каждую подсистему Abc заводим доп. подсистему Abctest, в которой тестовые модули имеют те же имена, что и тестируемые. Или другие. Главное, полный донт фак в смысле отковыривания тестов от нетестов. В случае чего вбил в Логе в имя модуля инфикс test, дважды кликнул, да Ctrl+0. Автоматически список модулей генерить умеем (для новичков в комплекте с Информатики-21 примерчики, Info21sysFiles, кажется). Сгенерили, переставили один раз в нужный порядок, приписали (!)xUnit.Do, и понеслась. Пусть xUnit.Do сама .Test к именам модулей приписывает. Может, проверять в Do, чтобы не было модулей, которые забыли в список добавить. Если порядок важен, то автоматизировать его проблематично по-любому. Потому без явного ковыряния списка тестов обойтись некак (ударение на е; это новое такое слово, сильно не хватает его). |
Автор: | Валерий Лаптев [ Суббота, 11 Апрель, 2009 13:11 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Совершенно верно! Я примерно так себе и представлял - ББ мне кажется уже готовой системой типа xUnit. Надо только не забывать тестирующий модуль писать для каждого основного-тестируемого. В Junit (да и во всех остальных) имеено так и делается. Именование - добавляется префикс-суффикс test. Если рефлексия есть, то список тестирующих модулей составляется легко. Если нет, как в С++, то приходится в xUnit добавлять "регистрацию" модулей в некоем контейнере. |
Автор: | Иван Горячев [ Понедельник, 13 Апрель, 2009 06:10 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Info21 писал(а): Способы именований: C. Создаём подсистему Test. В ней отдельными подкаталогами - тесты для нужных подсистем. Как-то так: Код: /Test /Code /Mod /Sym /Tests /Abc Module1.odc Module2.odc ... /Forms /Text Controllers.odc ... Тестирующий модуль собирает и компилит тесты для требуемых подсистем, по результатам - чистит ненужные кодовые/символьные файлы. Примерно так: (!)TestCmds.DoSubs Abc Text~ (!)TestCmds.DoModule AbcModule2~ |
Автор: | Info21 [ Понедельник, 13 Апрель, 2009 06:22 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Иван Горячев писал(а): Info21 писал(а): Способы именований: C. Создаём подсистему Test. В ней отдельными подкаталогами - тесты для нужных подсистем. Иван Горячев писал(а): Тестирующий модуль собирает и компилит тесты для требуемых подсистем Непонятно: что значит "собирает". Вроде как че ж их собирать, они же уже есть.
|
Автор: | Info21 [ Понедельник, 13 Апрель, 2009 06:26 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Валерий Лаптев писал(а): Надо только не забывать тестирующий модуль писать для каждого основного-тестируемого. А это само собой выходит. Сначала тестирующие процедурки прямо в тестируемом модуле (по лени), потом, как всё разрастется, они там надоедают -- возникает импульс злобной энергии их оттуда выкинуть в отдельный модуль Как раз, когда модуль уже очертания принимает. В этот момент и дисциплину можно применить.
|
Автор: | Иван Горячев [ Понедельник, 13 Апрель, 2009 06:55 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Info21 писал(а): Непонятно: что значит "собирает". Вроде как че ж их собирать, они же уже есть. В смысле в подпапке Test/Tests могут лежать заготовки, например содержащие только процедуру Test. Основной модуль прилепляет нужные заголовки и чего ещё, компилирует, исполняет, выводит результаты, после чего выгружает тесты и удаляет их символьные/кодовые файлы. В результате в исходниках тестов нет ничего лишнего и каталоги не захламлены. |
Автор: | Vlad [ Понедельник, 13 Апрель, 2009 07:10 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Валерий Лаптев писал(а): Если нет, как в С++, то приходится в xUnit добавлять "регистрацию" модулей в некоем контейнере. Или генерить внешними тулзами по тэгам... |
Автор: | Vlad [ Понедельник, 13 Апрель, 2009 07:13 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Info21 писал(а): Сложновато выглядит, и выбивается из стандартной структуры папок. Хотя, конечно, хорошо, что всё в одной папке спрятано. По моему опыту - одна папка плохо. Лучше класть тест рядом с тестируюемым. Потом проще что-то куда-то переносить и искать. В одну папку можно сваливать что-то общее для всех тестов. |
Автор: | Info21 [ Понедельник, 13 Апрель, 2009 07:31 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Иван Горячев писал(а): В результате в исходниках тестов нет ничего лишнего А что там может быть? Какая-нибудь избыточная сложность?
|
Автор: | Иван Горячев [ Понедельник, 13 Апрель, 2009 07:54 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
В процессе развития системы к основной тестирующей процедуре могут добавляться различные обвязки и дополнения. Подумаю, постучу по клавишам, потом пример приведу |
Автор: | Info21 [ Понедельник, 13 Апрель, 2009 09:17 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Иван Горячев писал(а): к основной тестирующей процедуре могут добавляться различные обвязки и дополнения. ... Приходят в голову данные, оформленные как потоки ввода после коммандеров.Тут маленький резонанс вот с чем: переводя книжку Вирта, осознал, что в Блэкбоксе ослаблена по сравнению с классическим Обероном поддержка идеи "текст как интерфейс". И совершенно зря, причем без нужды. Это видно прикладнику, прогоняющему свои данные туда-сюда, но, видимо, не было видно чистым программерам-авторам Блэкбокса. И есть простые способы эту поддержку вернуть (запланировано для ближайшего релиза base-комплекта). Но тут (в связи с тестами) возникает некий новый поворот. Что забавно. Подумаем. |
Автор: | Евгений Темиргалеев [ Понедельник, 13 Апрель, 2009 09:24 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
В смысле ослаблена? Команды в тексте без командеров не распознаются по клику? |
Автор: | Валерий Лаптев [ Понедельник, 13 Апрель, 2009 09:28 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Info21 писал(а): Валерий Лаптев писал(а): Надо только не забывать тестирующий модуль писать для каждого основного-тестируемого. А это само собой выходит. Сначала тестирующие процедурки прямо в тестируемом модуле (по лени), потом, как всё разрастется, они там надоедают -- возникает импульс злобной энергии их оттуда выкинуть в отдельный модуль Как раз, когда модуль уже очертания принимает. В этот момент и дисциплину можно применить.Имеено так Мартин Фаулер описывал свое вхождение в тестирование раньше программирования... |
Автор: | Info21 [ Понедельник, 13 Апрель, 2009 11:23 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Евгений Темиргалеев писал(а): В смысле ослаблена? Не хватает средств. Сейчас нет сил сочинять объяснение, попозже как-нибудь. Поскольку для себя делаю, для работы, то... соответственно.
|
Автор: | Иван Горячев [ Вторник, 14 Апрель, 2009 10:06 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Вот, постучал. Простейший вариант Вложение:
|
Автор: | Info21 [ Вторник, 14 Апрель, 2009 10:57 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Иван Горячев писал(а): Простейший вариант Простейший?
|
Автор: | Иван Горячев [ Среда, 15 Апрель, 2009 01:04 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Ну где-то да. Для "проще" вообще не стоит огород городить - можно обойтись соглашениями. А "всерьёз" нужно ещё кучу вещей добавлять |
Автор: | Илья Ермаков [ Среда, 15 Апрель, 2009 01:19 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Что-то только непонятно, кому "нужно" И насколько "всерьёз" с этим колупаться |
Автор: | Иван Горячев [ Среда, 15 Апрель, 2009 02:14 ] |
Заголовок сообщения: | Re: О задачах, проектировании и тестировании |
Я человек ленивый. Поэтому мне, ежели бы вдруг понадобились тесты, захотелось бы иметь генерацию шаблона тестов по интерфейсу подопытного модуля. Ну плюс там обработка ошибок, нелинейный порядок тестов... |
Страница 2 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |