Показаны сообщения с ярлыком скорость. Показать все сообщения
Показаны сообщения с ярлыком скорость. Показать все сообщения
Тестирование оптимизации...
среда, сентября 21, 2011В процессе тестирования поставок клиентам часть задач (около 10%) связана с оптимизацией кода на SQL.
Понятно, что проверить во первых стоит проверить, не поломалась ли функциональность приложения и только затем перейти ко второй фазе - непосредственная проверка оптимизации.
И, естественно, здесь зачастую и встречаются "проблемы" с тестированием, главная из которых кроется в необходимости обеспечения соответствующих условий воспроизведения ситуации - я здесь в свою очередь и множество подводных камней, даже куч из этих камней...
Куча первая - проблемы БД:

----------------
Понятно, что проверить во первых стоит проверить, не поломалась ли функциональность приложения и только затем перейти ко второй фазе - непосредственная проверка оптимизации.
И, естественно, здесь зачастую и встречаются "проблемы" с тестированием, главная из которых кроется в необходимости обеспечения соответствующих условий воспроизведения ситуации - я здесь в свою очередь и множество подводных камней, даже куч из этих камней...
Куча первая - проблемы БД:
- фоновые процедуры (служебные job'ы и процедуры приложения, выполняемые в фоновом режиме)
- "служебные" активности БД: пересчет индексов, высвобождение temp'овых таблиц, оптимизация хранения данных на жестком диске
Куча вторая - проблемы данных и процессов приложения:

- сколько данных нужно для повторения процесса и фиксации времени улучшения?
- сколько параллельных бизнес-процессов должно выполняться, чтобы повторить ситуацию?
- как обеспечить повторность проверки?
- добавим сюда и толщину каналов связи в случае тонкого (вернее средней упитанности) клиента?
Мелкие камешки в повторении состава "железа" и скорости работы исполнителя разбросаем вокруг.
Часть проблем, безусловно решается разными дополняющими и исключающими друг друга методами.. но возникает резонный вопрос:
Зачем все танцы с бубном, которые займут ещё и кучу времени, если мы изобретаем велосипед для нагрузочного тестирования?
Рассуждая так, прихожу к выводу, что толковое тестирование оптимизированных процессов* провести не получится, без организации нагрузочного тестирования с соответствующим исследованием и постановкой отдельного процесса.
Но тогда возникает резонный вопрос у заказчика - а был ли мальчик? А исправили ли медленную работу ПО?
Я пытаюсь решать такие вопросы обсуждая проблему с заказчиком, планируя нагрузочное тестирование отдельно, иногда - проверяя процесс на "разумные" цифры выполнения. Что не гарантируют полную удовлетворенность клиента, но оставляет всех без розовых очков "надежды и веры в тестирование оптимизации"
----------------
*Рассматриваем ситуации оптимизации процедур и функций в рамках произведения комплексных процессов: закрытия операционного дня банка; пересчет PnL и PV позиций; обработки 1000К сообщений для отправки и т.д. (код, а не бизнес-логика этапов процесса)
P.S.: все хотел куда-нибудь серых человечков добавить :)
Текст сообщения и комментарии...
Ночью работать нельзя уходить!!!
четверг, августа 20, 2009Ночная работа... Думаю, что нет никого из опытных ITишников, кто не работал бы ночью. Как переработка (или длительное пребывание на рабочем месте в течении 12-18 часов) отражается на вашей продуктивности?
Всем известны недостатки такой работы:
— усталость: закрываются глаза, голова не хочет думать, компьютеры тормозят сильнее, всю еду уже съели;
— давление начальства (ведь задерживаемся, чтобы сделать что-то быстрее, чем обычно);
— давление домашних (они хотят видеть нас дома «как обычно», а не позже на 3-4..10 часов)
— с каждым часом растущее желание — а не пошло оно всё лесом, я хочу домой/спать/есть/и т.д., подчеркнуть необходимое
— пропущенные дефекты в виду всего выше перечисленного...
Но ведь и плюсы у такой работы тоже есть:
— не знаю, как это случается, но на протяжении первых часов продуктивность растет (вероятно, все ещё надеяться успеть туда, куда начинают опаздывать)
— команда становится более единой -ведь «столько часов вместе!!!»
— зачастую, повышенная оплата труда (это скорее плюс для работника и минус для работодателя) за отработанное время
— все чувствуют на своей шкуре, что значит придерживаться сроков и держать обещания...
Что-то у меня все плюсы какие-то очень маленькие вышли... коллеги, может я что-то пропустил? Ведь переработка не такое и редкое дело в небольших софтверных фирмах. А в преддверии выпуска продуктов — это стандартное поведение исполнителей...
Думаю, случись это раз в два-три месяца или реже, то плохого в этом ничего нет. Единственное, на что стОит обратить внимание девелоперам/тестерам — превращение исключения в практику, когда знаешь, что каждая следующая итерация заканчивается плановой переработкой.
С. Архипенков в своих прикладных мыслях "Руководство командой разработчиков программного обеспечения" пишет о том, что завершение рабочего дня вовремя — один из факторов успешности проекта:
«У проекта разработки ПО сегодня не три, а четыре фактора успеха:...4. Каждый участник команды уходил с работы в 18:00 с чувством успеха.»
А где вы поставите запятую в теме поста?
Текст сообщения и комментарии...
Ускорение работы QTP: функции в отдельном файле
пятница, июля 24, 2009
Заметил такую особенность: если функции в Quick Test Pro выделять в отдельный *.vbs файл, то скорость выполнения операций возрастает значительно.
Поэтому теперь у себя в коде стараюсь как можно больше всего выносить в Associated Function Libraries.
Текст сообщения и комментарии...
А так ли нужны test cases ?
вторник, июля 21, 2009А так ли нужны test cases, когда нет времени на регрессионное тестирование вообще?
В небольшой фирме, где я сейчас работаю, времени на тестирование выделяется ровно столько, сколько необходимо на верификацию bugs, проверку новых features и прогонку smoke теста при выпуске нового патча.
Я привык относится к тестированию более систематически — прочитал книги Канера и иже с ним, в подборке куча регулярно читаемых «светил» отрасли и т.д. (здесь умышленно не касаюсь практического опыта) — и считаю, что хорошо построенный процесс тестирования (читай всей разработки) приводит к хорошему результату.
Но совсем недавно, на очередном team meeting, мне подумалось: А зачем писать test cases, если их никто не использует? (Честно говоря, они нужны только нашему заказчику, да и то раз в год...)
Подумал... и сам испугался: неужели я ставлю себя умнее, чем все эти умудренные опытом люди? Но потом мне вспомнилось цитата какого-то умного человека «документ пишется не для документа, а что бы документ использовался» (вольная интерпритация)
И в итоге вывод, который я сделал для себя, гонка за «процессом», «как нужно», «как написано» и т.д. не приводит к результату, если в этом нет необходимости.
Вода течет только туда, где есть место — «правильный» процесс тестирования нужно внедрять там, где без него невозможно жить, а «сопокойные» места (где нет проблем) лучше не трогать.
Текст сообщения и комментарии...







