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

Фотография

Навдом порядок в приложении


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

#1 mikhail_rb

mikhail_rb

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

  • Members
  • Pip
  • 44 сообщений
  • ФИО:Михаил Кутько
  • Город:Санкт-Петербург


Отправлено 11 августа 2010 - 09:52

Добрый день!

Имеется следующая задача: есть клиент-серверное приложение (Delphi&Oracle). Порядка\единообразия не было при разарботке (или просто не нужен был), поэтому часть обращений к БД работает через серверные процедуры PL\SQL, остальная часть напрямую осуществляет запросы к таблицам. Понадобился порядок: т.е. заменить прямые обращение на вызов процедур. Необходимо проверить такой переход. Приложение не большое, но все же...

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

Просто интересуюсь: может кто сталкивался с такими задачами? Как справлялись? Может есть средства, которые запоминают, что я щелкал\вводил на старой версии ПО и воспроизводят это на новой версии ПО и сверяют, допустим, результат по экрану?
  • 0

#2 LeshaL

LeshaL

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

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


Отправлено 11 августа 2010 - 11:02

Добрый день!

Имеется следующая задача: есть клиент-серверное приложение (Delphi&Oracle). Порядка\единообразия не было при разарботке (или просто не нужен был), поэтому часть обращений к БД работает через серверные процедуры PL\SQL, остальная часть напрямую осуществляет запросы к таблицам. Понадобился порядок: т.е. заменить прямые обращение на вызов процедур. Необходимо проверить такой переход. Приложение не большое, но все же...

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

Просто интересуюсь: может кто сталкивался с такими задачами? Как справлялись? Может есть средства, которые запоминают, что я щелкал\вводил на старой версии ПО и воспроизводят это на новой версии ПО и сверяют, допустим, результат по экрану?

С задачей такой не сталкивался, но есть идея - действовать от противного. Надо сделать старый беспорядочный код нерабочим и найти места где начнёт падать из-за этого.
Можно переименовать таблицы (к примеру добавить везде 1 на конце persons -> persons1 etc). Соотвественно поправить везде где сделано правильно, хотя не знаю насколько это затратно.
Далее прогнать тесты и посмотреть где упало при попытке найти таблицу со старым именем.
  • 0
Regards,
Alexey

#3 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 879 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 11 августа 2010 - 11:11

Присоединяюсь к совету Алексея, но хочу предложить модификацию.
Переименовывать таблицы сложно (как и вообще менять структуру БД), при этом и хранимки тоже все придется модифицировать.
Лучше сделать таблицы недоступными путём настройки прав доступа.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#4 LeshaL

LeshaL

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

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


Отправлено 11 августа 2010 - 18:32

Лучше сделать таблицы недоступными путём настройки прав доступа.

Интересно как это можно сделать. Была бы речь о джаве, я бы подумал в сторону Security Manager/policy files где можно разграничение по правам дать на различные куски кода.
А тут как быть?
  • 0
Regards,
Alexey

#5 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 879 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 11 августа 2010 - 20:40

Лучше сделать таблицы недоступными путём настройки прав доступа.

Интересно как это можно сделать. Была бы речь о джаве, я бы подумал в сторону Security Manager/policy files где можно разграничение по правам дать на различные куски кода.
А тут как быть?

Ну так в базах данных тоже есть разграничение прав доступа, вплоть до отдельных столбцов.
Запрет на прямой доступ через SQL-запросы ко всем таблицам будет выглядеть примерно как-то так:
REVOKE select,insert,update,delete ON *.* FROM some_user@localhost;

  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#6 mikhail_rb

mikhail_rb

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

  • Members
  • Pip
  • 44 сообщений
  • ФИО:Михаил Кутько
  • Город:Санкт-Петербург


Отправлено 12 августа 2010 - 06:56

Способ хороший, спасибо за подсказку! Область действия сократилась.

Не берет этот спосбо вещи вида подчиненных таблиц (когда главная таблица не грузится и соответственно другие не увидить, т.к. выбрасывается ошибка) и мастера по создания объектов (когда на первом шаге получили ошибку, то дальше не уйдешь).
  • 0


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

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