Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 60 61 62 63 64 [65] 66 67 68 69 .. 75   вперед  Ctrl
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Gluk (Kazan)
Кризис в головах

В чьих, позвольте уточнить?
5 фев 09, 17:55    [6785053]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
softwarer
Замечательно. Итак, чтобы поймать эту ошибку - Вы продемонстрировали нам полное регрессионное тестирование. Которое собираетесь выполнять постоянно, после каждого патча. И "просто выглядит" оно только до тех пор, пока у Вас три процедуры без единого ветвления.


Попробуйте просто запустить Level2 ДО патча.
Попробуйте запустить Level2 ПОСЛЕ патча.

Чтобы вас не утруждать - я сделаю это за вас

Результат ДО патча
Msg 208, Level 16, State 0, Procedure Level3, Line 3
Invalid object name '#table'.
Это как-бэ намекает нам, что тест у нас построен не совсем кошерно.
Результат ПОСЛЕ патча:
Msg 207, Level 16, State 1, Procedure Level3, Line 3
Invalid column name 'id'.
Что как-бэ намекает нам, что мало того, что тест построен некошерно, так еще и результат теста отличается от того, что было ДО патча (хотя, по идее - не должен).

Если вы можете показать - где тут "Полное регрессное тестирование" - это будет просто здорово.
5 фев 09, 17:56    [6785056]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
МСУ
Gluk (Kazan)
Кризис в головах

В чьих, позвольте уточнить?


Очевидно в тех, кто кричит "ТИГРЫ"
Если сто раз крикнуть "ГОВНО" никому от этого слаще не станет

Так что не стоит в суе
5 фев 09, 17:59    [6785067]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Народ, давайте, что-ль, про Рашмор. А то софтварушка с локи сцепились и голдят сами с собой - не честно так :(

Остальные тоже хотят букафки писать.

Итак, вопрос - каков алгоритм работы технологии Рашмор?
5 фев 09, 18:01    [6785078]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
МСУ
Итак, вопрос - каков алгоритм работы технологии Рашмор?

Алгоритм работы Рашмор - патентованый.
5 фев 09, 18:05    [6785101]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
locky
МСУ
Итак, вопрос - каков алгоритм работы технологии Рашмор?

Алгоритм работы Рашмор - патентованый.

Ну дык распатентуйте его. В чём сложности?
5 фев 09, 18:13    [6785128]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
МСУ
Ну дык распатентуйте его. В чём сложности?

А нафига? Надо просто набраться терпения.
5 фев 09, 18:13    [6785130]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
locky
Это как-бэ намекает нам, что тест у нас построен не совсем кошерно

Хорошо. Давайте построим кошерный. MSSQL у меня нет, но, надеюсь, простите возможные помарки.

create procedure P_3
  @mode integer 
  as
begin
  declare @sum integer
  if @mode = 1
    select @sum = sum (n) from #temp
  else
    set @sum = 0
end
go

create procedure P_2 
  @mode integer 
  as
begin
  exec P_3 (@mode)
end
go

create procedure P_1_1 as
begin
  create table #temp (n integer);
  insert into #temp values (1);
  insert into #temp values (2);
  insert into #temp values (3);
  exec P_2 (1);
end
go

create procedure P_1_2 as
begin
  exec P_2 (0);
end
go

Итак, всё работает. Ставится задача: оптимизировать по скорости P_1_2. В ходе этой оптимизации проводится рефакторинг P_2, например, в ней создается временная таблица #temp для хранения промежуточных результатов того, что раньше "считалось одним запросом".

Прогоняем тесты для P_1_2 - вуаля! Все работает! Берем в production.

locky
Если вы можете показать - где тут "Полное регрессное тестирование" - это будет просто здорово.

В необходимости ради обнаружения ошибки прогнать тесты для P_1_1.
5 фев 09, 18:14    [6785135]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
softwarer
Итак, всё работает. Ставится задача: оптимизировать по скорости P_1_2. В ходе этой оптимизации проводится рефакторинг P_2, например, в ней создается временная таблица #temp для хранения промежуточных результатов того, что раньше "считалось одним запросом".

Прогоняем тесты для P_1_2 - вуаля! Все работает! Берем в production.
В необходимости ради обнаружения ошибки прогнать тесты для P_1_1.

Простите, а ДО вашего рефакторинга и т.д. - тесты по запуску P_1_2 - выполнялись нормально?
5 фев 09, 18:19    [6785149]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
locky
softwarer
Итак, всё работает. Ставится задача: оптимизировать по скорости P_1_2. В ходе этой оптимизации проводится рефакторинг P_2, например, в ней создается временная таблица #temp для хранения промежуточных результатов того, что раньше "считалось одним запросом".

Прогоняем тесты для P_1_2 - вуаля! Все работает! Берем в production.
В необходимости ради обнаружения ошибки прогнать тесты для P_1_1.

Простите, а ДО вашего рефакторинга и т.д. - тесты по запуску P_1_2 - выполнялись нормально?

И, вдогонку - тесты по P_2 (которую, кстати, рефакторили) - тоже выполнялись нормально?
5 фев 09, 18:20    [6785152]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
locky
МСУ
Ну дык распатентуйте его. В чём сложности?

А нафига? Надо просто набраться терпения.


И? Я хочу алгоритм. Дайте мне его.
5 фев 09, 18:27    [6785170]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
МСУ
locky
МСУ
Ну дык распатентуйте его. В чём сложности?

А нафига? Надо просто набраться терпения.


И? Я хочу алгоритм. Дайте мне его.

А чо там думать? делаем побитовое И между предварительно построенными битовыми векторами.
5 фев 09, 18:28    [6785172]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
Yo.!
Guest
locky

Простите, а ДО вашего рефакторинга и т.д. - тесты по запуску P_1_2 - выполнялись нормально?

а почему нет? я тоже не вижу что бы ей помешало, она передает P_1_2 моде=0 при котором временная таблица не используется. оптимизация результат P_1_2 не изменит, а вот P_1_1 после оптимизации накроется. стандартная ситуация не типизированного пхп.
5 фев 09, 18:32    [6785185]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
locky
МСУ
locky
МСУ
Ну дык распатентуйте его. В чём сложности?

А нафига? Надо просто набраться терпения.


И? Я хочу алгоритм. Дайте мне его.

А чо там думать? делаем побитовое И между предварительно построенными битовыми векторами.


И что дальше? Не темните - выкладывайте всё, как есть.
5 фев 09, 18:33    [6785186]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Кстати, вот выявление всех возможных code path и автоматическое составление планов для их тестирования - интересная задача.
Но мне пока не по зубам.

-------------------------
There’s no silver bullet!
5 фев 09, 18:33    [6785187]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
locky
Простите, а ДО вашего рефакторинга и т.д. - тесты по запуску P_1_2 - выполнялись нормально?

Безусловно. Если бы они выполнялись ненормально - сначала бы исправили ошибку, isn't it?

locky
И, вдогонку - тесты по P_2 (которую, кстати, рефакторили) - тоже выполнялись нормально?

Безусловно. С той помаркой, что я не совсем уверен в их существовании (это отдельная тема, если нужно пояснять, почему).
5 фев 09, 18:33    [6785188]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Yo.!
locky

Простите, а ДО вашего рефакторинга и т.д. - тесты по запуску P_1_2 - выполнялись нормально?

а почему нет? я тоже не вижу что бы ей помешало, она передает P_1_2 моде=0 при котором временная таблица не используется. оптимизация результат P_1_2 не изменит, а вот P_1_1 после оптимизации накроется. стандартная ситуация не типизированного пхп.

Там, если не заметили, я позже добавил: "И, вдогонку - тесты по P_2 (которую, кстати, рефакторили) - тоже выполнялись нормально?"
Это условие, разумеется, тоже выполняется - или нет?
5 фев 09, 18:34    [6785192]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
softwarer
Безусловно. С той помаркой, что я не совсем уверен в их существовании (это отдельная тема, если нужно пояснять, почему).

итого, что мы имеем с гуся?
А с гуся мы имеем то, что в случае неполного плана тестирования (а план, разумеется, неполный, т.к. в этом плане не проверяется во всех возможных случаях P_2) мы имеем вполне реальную возможность пропустить ошибку в продакшн.
Или, если переформулировать: если у тебя нет плана тестирования - ты не в состоянии обнаруживать ошибки.
С этим никто не спорит
Вот только это как-бэ не касается сиквела, это как-бэ касается тестирования, построения процесса разработки и т.д.
5 фев 09, 18:37    [6785202]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
locky
Кстати, вот выявление всех возможных code path и автоматическое составление планов для их тестирования - интересная задача.

Я упираю не столько даже на выявление, сколько на то, что их запросто может оказаться - и регулярно оказывается - очень много. Модульное программирование как концепция появилось прежде всего в силу практической невозможности предусмотреть все пути выполнения кода и особенно их изменения в ходе доработок и сопровождения. И посвящено оно построению кирпичиков, которые работают при любых вызовах. С тех пор, конечно, вспомогательные технологии и вычислительные мощности шагнули далеко вперёд, и уже можно строить "диаграммы вызовов" и прочие подобные документы более-менее достоверными, но такое желание лично мне говорит, что "в консерватории что-то надо менять".
5 фев 09, 18:39    [6785207]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
softwarer

Ну, раз уж мы заговорили именно о "модульности"....
Давайте тогда оперировать "модулями".
К примеру, давайте таки (при рефакторинге P_2) не "заведём таблицу #temp" а сделаем "Declare @temp table()".
И, коли уж мы знаем, что некая таблица #temp учавствует в качестве "глобального объекта" для некого набора процедур - давайте строить соответсвующие тесты, которые бы учитывали эту особенность.
5 фев 09, 18:41    [6785218]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
locky
А с гуся мы имеем то, что в случае неполного плана тестирования

А полный дорог. Зачастую слишком дорог. О том и речь.

locky
Вот только это как-бэ не касается сиквела, это как-бэ касается тестирования, построения процесса разработки и т.д.

Сиквела это касается в той степени, что он - неявной передачей "не совсем локального" объекта по имени - даёт эффективный способ создавать такие ошибки. Соответственно повышаются требования к тестированию (то есть - условно - при той же оплате тестирования риск получается выше). При этом параметр @mode присутствует только ради утрированности простого примера, а в реальных ситуациях он скорее всего будет неявным.
5 фев 09, 18:45    [6785233]     Ответить | Цитировать Сообщить модератору
 Re: тогда вопрос номер два!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
softwarer
А полный дорог. Зачастую слишком дорог. О том и речь.

Вам шашечки - или ехать? (С)
Хотите максимальных гарантий - платите.
Не хотите - не платите.

softwarer
Сиквела это касается в той степени, что он - неявной передачей "не совсем локального" объекта по имени - даёт эффективный способ создавать такие ошибки. Соответственно повышаются требования к тестированию (то есть - условно - при той же оплате тестирования риск получается выше). При этом параметр @mode присутствует только ради утрированности простого примера, а в реальных ситуациях он скорее всего будет неявным.

Да, в реальности может быть нечто вроде if exists(select * from sometable where some_condition).
Однако, наличие таких "неявных параметров" не освобождает от необходимости написания правильных тестов, учитывающих все возможные пути выполнения.
5 фев 09, 18:50    [6785261]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Yo.!
Guest
в итоге мы имеем, что в сиквеле можно случайно поломать пролетавшую мимо P2 времянку и этого не заметить без всестороннего тестирования, в оракле даже если ты дурак дропнул GTT получишь тут же соответсвующие инвалидные пакеты.
5 фев 09, 18:50    [6785263]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
locky
Давайте тогда оперировать "модулями".
К примеру, давайте таки (при рефакторинге P_2) не "заведём таблицу #temp" а сделаем "Declare @temp table()".

Я бы рад, сам бы так сделал, вот только это, если не ошибаюсь, отказ от LTT в пользу табличных переменных. А весь наш спор идёт вокруг Вашего утверждения о необходимости LTT

locky
И, коли уж мы знаем, что некая таблица #temp учавствует в качестве "глобального объекта" для некого набора процедур - давайте строить соответсвующие тесты, которые бы учитывали эту особенность.

Имхо разумнее таки развести их по именам. Надёжнее и дешевле. А это уже практически GTT.
5 фев 09, 18:51    [6785269]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Yo.!
в итоге мы имеем, что в сиквеле можно случайно поломать пролетавшую мимо P2 времянку и этого не заметить без всестороннего тестирования, в оракле даже если ты дурак дропнул GTT получишь тут же соответсвующие инвалидные пакеты.

Не "вестороннего" а "минимально необходимого".
Вы посмотрите - какие пути выполнения существуют у P_2.
5 фев 09, 18:53    [6785282]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 60 61 62 63 64 [65] 66 67 68 69 .. 75   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить