Показаны сообщения с ярлыком нет ТЗ. Показать все сообщения
Показаны сообщения с ярлыком нет ТЗ. Показать все сообщения

вторник, 25 мая 2021 г.

Тесты Евровидения

Это не миф, что тестировщик может проверить всё, в том числе и общемировой конкурс. А если вам на собеседовании предложат рассмотреть не карандаш или круглый люк, то вы будете готовы к такому вопросу.
С чего начать тестирование? Конечно же с документации. Но если её нет в явном виде, то "возьмём быка за рога" и подступим к объекту тестирования с фронта. Донесения разведки - это видимые факты и аналитические заключения. А какая явная информация нам доступна? Сперва - наименование, затем - общеизвестные правила. Из этого определим функциональность продукта и попытаемся применить свои знания и опыт тестирования.
Предмет обследования - "песенный конкурс Евровидение". Разложим наименование на функциональные части:
а) соревнование песен;
б) визуальное представление песен;
в) ограниченность территории - Европа.
По факту, только один пункт соблюдается из трёх. Конкурс песен уже давно перерос в политическое действие по голосованию за земляков. Да и визуальное средство - телевидение - никак не способствует уделению внимания песне, её автору и исполнителю. Вместо этого титры, предшествующие выступлению, большими буквами показывают наименование страны участника, а далее по убывающей геометрической прогрессии шрифт имени исполнителя, наименования песни и её авторов говорит о том, что эта информация незначительна. Это ли не подтверждение того, что Евровидение - никак не песенный конкурс, а соревнование стран, то есть тест отрицательный. Как исправить? Элементарно. Сместить акцент на название песни, исполнителя и создателей, а название стран ограничить иконками флагов, как это работает на олимпиадах.
Поскольку наименование конкурса можно перевести, как "европейский взгляд", то в этом плане тест в достаточной мере положителен. А с приходом цифровых технологий в телевидение визуализация песен становится всё эффектнее. Хотя и здесь можно добавить кое-что. Допустим, все участники станут петь только на родном языке. В этом случае, только представители их соседних стран смогут немного понимать смысл песни. А вот такая технология телевидения, как телетекст, могла бы способствовать пониманию всеми зрителями, давая подстрочный перевод.
К сожалению, а может наоборот, охват аудитории расширен с Европы до Австралии. Это не укладывается в рамки наименования конкурса, а значит тест кардинально не пройден. Элитарное ограничение было наложено в самом начале производства продукта. И его несоблюдение путём добавления иного континента нарушает исходный замысел. Можно ли такое исправить и как? Разве что переименованием конкурса или отказом от рамок одной Европы и расширением телевизионного соревнования до полного покрытия всего земного шара. Тем более, что Интернет сегодня способствует распространению европейского хита на всех континентах.
Если вы обычный телезритель, а не нанятый конкурсом тестировщик или хотя бы сотрудник телефонной компании, то полноценное нагрузочное тестирование по приёму и обработке телефонных звонков сделать не в состоянии.
Правила конкурса ограничивают голосющих регионом и количеством звонков:
* нельзя звонить за свою страну из своего же региона;
* в голосовании участвуют только регионы с попавшими в полуфинал и финал участниками;
* количество голосов с одного номера лимитировано двадцатью.
Эти правила вполне можно проверить, если у вас достаточно средств на телефонном счету и вы можете свободно перемещаться между голосующими в текущем этапе странами. Вам не должно быть доступно отдать голос за страну, в которой вы физически находитесь, но номер может обслуживаться по роуминговому тарифу, то есть на ваш звонок должно быть соответствующее сообщение об отказе. Такой же отказ должен быть, если вы находитесь в стране, участник которой не попал в транслируемый этап конкурса (первый или второй полуфинал, гранд-финал). И, так как на карте Европы нет мест, где в нескольких метрах проходит граница трёх-четырёх стран, то максимально за свою страну можно успеть отдать не более сорока голосов, расположившись вблизи границы между двух не своих стран, где вышки сотовой связи определят вашему телефону различные регионы.
Поскольку баллы от профессионального жюри суммируются элементарной алгеброй с голосами телезрителей через целочисленные значения, то контроль здесь собственно и не нужен. А вот подсказки ведущим о минимальном количестве голосов, которые могли бы отдать телезрители, для того чтобы очередной конкурсант обогнал лидера, вполне могли бы помочь.
Места победителей распределяются по сумме двух мнений - профессионального музыкального жюри каждой страны и по мнению рядовых телезрителей. Результаты жюри сильно приближены к геополитической теме, а обычные слушатели либо действительно голосуют сердцем, либо только те, у кого хватило сил не уснуть всю ночь выходных. Казалось бы, убери баллы профессионалов, и конкурс вернётся на свою песенную волну без политики. Но этого делать нельзя в силу того, что любая программа СМИ имеет право обучать и воспитывать. Жюри, расставив своеобразно баллы, пытается привлечь зрительское внимание к мелодичности песни, постановке номера, исполнительским данным. Но наряду с этим, к их взгляду примешивается желание угодить соседям, поскольку голосование открытое и люди не хотят портить отношения с окружающими странами. А может это из-за того, что лингвистика вмешивается - созвучные языки легче в понимании. Как же можно минимизировать влияние политики на результаты песенного конкурса? Вот, например, представителя и песню в каждой стране выбирают на специальных отборах, конкурсах. А почему бы и не выбирать профессиональное жюри таким же способом?
Мне очень импонирует условие конкурса, которое не ограничивает язык песен. Тем самым национальности, издавна проживающие на территории конкурса, могут сохранять и прославлять свою народную культуру. Если именно ради этого в рейтинговой таблице соревнующихся указывают не название песни и исполнителя, то можно пренебречь политической направленностью конкурса. Но, как уже ранее возникла мысль, хорошо бы привлечь телетекст к лучшему пониманию смысла песни. Телевидение вполне позволяет транслировать подстрочный перевод. Подозреваю, что в таком случае голосов станет больше.
Если создателей и исполнителей обязать петь на родном языке, то переселенцам станет сложнее пробиться. А к постановке номера перестанут привлекать сторонних продюсеров, тем самым давая возможность познакомить весь мир с культурой страны более глубоко. Если учесть, что песня-победитель будет весь последующий год в хитах радиостанций, то местные производители от такого будут лишь в выигрыше. Туристический поток будет увеличиваться за счёт знания языка через песню. Скрытый рекламный шаг геополитики - исполнение на родном языке.
Ещё одна сторона телевещания конкурса в рекламировании страны, его проводящей. Ролики, предваряющие каждый номер, показывают наиболее привлекательные места принимающей конкурс страны. Это тоже скрытая реклама туристического бизнеса.
Поскольку конкурс телевизионный и в самом названии заключено "видение Европы", то любой шоу-номер вполне можно включать в хит-парады клипов музыкальных теле-каналов. Но если представление ограничено видеорядом лишь для телекамеры, то у песни меньше шансов покорить сердца зрителей в зале конкурса и на концертах.
Очередной плюс телевещания заключается в многооконности экрана. Во время распределения баллов телезрители оказываются в самом выгодном положении: отслеживают не только шутки ведущих в разных странах, но и таблицу баллов с мультипликацией распределения мест. На этом этапе очень важна слаженность работы монтажёров камер, чтобы титры по смыслу совпадали с назначением и размером части экрана, чтобы в каждом функциональном окне не сбивалась логика и скорость отображения. В числе глюков Евровидения-2021 подмечено, что пара-тройка команд грин-зоны остались за кадром при расстановке баллов. А вот положительно могу оценить переходы на команды, вынужденные отсиживаться вне грин-зоны. Также хорошо отработали точечные камеры команд, когда не перепутали ни одного дивана временного победителя. Подозреваю, что монтажёры создали чёткую базу данных, связав диваны участников с закреплёнными за ними видео-точками.
Компьютерные технологии значительно улучшили с годами восприятие процесса расстановки баллов и сортировки мест. Мультипликация перемещения участников с занимаемого места на иное за счёт прибавки очередной порции голосов всеми воспринимается ярче и быстрее, нежели обычное проговаривание ведущим сумм и мест. Визуализацию единого списка стран, проголосовавших за участников, тоже считаю уместным применением графического программирования. Но в этих списках всегда используется только название страны, вместо имени исполнителя и самой песни. Это очередной факт того, что конкурс имеет политическую направленность. Да, шоу-номер и певца готовила по сути вся страна, но это не значит, что зрители голосуют за регион. Наоборот, слушатель услаждает свой слух и глаз, а не повышает политическую дипломатию. Современные телевизоры имеют достаточные размеры, чтобы показать полное наименование песни, имя исполнителя и авторов, флаг страны-участницы и дополнительно список голосующих стран. На мой взгляд обыденного зрителя результирующая таблица должна состоять не из списка стран с флагами, а из названий песен и фото исполнителей. Только в этом случае песню и певца можно будет дольше помнить. Проверьте себя - много вы можете напеть мелодий, впервые появившихся за счёт конкурса Евровидение? Мероприятию уже 65 лет, а на слуху не более десятка мелодий и пяток певцов. Это ли не подтверждение того, что конкурс из песенного давно перерос в геополитический.
Как и любой выпускаемый билд, Евровидение имеет своего ответственного тестировщика. Здесь его называют супервайзером. Именно он подтверждает благополучный исход производства и даёт своё заключение о полном совпадении принятых значений с отнесёнными к ним данными базы.

Итак, мы с вами протестировали телевизионный песенный конкурс "Евровидение". Как вы сами убедились, даже к такой казалось бы отдалённой тематике можно приложить наши знания и умения тестирования. Аналогично моим предыдущим отчётам о тестировании некоторые моменты подсвечены: жёлтым - объект тестирования, зелёным - положительный исход теста, красным - проваленный тест, сиреневым - сомнительный результат или невозможность исполнения, голубым - предложение по исправлению. Прикладывайте свой опыт и разум ко всем случаям окружающей жизни, тогда все ваши действия и предложения станут конструктивными, и никто не сможет вас осудить в голословности. А ваш дар критика разовьётся сам по себе.

пятница, 25 сентября 2020 г.

ТО о SD 5.1.1.361

Отчёт о тестировании SQLDetective 5.1.1.361, опубликованном 23 сентября 2020 года, основан на Release Notes. Предыдущий билд был полгода назад, текущий не сменил даже номер релиза, поэтому значительных новшеств ждать от него не стоит, а только исправления накопившихся багов. Количество пунктов RNs говорит о том, что продукт не пользуется особой популярностью, что доказывает финансовый отчёт о компании ООО "Конквест Девелопмент Рус", сменившей свою локацию с США на Россию. Оценка проведена, как и прежде, в баллах и процентах готовности билда к передаче пользователю.

IMPROVEMENTS 1+0.8+0.5+0.9+0.9+0.3+0.5=4.9 баллов из 2+1+1+1+1+1+1=8 возможных, за баги -2
Object Navigator 0.7+0.3=1 из 2 возможных, за баги -2
Connected sessions in the Object Navigator are now colored according to the selected database type.
Подключенные сессии в Навигаторе Объектов теперь подкрашены в соответствии с выбранным типом базы.
Отсутствие единственного слова (tree) в тексте RNs превращают его в проблему для пользователя. Подсветка схем - это продуктовая фича, настраиваемая в опциях подключения к базе (Session / New Session.. / Options / Database Type / Name). Цвет этой подложки давно используется в комбобоксе главного тулбара приложения и в строке состояния Навигатора Объектов в режиме отображения всего содержимого окна. Теперь же эта подложка идентична для верхней ноды дерева объектов. Дерево Навигатора Объектов позволяет наличие нескольких подключений, но ветка лишь одного может быть развёрнута и считается текущей рабочей. Если курсор размещён на верхней ноде подключения, то подсветка теряет свой выбранный цвет, что нивелирует фичу до нуля. Более полезным было бы подсветить всё развёрнутое дерево в выбранный цвет. Исходя из этих замечаний могу дать новшеству лишь 0.7 балла.
If a database connection password expires soon or has already expired, both cases are now indicated in the "Change password" window.
Если пароль подключения к базе заканчивает свой срок или уже перестал быть действительным, то оба случая отображаются в окне для смены пароля.
Мне, как знатоку продукта с первых дней его создания, очень странно читать изменения функции коннекта к базе в блоке модуля Навигатора Объектов, поскольку эта самостоятельная фича доступна в первую очередь через главное меню, из окна коннектов и в редакторе SQL Editor. Эта оплошность тех.писательницы, составлявшей RNs, будет учтена при подсчёте баллов. Для проверки новшества рекомендую создать тестового юзера базы с правами на подключение:
CREATE USER test_user IDENTIFIED BY &pwd
/
GRANT CONNECT TO test_user
/
GRANT RESOURCE TO test_user
/
Это вполне быстро и просто можно сделать не в SQL Editor, а в Мастере Объекта (Object / Create Object.. / Non-Schema Objects / User), где и переключать режим окончания действия пароля (ALTER USER test_user PASSWORD EXPIRE), а также сам пароль (ALTER USER test_user IDENTIFIED BY &new_pwd), поскольку функция назначения нового пароля через вышеозначенную форму давно не работает. Но при этом список коннектов в SQL Editor, даже не открывавшемся перед сменой пароля и попытками подключения, пополняется с каждой попыткой назначения пароля через обновлённую форму. Кстати, этот список никак не увеличивает нумерацию коннектов, что усиливает серьёзность обнаруженного бага. Если юзера будете создавать на основе профиля с предопределённым лимитом времени действия пароля, то постарайтесь ограничиться своим триальным периодом SD (а не стандартом Oracle в 180 дней), чтобы не испортить триальный ключ переключением дат на локальном компе. Окно назначения нового пароля через основную форму подключения к базе изменилось незначительно: только в строке состояния маленький красный прямоугольник растянут в подпись. 
Диалоги подтверждения нового пароля
В остальном форма ничем не стала удобнее: не добавлено ни имя пользователя, которому присваивается новый пароль, ни имя базы, в которой этот юзер существует, ни даты, с которой пароль перестал действовать. Окно назначения нового пароля через коннект в SQL Editor имеет кардинально иной интерфейс и абсолютно не изменилось по сравнению с предыдущим билдом. В общей сложности новшество могу оценить лишь в 0.3 балла, а за выявленный старый баг сниму два балла.
Find Objects 0.8 из 1 возможного
Removed Public schemas from the system schema list, so the Public schemas now remain visible when the "Hide system schemas" check box is enabled.
Убраны общие схемы из списка системных схем, теперь общие схемы остаются видны, когда галка скрытия системных схем включена.
В первую очередь хотелось бы уточнить термин "общие схемы", которые не являются системными. Полагаю, что это наборы объектов из числа примеров (HR, SCOTT, APEX_...) и ещё некоторые другие без "SYS" в имени, но имеющиеся в стандартной нулевой установке базы. В дереве Навигатора Объектов в ветке схем можно найти ноду Public, в которой всегда только два типа объектов - синонимы и связи к сторонним базам, но одноимённый юзер никогда не бывает в ветке Users. Для проверки новшества откроем "Tools / Find Objects / Schemas" в прошлом и текущем билдах, включим опцию прятания системных схем и сравним списки. Оказывается, что изменение всего лишь оставляет в списке схем само значение схемы Public, то есть не причисляет к схемным общие синонимы и связи к базам. Это значит, что тех.писательница ошибочно использовала множественное число в тексте RNs, тем самым показав своё невежество в знании базы Oracle. Опечатка снижает балл.
Compare Schemas 0.5 из 1 возможного
Optimized the memory usage for schema comparison with a large number of objects in each.
Оптимизировано использование памяти при сравнении схем с большим количеством объектов в каждой.
Данное новшество следует проверять в рамках нагрузочного тестирования, для которого необходимо иметь соответствующие тестовые данные (схемы с большим количеством объектов всех типов - от тысячи и выше), операционные системы различных версий (от Win7 и выше) и сочетания оперативной памяти (до 3Гб для 32-битной и 2-16Гб для 64-битной ОС). Если вы обладаете такими различными наборами, то смело проводите тесты производительности и замеряйте используемое пространство оперативной памяти на всех этапах сравнения схем, которые по условиям новшества могут размещаться на едином сервере данных и даже в одной и той же базе и табличном пространстве. Поскольку у меня нет ничего для тестов, то даю полбалла, поверив на слово программисту.
Profile Wizard 0.9 из 1 возможного
Introduced the support for INACTIVE_ACCOUNT_TIME in the Profile Wizard and DDL.
Введена поддержка параметра неактивного времени аккаунта в Мастере Профиля и его DDL.
В последних версиях базы Oracle для профиля пользователя появился параметр пароля о времени его неактивности. Для тестирования вам необходимо иметь базу соответствующей версии и юзера в ней с правами на создание и редактирование профилей пользователя. Интерфейсный компонент ищите на странице "Password parameters" мастера профиля (Object / Create Object.. / Non-Schema Objects / Profile). Перед тестированием подробно изучите статьи по созданию и редактированию профилей пользователя в документации Oracle, из которых выясните ограничения на параметр по версиям баз, правам доступа и значениям. Интерфейс новой опции проверяйте по чит-листу. Согласно внутренним правилам ConquestSS, параметры объекта должны быть доступны для редактирования в соответствии с версией базы, то есть этот новый параметр вы можете видеть пустым и неактивным элементом на форме в ранних версиях базы и полноценно редактировать в последних с достаточным набором грантов. Экспорт DDL и пересоздание объекта по выгруженному коду (не только через мастер объекта) является обязательным функциональным тестом поддержки нового объекта или его части в SD. Не забудьте, что структуру объекта можно посмотреть в множестве мест: мастер объекта, навигатор объектов, сравнение баз, некоторые утилиты администратора базы (Fast Copier не поддерживает профиль, DB Examiner перечисляет параметры, экспорт схем только со схемными объектами работает). К сожалению, тех.писательница не уточнила версию базы, поэтому и мне для тестов не удалось получить необходимую. Полную проверку новшества проделать не удалось, а значит и пункт RNs не получает полный балл.
Synonym Wizard 0.9 из 1 возможного
The object name is now automatically specified in the Synonym Wizard if the synonym is created from the Synonyms’ sub-folder.
Имя объекта теперь автоматически определяется в мастере синонима, если он создаётся из подпапки синонимов.
Скорее всего имеется ввиду подпапка синонимов у объекта в дереве Навигатора Объектов, а не подпапка всех синонимов выбранной схемы. Для создания синонима существует множество способов в SD:
- через главное меню "Object / Create Object.. / Schema Objects / Synonym" мастер синонима откроется с пустыми значениями родительского объекта и нового синонима в текущей схеме. При этом нет никакой разницы, какая нода активной схемы подсвечена курсором в Навигаторе Объектов;
- через контекстное меню "Create Synonym" объекта в дереве Навигатора Объектов мастер нового синонима заполнит владельца синонима схемой Public, а имя родительского объекта и его владельца заполнятся текущими значениями;
- если в дереве Навигатора Объектов курсор стоит на ноде синонимов объекта, как его подпапке, то мастер нового синонима можно открыть либо по главному меню "Object / Create", либо из контекстного меню "Create". При этом новый мастер отработает одинаково: владелец синонима - Public, владелец родительского объекта - активная схема, имя родительского объекта в прошлом билде пустое, в новом - текущий объект.
Исходя из вышеописанных вариантов могу заключить, что это не улучшение, а исправление недоделки, которую заметили ещё четыре года назад, но только сейчас поправили. Путанное описание и сомнительное размещение в списке RNs не позволяет моей совести дать полный балл.
Export and Import Wizards 0.3 из 1 возможного
Improved the layout of the UI elements in the Export and Import Wizards.
Изменён внешний вид интерфейсных элементов в мастерах экспорта и импорта.
Стоит пояснить, что имеются ввиду мастера работы с данными, а не объектами базы. Несколько раз давно в моих отчётах были замечания по некоторым страницам этих форм. Так что, если это не кардинальные изменения, то пункт RNs должен быть в группе исправленных багов. Проверять придётся оба мастера и на всех шагах, то есть сравнению будут подвержены 2(мастера)*7(шагов)*9(типов)=126 скриншотов из каждого билда. Если для тестирования мастера экспорта достаточно лишь иметь в любой базе данных любую таблицу или вьювер с данными, то для тестирования мастера импорта данных придётся создать файлы с соответствующими тестовыми данными. Поэтому рекомендую начать с мастера экспорта и создать файлы всех типов для последующих тестов мастера импорта, в котором нет особой необходимости выполнять сам импорт на последнем шаге. Когда в ConquestSS внутренняя WiKi создавалась в Confluence, то первоначально она наполнилась моими наработками в виде чит-листов. А после проведения акции LFT внутренние стандарты для интерфейсных компонентов приобрели более жёсткие лимиты, утверждённые руководством. Среди таких параметров - минимальный и максимальный размеры рабочих окон, которые не должны позволять юзеру свободно работать со всеми элементами. Точные размеры вписаны были из расчёта минимальных технических характеристик популярных мониторов. Например, минимальная высота окна не должна быть больше 768 пикселей, а расстояние между элементами 4-6 пикселей. Мои тесты показали, что к обоим окнам применены параметры по расположению элементов, то есть учтены интервалы пустот. Но с минимальным размером в обоих окнах проблемы. Окно экспорта имеет слишком большую высоту даже на шагах с максимальным количеством элементов, из-за чего функциональные кнопки для перемещения по шагам прячутся за пределами рабочей области программы. А окно импорта данных наоборот не получило новую минимальную высоту, из-за чего некоторые элементы получаются обрезаны и даже не появляется ползунок вертикальной прокрутки. Оба эти бага считаются критичными для новшества об интерфейсе. Поэтому пункт RNs зарабатывает лишь 0.3 балла.
Tray Notifications 0.5 из 1 возможного
Users are now reminded about the upcoming subscription renewal.
Пользователи теперь оповещаются о приближающемся обновлении подписки.
Следует пояснить, что речь идёт о лицензии продукта. Много лет назад CEO придумал вариант аренды продуктов ConquestSS на месяц, квартал или полгода. Но после одного года поддержки такого типа лицензирования финансисты исключили этот способ выманивания денег из пользователей. Программисты же функционал в продукте и на сервере не удалили, а лишь заремарили. Поэтому маркетолог, выудивший у меня идею возврата к лицензиям аренды, упростил её до месячной подписки и довольно быстро внедрил, как свою, даже не сказав мне за это "спасибо". Поскольку система предупреждений для триалов, AMS и пакетных лицензий была написана после закрытия аренды, то это новшество программист копи-пастил в систему подписки. Полагаю, что предупреждение должно появляться один раз за неделю до окончания и каждый раз за 3-5 дней до срока очередной оплаты, но при этом не спамить юзера многопользовательской лицензии. В CS и CDB против спама была введена опция в Preferences, но в SD её так и не дописали. Для тестирования новшества необходимо купить подписку, а также запускать SD с компа, имеющего доступ к Интернету. В надежде, что программист скопировал код в достаточной мере, считаю новшество сделанным, но поскольку не имею возможности его проверить, а также за счёт пространного текста от тех.писательницы даю лишь полбалла.

BUGS FIXED 0.6+2.8+0+0+0.8+0-1+0.9+0+0+0+0.7+0.8+0.9+1+1+1=9.5 баллов из 1+5+1+1+1+1+2+1+1+1+1+1+2+1+1+1+1=23 возможных , -1-2-1-0.5=-4.5 за баги
Core 0.6 из 1 возможного, -1 за баг
When the corresponding options are enabled for the current database type, the user is now prompted to confirm the execution of the following statements:
- GRANT, ADMINISTER KEY MANAGEMENT in the SQL Editor.
- PURGE in the Object Navigator.
- GRANT, REVOKE in the Object Privileges module.

Когда соответствующие опции включены для текущего типа базы данных, юзер теперь оповещается о подтверждении выполнения следующих команд:
- грантование и администрирование ключей в SQL Editor;
- очистка в Навигаторе Объектов;
- выдача и отнимание грантов в модуле объектных привилегий.

Этот баг, как явная недоделка фичи о конфирмации DDL команд, давно был в моих отчётах о тестировании, но лишь сейчас у программиста дошли до него руки. К сожалению, тех.писательница никак не намекнула, о каких опциях идёт речь. Поясню. Нигде в настройках приложения их вы не найдёте, потому что они спрятаны в опциях подключения к базе (Session / New Session.. / Options / Database Type / Confirm execution required for the following statements: DML, DDL). Какие из перечисленных команд в Oracle считаются DML или DDL, смотрите в моей таблице. Также вам стоит знать, что выставленные опции касаются только выбранного типа коннекта по градации приложения. Здесь всё ещё не исправлен баг о смене опций для уже подключенного коннекта, например, подключиться к базе каким-нибудь типом без включенных опций на подтверждение исполнения DML и DDL, сразу же откройте окно подключений к базе ещё раз и в его опциях включите их с сохранением настроек, но без повторного подключения к базе, а в имеющейся сессии разверните ноду таблиц в Навигаторе Объектов. DML не сможет выполниться и папка окажется пустой.
Перед тестированием фикса вам стоит внимательно изучить статьи документации Oracle о вышеперечисленных командах, чтобы у тестового пользователя было достаточно прав в базе на их исполнение. Для тестирования SQL Editor возьмите тексты примеров из этой документации и подправьте имена юзеров и объектов на свои, либо экспортните в редактор команды из модуля объектных привилегий. Здесь можно отметить баг о нераспознавании некоторых служебных слов в редакторе кода, то есть они не подсвечиваются должным образом. Также стоит вам знать, что команда про администрирование ключей появилась в последних версиях базы Oracle. Для тестирования в Навигаторе Объектов используйте главное меню "Object / Drop" или контекстное меню "Drop" некоторых объектов, для которых актуальна команда Purge, например, ненужные таблицы с ненужными данными, и самостоятельную команду Purge контекстного меню для объектов из корзины (папка "Recycle Bin"). Здесь вы обнаружите, что очищение корзины, как опция при удалении объекта, не считается в SD отдельной DDL командой и исполняется без подтверждения, что является недоделкой. Для тестирования модуля привилегий позаботьтесь о достаточности прав самого подключенного юзера на выдачу и отнимание грантов. Здесь будьте внимательны к галке о выключении опции. Во-первых, она всегда включена, что автоматически отключает все последующие конфирмации. Во-вторых, в наименовании опции значится, что её изменение можно сделать в Preferences, что является ложью, так как опция подтверждения устанавливается лишь в окне подключения к базе.
Итого, если баг разделить на три части по модулям, то из-за выявленных недоделок и сопутствующих багов могу дать лишь 0.6 балла и ещё сниму балл за баг при выставлении опций.
SQL Editor 1+1+0+0.8+0=2.8 из 5 возможных, -2 за баги
Formatting of scripts copied from the SQL Editor is now preserved when pasted in editors that support RTF format.
Форматирование скриптов, скопированных из SQL Editor, теперь сохраняется при вставке в редакторы, поддерживающие RTF формат.
К сожалению, тех.писательница не уточнила, из какого конкретно окна редактора надо копировать текст с особым форматированием. Дело в том, что весь модуль SQL Editor состоит из нескольких видов редакторов: кода, результатов исполнения, структура скрипта, история команд, подсказчик команд. Если же имелся ввиду только основной редактор кода, то аналогичную правку бага стоит проверить в Stored Program Editor и мастерах объектов, состоящих из интерфейсного компонента SynEdit. Исходный текст возьмите всех различных вариаций, настраиваемых в "View / Preferences / Code Editors / Color". В качестве приёмника вставки можно использовать общедоступные WordPad или MS Word редакторы. По результатам моих тестов могу дать балл, но с примечанием о неприменимости фикса к окнам с результатами исполнения скриптов.
Считаю уместным здесь пожаловаться на давнюю проблему текстов RNs для всех продуктов ConquestSS, которые не стоит в оригинале копировать из PDF и вставлять сразу в WordPad, поскольку последующее его дописывание на русском языке во многих местах при сохранении как-то неожиданно меняет кодирование на кракозябры. В качестве выхода из положения мне приходится форматированный текст из PDF копировать в Notepad, который снимает с текста всякие кривые фонты, и только потом из Notepad копировать чистый текст и вставлять его в удобный текстовый редактор, где приходится уже вручную форматировать, применяя красивые фонты. Полагаю, что причиной является безалаберное отношение оформителя текста к своим обязанностям по поддержанию единого стиля форматирования. За такую проблему можно с каждого билда снимать по баллу. А ещё при инсталляции и вообще в системных требованиях давно пора увеличить достаточное свободное пространство с 200Мб до 300-400Мб. 
If a session is disconnected while running a long query, the error message "Session [session_name] is busy" now shows a relevant session name.
Если сессия разъединена во время исполнения длинного запроса, сообщение об ошибке теперь показывает соответствующее имя сессии.
Для проведения теста вам понадобятся два-три коннекта к разным базам или разными юзерами, или одинаковыми, но проверьте нумерацию коннектов. Откройте SQL Editor, в котором запустите запрос на длинное исполнение в одной из сессий. Обычно я делаю в SQL Output полную выборку из системного вьювера со всеми объектами и объединяю её с аналогичной несколько раз. Пока он исполняется, попробуйте отключить обе сессии сразу или одну с исполняемым запросом, либо закройте всё приложение. Существует ещё один способ отключения сессии - через её убивание (либо вручную командой Kill, либо в Session Navigator). В прошлом билде баг был заметен на двух одинаковых подключениях с различной нумерацией.
Select statements starting with parenthesis are now correctly executed in the "Data Output" tab.
Выражения выборки, начинающиеся с кавычек, теперь корректно выполняются в закладку данных.
К сожалению, в документации Oracle нет описания каких-то выборок, начинающихся с кавычек. Поэтому и о правильности их исполнения речи быть не может. Пункт RNs никак не могу учесть, в чём состоит полная вина тех.писательницы.
Modifying the vertical toolbar of the SQL Execution History by adding and/or removing icons in the Icon Dictionary now works correctly.
Изменение вертикального тулбара истории исполнений добавлением и/или удалением иконок в словаре иконок теперь работает корректно.
В нескольких прошлых билдах была замечена проблема интерфейса из-за пропавших всех иконок с тулбара истории исполнений. Теперь настройка восстановилась. Но странная величина тулбара по отношению к панелям и нижняя стрелка для какого-то сохранения оставляет юзера в непонимании. Поэтому фикс не получает полный балл. Также стоит обратить ваше внимание на использование термина correctly без отсылки к правилам.
В рамках этого фикса стоит отметить, что настройки главного тулбара различны в предыдущем и текущем билдах. Но этот факт не учтён в RNs, как усовершенствование. Из-за чего у юзера могут возникнуть позже проблемы при переносе настроек приложения с одного компа на другой (забудет скопировать какой-нибудь файл).
Executing the same statement several times no longer opens multiple pages in the Data Output tab.
Исполнение одного и того же выражения несколько раз больше не открывает несколько страниц в закладке с данными.
Для связи редактора и закладки с выходными данными существует несколько настроек на страницах установок приложения "View / Preferences / Code Editors / SQL Editor / Editor and Tab Handling", "View / Preferences / Code Editors / SQL Editor / Data Output" . Также на вывод данных влияет опция "Smart output" в самом редакторе. Одинаковый запрос может быть в разных закладках редактора, либо дублироваться в едином скрипте. Поэтому в сочетании опций и действий юзера всегда найдётся несуразица. В чём была конкретика текущего фикса - отгадать сложно, поэтому считаю его припиской и балла не дам.
Stored Program Editor 0 из 1 возможного
Undoing all changes in a stored object reverts the object’s state back to non-modified.
Возврат всех изменений в хранимом объекте возвращает статус объекта к немодифицированному.
Отдельной команды "возврат всех изменений" в редакторе не существует, так что будем иметь ввиду конечное применение общепринятой горячей клавиши "Ctrl+Z". Состояние объекта графически отображается в статусной строке разноцветными прямоугольниками. Тест состоит из следующих шагов: открыть любой код или файл в редакторе, добавить или удалить один символ текста, нажать горячую клавишу или кнопку на тулбаре для отката изменений до гашения стрелки "Возврат изменений", закрыть редактор. Если бы фикс был сделан, то никакого предложения о сохранении или компиляции модифицированного кода не предлагалось. Но диалог появляется, а также голубой индикатор правки горит, поэтому заключаю, что никакого фикса не сделано. То есть и балл билду не светит.
SQL Editor / Stored Program Editor 0 из 1 возможного
The code editor no longer flickers on moving the caret when a long script is open and the option "Cursor beyond EOL" is disabled.
Редактор кода больше не мерцает при движении курсора, когда длинный скрипт открыт и опция о конце строки и курсоре выключена.
Опция о курсоре и конце строки настраивается на странице "View / Preferences / Code Editors / General". Для теста нам понадобится код с длинными строками, не только больше правой границы "View / Preferences / Code Editors / Display / Margin and Gutter / Width", но и прячущаяся за правым краем окна редактора. Также длина скрипта должна определяться и количеством строк, уходящими глубоко за нижнюю границу редактора. В качестве движения курсора будем использовать кнопки стрелок, клики мышью и вставку пустых строк. Полагаю, что раньше было излишнее перерисовывание окна редактора, заметить которое можно при определённом техническом оснащении монитора и его видеокарты. Мои тесты не показали никакой разницы в работе курсора редакторов, поэтому не могу дать балл за фикс.
Object Navigator 0.8 из 1 возможного
Clicking "Create" from the Object Tree now correctly opens the relevant object wizard for triggers, clusters, and collections.
Клик по команде создания из Навигатора объектов теперь корректно открывает соответствующий мастер объекта для триггеров, кластеров и коллекций.
На самом деле команда создания объекта может быть вызвана не только из контекстного меню для нод дерева Объектного Навигатора, но и через главное меню "Object / Create ..". Этот баг несколько раз отмечался в моих отчётах тем, что перечисленные объекты невозможно было создать через мастер, но в дереве навигатора объектов при этом создавались пустые ноды соответствующих типов. Кроме этого, мастер коллекций был упразднён и код переведён в Stored Program Editor. Теперь же для новых объектов в дереве навигатора не формируется пустая нода, как это работает для староинтерфейсного мастера таблиц, всё ещё не отвязанного от дерева объектов. И перечисленные объекты открываются в своих мастерах. Эти мои примечания поясняют вам значение термина correctly. Поскольку этого не сделала тех.писательница, то полный балл за фикс дать не могу.
Dataset Manager 0 из 1 возможного
Filters created for a table no longer appear in the filter list of another table with a similar table name.
Созданные для таблицы фильтры больше не появляются в списке фильтров для другой похожей одноимённой таблицы.
Скорее всего здесь имелись ввиду одноимённые таблицы разных баз и схем, поэтому для теста нам понадобятся коннекты к разноимённым базам (это можно сделать через tns-файл, назвав по разному одну базу дважды) и одноимённые таблицы с одинаковым и различным наборами полей в разноимённых схемах. В качестве менеджера данных подойдёт список фильтров в SmartDataset или "Object Navigator / ContentSelector". К сожалению, в предыдущем билде мне не удалось выявить проблемы путанием фильтров и имён таблиц, поэтому считаю фикс припиской и не даю ни балла.
Code Insight -1+0=-1 из 2 возможных
The Code Insight window is now shown correctly from the first time when the "Include 'Code Assistant' data" option is enabled.
Окно подсказчика кода теперь показывается корректно с первого раза, когда включена опция добавления данных ассистента кодирования.
Напомню, что ассистент кодировщика - это самостоятельный модуль, который доступен из главного меню "View / Code Assistant" и предлагает упростить работу через вставку целых блоков стандартного кода, а помощник кодировщика - это сочетание структуры кода в редакторе с отображением списка соответствующих введённым символам наименований объектов, параметров или переменных. Опция включения данных ассистента в помощник кодирования настраивается в "View / Preferences / Code Editors / Code Insight". В чём заключается корректность правки придётся выяснять юзеру самому, поскольку тех.писательница не указала исходные правила. По сравнению с предыдущим билдом этот фикс могу считать только ухудшением, поскольку после набора двух символов SD зависает одинаково долго, а после этого курсор теряется и ввод последующих символов невозможен. Поэтому пункт RNs отнимает балл у билда.
Code suggestions shown in the Code Insight window are no longer corrupted and scrolling the window no longer causes an access violation error.
Предложения кода в окне помощника больше не портятся и прокрутка окна больше не вызывает ошибок доступа.
При тестировании предыдущего фикса мной не было замечено никаких проблем в текстах подсказок и при прокрутке. Поэтому пункт RNs, как приписка, не заслуживает балл.
Query by Example 0.9 из 1 возможного
The "Ignore case" option now works correctly for the CLOB columns.
Опция игнорирования регистра теперь корректно работает для CLOB колонок.
Для теста нам понадобится таблица с данными в CLOB поле, заполненном разнорегистровыми текстами. Нажав красный вопросик в левом верхнем углу грида или кнопку New в "Dataset Manager" или F7 в гриде, откроем редактор фильтра и введём значения для обозначенного поля. Смысл термина корректности заключается в том, что опция просто на просто теперь действительно применяется. Но, возможно, тех.писательница имела ввиду и что-то иное не описанное, поэтому не дам полного балла.
Code Analyzer 0 из 1 возможного
The rule "Specify full column list" now shows correct code analysis results.
Правило означения полного списка колонок теперь показывает правильные результаты анализа кода.
По-видимому, речь идёт о срабатывании правила кодирования "Specify a full column list (as opposed to using '*') in each DML statement and cursor", поэтому для теста будем использовать выражения выборки данных с использованием звёздочки вместо перечисления полей. Корректность отображения, опять же, не описана тех.писательницей, поэтому предположим, что либо правило совсем не срабатывало, либо номер строки не совпадал, либо в каком-то частном случае кода анализатор не распознавал звёздочку. Поскольку ничего конкретного нет в описании фикса, то протестируем простейший вариант - срабатывание правила для выражения "select * from my_table;". В предыдущем и текущем билдах не выявлено никаких различий в работе правила, поэтому не даю фиксу балл.
Rename Object 0 из 1 возможного
An index name that does not match its table name is no longer included in the script when the table is renamed.
Имя индекса, которое не совпадает с именем таблицы, больше не входит в скрипт, когда переименовывается таблица.
В одном из предыдущих билдов было добавлено автоматическое переименование индексов, совпадающих с именем таблицы. Никаких изменений в текущем билде нет, поэтому этот пункт RNs является пустышкой.
Find and Replace 0 из 1 возможного
When searching for a selected text occurrence, the search scope is no longer changed to "Selected text".
При обнаружении искомого текста найденное выражение больше не меняется на выделенное.
Описание фикса довольно мудрёное, поэтому остаётся только догадываться, что речь идёт о подсветке найденного выражения. Для теста настроим или запомним цветовые подложки "View / Preferences / Code Editors / Color / Elements / Selection / Color" и "View / Preferences / Code Editors / Color / Elements / Search match / Color". В любом редакторе приложения откроем какой-нибудь текст. Выполним одинарный поиск (Ctrl+F), повторный (F3) и в выделенном фрагменте одинарный, повторный. Во всех четырёх вариантах подмечаем раскраску. Никакой разницы с прошлым билдом не выявлено, поэтому можно заключить, что либо тех.писательница не описала конкретный частный случай, либо программист сделал нечто иное, либо ничего не исправлялось. Поэтому билд недополучает балл.
Object Wizards 0.7 из 1 возможного, -1 за баги
Fixed the highlighting of the nodes in the object tree.
Зафиксирована подсветка нод в дереве объектов.
Во-первых, в каждом мастере объекта нет дерева объектов, а есть только дерево страниц. Это опечатка тех.писательницы серьёзно может сбить с толку юзера. Во-вторых, не понятно, о каких конкретно мастерах, то есть типах объектов, идёт речь. Дело в том, что некоторые объекты до сих пор управляются через старые интерфейсы, например, таблицы. Но и новые мастера, не смотря на свою видимую схожесть, на самом деле не являются единым сквозным по всему приложению компонентом. Поэтому любые фиксы в одном мастере необходимо перепроверять во всех интерфейсах каждого типа объекта. Но есть и третий вариант, если компонент дерева переписан из Delphi-стандарта под ConquestSS нужды. В таком случае стоило баг разместить не в только группе мастеров объектов, а в глобальном модуле GUI. Тогда и проверять пришлось бы вдоль интерфейса всего приложения. Ещё одно упущение тех.писательницы в том, что не описан вариант кликанья или выделения нод в дереве, клавиатурой или мышью. В одном из моих прошлых отчётов был описан баг почернения подложки до цвета шрифта при повторном клике правой клавишей мыши в дереве новоинтерфейсных мастеров. В прошлом билде подложка нод дерева страниц староинтерфейсного мастера была серой, а в текущем - голубая. Потемнения подложки в староинтерфейсных мастерах не было и нет по клику правой кнопки мыши, а в новоинтерфейсных потемнение не происходит. Это даёт мне право прибавить лишь 0.7 балла.
В процессе тестирования выявились ещё пара багов. В староинтерфейсных мастерах по правой кнопке мыши в дереве страниц открывается контекстное меню с пунктами кнопки настроек мастера, а в новоинтерфейсных этой фичи нет. 
Пустая колонка и перекрытые наименования

На страницах индексов и триггеров мастера таблиц есть первая колонка без наименования. При первом открытии этих страниц без значений весь грид выглядит весьма нелепо: первая колонка не подписана, все остальные с обрезанными именами и перекрывающими их стрелками серверной сортировки. Это противоречит правилам видимости и понятности важной информации. Эти два бага не столь критичны, поэтому с билда сниму за них один балл.
Export Wizard 0.8+0=0.8 из 2 возможных, -0.5 за баг
The Export Wizard’s window is now restored correctly after restarting the application without the database connection.
Окно мастера экспорта теперь корректно восстанавливается после перезагрузки приложения без коннекта к базе.
Во-первых, стоит пояснить, что речь идёт о мастере экспорта данных, а не, например, схемы. Во-вторых, этот модуль имеет возможность смены коннекта, поэтому должен поддерживать автоопределение активной сессии при открытии окна и отключении коннекта. В-третьих, рабочая область SD должна быть настроена так, чтобы окно мастера автоматически открывалось при запуске приложения. Это устанавливается на странице "View / Preferences / General / Workspace" несколькими опциями. В прошлом билде автооткрытие окна без подключения к базе сопровождалось ошибкой доступа, в текущем же проблемы нет, то есть баг можно считать исправленным. Но полный балл ставить нельзя, так как тех.писательница забыла про конкретику.
В рамках теста всплыла недоделка главного меню и тулбара, которые не позволяют открыть эти сессионно-независимые окна при отсутствии коннекта к базе. Напомню, что сессионная независимость мастеров экспорта и импорта данных была введена не так давно, а вот их экшены до сих пор остаются неактивными. Это примечание снимает полбалла с билда.
If the "Change Owner To" option is empty when exporting a script, the original object owner is specified in the output file.
Если опция смены владельца пустая когда выгружается скрипт, то исходный владелец объекта подставляется в выходной файл.
Для тестирования фикса проведём по два экспорта из прежнего и текущего билдов. Один с включенной галкой о приписке владельца и другой с выключенной. Можно ещё варианты проверить, когда в редакторе имени владельца пробел или точка, которые по правилам наименования владельцев в рамках документации Oracle считаются пустыми наименованиями, но для SD их считаю частными случаями и предлагаю вам самостоятельно на таких примерах поискать баги модуля. Мои тесты ограничивались insert-скриптами, а имя владельца редактировалось лишь в режиме включения владельца в скрипт. При отключении галки оба билда не меняли содержимое редактора. Да и файлы экспорта ничем не отличаются. Так что ответственно заявляю, что фикса нет. То есть и балла нет.
Constraint / Table Wizard 0.9 из 1 возможного
When the check box "Exclude users with no objects from the Schema list" is selected, users with no objects are no longer shown in the list of constraints.
Когда чек-бокс для исключения юзеров без объектов из списка схем выбран, юзеры без объектов больше не показываются в списке констрейнтов.
Сначала попытаемся понять, в каком модуле сделан фикс. В мастерах таблиц и вьюверов есть страница с констрейнтами, а для ключей существует в SD самостоятельный мастер создания и их настройки. Тех.писательница этого не уточнила, поэтому придётся проверять оба места. Также не сказано, что опция о списке схем и юзеров настраивается в "View / Preferences / General / Session". Итак, тех.писательница не права в том, что в описании фикса упустила констрейнты вьюверов и возможность выбора объектов иных схем лишь для внешних ключей. Для теста переключаем опцию в настройках приложения и создаём внешний ключ для таблицы или вьювера. Предварительно в базе создадим пользователя без объектов, чтобы отследить отработку фильтра по значению вышеозначенной опции. Фикс сделан, но полного балла не дам из-за неполноты описания.
Table Wizard 1 из 1 возможного
The confirmation message is now shown on trying to truncate a partition from the wizard.
Сообщение подтверждения теперь показывается при попытке очистить партицию из мастера.
В одном из прошлых отчётов мной было подмечено, что диалог подтверждения о выполнении "опасной" операции не распространяется абсолютно на все места. Полагаю, что это именно тот фикс, вернее, его часть. Для тестирования необходимо переключать опцию "Session / New Session.. / Options / Database Type / Confirm execution required for the following statements: DML, DDL" и в таблице с партициями, но ненужными данными, исполнять очищение. Предупреждение появляется в текущем билде и приносит балл.
Job / View / Materialized View Wizards 1 из 1 возможного
Pressing the tab key no longer removes the cursor from the SQL statement editor.
Нажимание кнопки табуляции больше не убирает курсор из редактора sql выражения.
На некоторых страницах перечисленных мастеров есть редакторы для формирования и правки анонимного pl/sql блока или выражения выборки данных. Подобные окна есть и в иных мастерах объектов, например, шедулеров или триггеров. Поскольку окно редактора кода является частью интерфейса, по элементам которого обычно переходят кликом клавиши табуляции, а в редакторе текста табулятор должен вводить служебный символ, то описанный баг говорит о наличии коллизии экшенов. Текущий билд её исправил.
Online Support Desk 1 из 1 возможного
The "Reply to message" toolbar button is no longer active when an empty folder is selected.
Кнопка на тулбаре для ответа на сообщение больше не активируется, когда выбрана пустая папка.
Похоже, что это баг из моих отчётов после добавления фичи о формировании ответа на OSD сообщение из списка. Тогда это была регрессия. Теперь она поправлена.

Итого по билду: 4.9+9.5=14,4 баллов из 8+23=31 возможных дают 14.4/31=46% готовности к передаче билда пользователю, но за минусом -2-4.5=-6.5 баллов за баги.

воскресенье, 9 августа 2020 г.

DB IDE

26 апреля 2002 года на общем собрании Кольчугинского филиала компании "Real System for Corp." (RSC) было объявлено о самостоятельном направлении в развитии продукта "Table Magic", который начал своё существование ещё на базе отдела АСУП при заводе "Электрокабель" (ЭКЗ), а затем в 2000 году вместе с "родителем" исходники перекочевали в маленькую компанию разработчиков. В мае 2002 года на московской конференции продуктом, состоящим из "умного грида данных" и редактора хранимых подпрограмм, заинтересовался австрийский бизнесмен, поэтому в июле команду укрепили вторым программистом. Поскольку на тот момент мне приходилось тестировать смежный продукт этой же компании, то мои знания "Table Magic" сначала помогли "подчистить" презентацию и впоследствии привели на место тестировщика. Европейский аналитик порекомендовал множество идей, в том числе переименование в "DatabaseVoyager" (DV) и формирование американской компании "Conquest Software Solutions" (ConquestSS). К началу моей деятельности в августе 2003 года навигатор объектов насчитывал около полутора десятка типов объектов, которые и надо было мне тестировать. Каждый из объектов, добавляемый в список поддерживаемых, имел свой мастер по обработке и некоторые функции в отдельных модулях DV. Постоянно прибавляясь к 2017 году их накопилось более шести десятков. И только спустя пятнадцать лет у владельца продукта единожды возник вопрос о том, как проводится тестирование к тому времени уже давно переименованного продукта SQLDetective (SD).
Как вы понимаете, изначально никакого процесса тестирования в RSC не существовало, поэтому мне пришлось искать варианты самостоятельно. К тому же, руководитель проекта ставил программистов на несколько ступеней выше меня и не позволял вытягивать знания из них, а вместо этого отсылал все мои вопросы к самостоятельному изучению документации базы данных Oracle, собственно говоря для которой и создавался интерфейсный продукт, конкурирующий с TOAD от Quest Software. Итак, знания о новом объекте существенно отличались у программиста и тестировщика, а все задачи на разработку и тестирование были весьма краткие: "добавить поддержку объекта NN". В понимании программиста это зачастую ограничивалось созданием мастера объекта, поскольку он опирался лишь на статьи по его созданию (CREATE), редактированию (ALTER) и удалению (DROP). Но взгляд тестировщика на термин "поддержка объекта в продукте" более широк и рассматривает все операции (GRANT, REVOKE, ANALYZE, PURGE, ...) над объектом, доступные в базе данных. Эти мои обширные знания вынуждали формировать лишь на этапе тестирования, а не в процессе планирования, множество заданий на доработку.

Итак, первым шагом в тестировании нового поддерживаемого объекта было изучение документации. На это в моём плане по тестированию отводился целый день, поскольку в SD поддерживалось несколько версий базы. Сначала для последней версии базы распечатывались статьи по созданию (CREATE), редактированию (ALTER) и удалению (DROP) объекта. Затем тексты сравнивались с каждой предыдущей версией и в распечатке делались пометки о новшествах и утилизациях опций. Документация по объектам Oracle довольно хорошо структурирована, поэтому легко вычленялись необходимые статьи, в которых достаточно было сравнить лишь схемы DDL. Со временем в помощь разработчикам и тестировщикам в SD появился модуль "Oracle Documentation Browser", в котором можно было проиндексировать сразу все пять (на тот момент - 7.3, 8.0, 8.1, 9.0, 9.2, а позже к ним добавлялись 10.1, 10.2, 11.1, 11.2, 12) версий базы. Поиск в этом модуле позволил расширять тестирование статьями про иную (GRANT, REVOKE, ANALYZE, PURGE, ...) обработку объектов и связи, зависимости с другими объектами (точки восстановления с архивами, логи м/в и группы м/в, таблицы и их индексы, триггеры, констрейнты). Но некоторые (POLICY, MV GROUP, RESOURCE PLAN, ...) объекты БД Oracle регулируются не самостоятельными командами, а системными (DBMS_RLS, DBMS_REFRESH, DBMS_RESOURCE_MANAGER, ...) пакетами. Для их тестирования достаточно одной статьи, в которой пакетными процедурами и функциями описаны все действия над объектом, что немного упрощало дело. К концу первого дня у меня получался распечатанный план тестирования в разрезе версий БД и по операциям над объектом, по объёму которых можно было определить необходимое время на все последующие проверки. Так, на "большие" объекты (таблицы, шедулеры) минимально требовалось от пяти дней, а на самые "маленькие" (последовательности, операторы) - до двух дней.
Второй шаг - основное тестирование функциональности - проверяет корректность создания, редактирования и удаления объекта средствами нового интерфейса. Все эти операции в минимальном объёме выполняются на каждой из поддерживаемых версий БД. Следующим проходом по версиям базы тестируются различия схем DDL. И самое сложное, оставленное на закуску, заключается в детальной проверке всех опций DDL, которые в большинстве случаев достаточно посмотреть на последней версии базы.
На третьем шаге тестирования поддержки нового объекта в SD проверяется возможность выдачи и отъёма привилегий на объект через мастер привилегий, если таковые предусмотрены документацией Oracle. Здесь же рассматривается принадлежность объекта юзерской схеме или его системное положение. Не стоит забывать и про версионность базы данных.
Четвёртый шаг рассматривает взаимосвязи объектов через их мастера и панели выгрузки DDL. Например, мастер триггера вызывается из мастера таблицы, а индексный кластер можно создать в базе только после создания индекса. Тестирование SD расширяется модулями Schema Extractor, Compare DB и другими, где как-то фигурирует DDL нового объекта. Очень серьёзно здесь стоит приглядываться к различиям в версиях БД.
Заключительным пятым шагом проверяются всевозможные операции над новым объектом в различных утилитах SD. Например, релокацией партиций занимается "Storage Manager", перекомпиляция хранимой подпрограммы автоматически происходит при её открытии в "Stored Program Editor", для анализа вьювера существуют самостоятельные интерфейсы в рамках одного объекта или целой схемы. Как уже ранее говорилось, именно этот шаг даёт максимальный прирост задач программисту на доработку.

Тесты доступности, удобства, производительности и безопасности лучше проводить не самостоятельным шагом, а в рамках каждого из описанных. Набив руку на первом десятке объектов, у меня сформировалось устойчивое понимание, что только комплексное тестирование может сократить время на проверки, предусмотренные шагами со второго по пятый. К сожалению, владелец продукта никогда не жаловал процесс тестирования, поэтому ни при waterfall, ни при agile не был приверженцем декомпозиции задач и детального планирования, даже совмещая роль скрам-мастера. Менеджер продукта и первый программист откосили в своё время от армии, поэтому и не стремились к порядку, не умеют и до сих пор чётко следовать правилам и сдерживать данные обещания, как это принято у честных бизнесменов.  Очевидно поэтому вопрос РМ-а о вышеописанном стал чисто риторическим с его стороны, а ответ оформился в статью только спустя ровно семнадцать лет после оформления моего первого бага по SD, но уже не для команды ConquestSS, а для вас - простых тестировщиков.

понедельник, 27 июля 2020 г.

ТО о CS 9.3.2.207

Отчёт о тестировании ClearSQL 9.3.2.207 (далее - CS), выпущенном 21 июля 2020 года, основан на Release Notes, идентичным наконец-то полному тексту в пункте "Help / Release Notes" главного меню продукта. Предыдущий билд был новым платным минором, а этот сменил номер релиза. Это значит, что изменения слегка должны являться улучшениями, а в большинстве исправлять допущенные при разработке ошибки.

IMPROVEMENTS 1.5+0+1.5+0.7+0+0.5+0.5+0.7=5.4 из 2+1+2+2+1+1+1+1=11 возможных, -0.3-0.5=-0.8 за баги
Trial Subscription 0.5+1=1.5 из 2 возможных
* To activate ClearSQL in trial mode, the user is now prompted to enter their payment details. After a 5-day evaluation period, the license will be automatically upgraded to the monthly subscription.
Для активации триального режима CS юзер теперь предупреждается о вводе его параметров оплаты. После 5-ти дней использования лицензия автоматически обновится до месячной подписки.
ConquestSS всё более и более стремится, чтобы юзеры CS обязательно работали в продукте на машине с подключенным Интернетом. При попытке старта приложения в триальном режиме для активации ключа вас перебросит на сайт производителя, даже если вы применили ключ, присланный вам вместе с инсталлятором. Ни триальная, ни подписочная лицензия теперь не начнёт работать, пока вы не свяжетесь из приложения с сайтом. А вы где-нибудь читали, что с лицензией по подписке вы не сможете работать локально, без интернета? Это подвох производителей - дёшево, но при постоянном контроле. Учтите, что теперь вам никак не поможет триальный ключ предыдущего билда, потому что даже не законченный триал этой же платной версии будет считаться завершённым. Ранее триальный период отсчитывался с первого дня использования платной версии и продолжался, а не принудительно завершался, после апдейта на билд текущей платной версии (мажор или минор). Триальный период продолжается всё те же 5 дней, которые входят в первую оплаченную месячную лицензию. То есть ConquestSS обворовывает юзера на 5 бесплатных дней. Такая смена лицензирования внутри единоплатной версии нарушает права пользователя. Но разработчики ConquestSS на такой клинч забили, поскольку у них настолько мало юзеров, что вариант апдейта триальщика они скорее всего сразу исключили. Подобные коренные изменения более приемлемы для очередной платной версии. На это новшество их, скорее всего, воодушевляла идея облегчения отъёма денег у потенциальных покупателей. Описание изменения имеет двоякий смысл: если вы корректно оформите свои данные и на вашем счёте будет достаточно средств, то через пять дней вы, честный человек, автоматически лишитесь средств без дополнительного на то вашего согласия и ваш триал продлится до месяца. Тесты показали истинность первого варианта. Да, в какой-то степени это изменение функционала можно считать улучшением, но для большинства потенциальных юзеров теперь CS стал в ряд нежелательных продуктов.
Кстати, вы заметили, что в марте 2020 года вышел последний билд CDB, а с июля этого же года из меню основного сайта пропал продукт FADEX. Кризис пандемии усугубил нищенское существование компании и не позволил развивать столь полезные приложения. А ведь если CDB разделить на самостоятельные утилиты (Easy "white-box" testing, CRUD, CallTree, MI, Documentor), то на них вполне можно было бы солидно обогатиться.
* All trial users now have their personal Conquest accounts created after activating the trial subscription. This allows canceling the subscription, updating payment details, or upgrading to the full license.
Все триальные юзеры теперь имеют свой персональный аккаунт на сайте ConquestSS, создаваемый после активации подписки триала. Это позволяет отменить подписку, обновить детали оплаты или докупить полную лицензию.
Регистрация триальных юзеров в ConquestSS претерпевает уже третье изменение. Сначала это был обычный сбор статистики без отслеживания уникальных аккаунтов. Затем, после очередного ужесточения правил GDPR, стали больше узнавать своих потенциальных покупателей. Теперь же всех триальщиков причисляют к списку покупателей, чтобы впоследствии избежать своей ручной работы по переводу триальщика в постоянного юзера. Да, такую базу проще обработать на предмет процента перехода из временных пользователей в постоянные. Для самих же юзеров оформление персональных данных призывает к ответственному отношению попробовать новый продукт.
Startup Window 0 из 1 возможного
* Added the ability to request a quote for a full license by clicking the "Request a quote" button in the startup window.
Добавлена возможность запрашивать квоту на полную лицензию кликом соответствующей кнопки в окне старта.
Во-первых, очень сложно определить, какое из окон в CS считается стартовым. Во-вторых, на странице настроек лицензии "File / Preferences / License Key" есть кнопка "Update License..", по которой открывается более логичное окно для запроса изменений лицензии. Почему его забыла тех.писательница? Наверно из-за плохого знания обслуживаемого продукта. А поскольку в ConquestSS давно нет тестировщиков, то этот промах некому было подметить вовремя, даже создателям и владельцам проекта. Ну, и в-третьих, никакой новой кнопки или хотя бы линка на запрос увеличения лицензии не появилось нигде. Вышеназванный элемент не добавлен в интерфейс продукта. Так что, балл давать не за что.
Analysis Log Manager 0.8+0.7=1.5 из 2 возможных, -0.3 за баги
* Added the ability to locate the log file on the disk. The "Locate on Disk" command is now available from the pop-up menu.
Добавлена возможность навигировать файл лога на диске. Команда навигации доступна из контекстного меню.
Примечание: менеджер логов анализатора - это окно "View Analysis Log Files", открываемое из главного меню "Code Analysis / Analysis Logs". Контекстное меню для этого списка содержит новую функцию.
Комплексное тестирование выявило, что текстовый редактор, открывающий текст лога, не содержит нового пункта в контекстном меню для навигации на файл, но там есть два одноимённых пункта для сохранения.
* Analysis log files are now deleted along with the corresponding project.
Файлы логов анализа теперь удаляются вместе с соответствующим проектом.
В первом билде текущей версии была исключена настройка сохранения логов анализа в единый файл определённого размера или в несколько самостоятельных файлов по каждому запуску анализа. Когда через приложение удалялся проект, то все его папки удалялись. По тексту RNs можно понять, что удаляя строку лога из списка логов в вышеозначенном менеджере его проект тоже удалится. Такое поведение было бы весьма опасным и нелогичным. Для тестов сделайте простенький проект, проанализируйте его и только его лог пытайтесь удалять, чтобы не лишиться ваших прежних рабочих проектов. Но на самом деле при удалении проекта через приложение, а не вручную через файловую систему, список логов анализов обновляется, согласно фактическому состоянию файлов. То есть, лог удаляемого проекта удаляется и из списка логов. За такое путанное описание изменения, которое больше похоже на правку бага, а не на новшество, не могу дать полный балл.
Print 0+0.7=0.7 из 2 возможных
* If an HTML file is bigger than 50 MB, the following message will be shown on clicking "Print Preview": "You are about to preview an HTML file larger than 50 MB. This may cause performance and stability issues. Are you sure you want to continue?"
Если html-файл больше 50МБ, то следующее сообщение будет показано перед предварительным просмотром: "Вы собираетесь просмотреть html-файл размером более 50Мб. Это может вызвать проблемы производительности и стабильности. Вы действительно хотите продолжить?"
Для тестирования этого новшества надо иметь такой проект, результаты анализа которого только по одному уровню (метрики или правила кода, диаграммы и т.п.) могут составить 50Мб и более в html-формате. Не пытайтесь печатать весь отчёт - это не подходит под рамки текущего пункта RNs, да и из приложения отчёт по проекту не печатается. Подсказка: не пытайтесь увеличить самую большую таблицу метрик за счёт увеличения скриптов, потому что в печать таблицы с результатами метрик кода попадают не полным своим содержимым, а только до границ скроллеров. Сомневаюсь даже, что многочисленные анализы проекта с включенными всеми графиками когда-нибудь смогут набрать объём в 50Мб. Так что, это новшество достаточно утопичное в плане пользы. Да и величина лимита, не понятно откуда взятая, довольно смешна для современных операционных систем, работающих на гиговых объёмах памяти. Потому и заслужить балл невозможно.
* Added the ability to print out code metrics and code review results at the script level.
Добавлена возможность печатать метрики кода и проверки правил кодирования уровня скрипта.
Ранее пункт главного меню "File / Print" становился неактивным, если курсор переводился в таблицу "Script: Editor and Analyzer Info / Code Review" или "Script: Editor and Analyzer Info / Code Metrics". Теперь информация из этих таблиц попадает в печать, но, если проверки правил вмещают все столбцы и разворачивают все ветки дерева, то из метрик кода печатается ограниченное видимостью количество столбцов. Да, новинку сделали, но опять не протестировали даже минимально.
Summary Info 0 из 1 возможного
* Added the ability to abort the expansion of all nodes on the Summary tab if the process takes too much time.
Добавлена возможность прекратить разворачивание всех нод на закладке итогов, если процесс занимает слишком много времени.
Для тестирования нам потребуется либо демо-проект на слабенькой машине, либо огромный проект на обычной машине. Данные в форме дерева на закладке итогов могут показывать только две таблицы: с детальными метриками кода и нарушенными правилами кодирования, когда они сгруппированы по какому-нибудь из доступных признаков. Кстати, теперь все таблицы, которые ранее могли показывать только несколько максимальных значений, отображают всегда все результаты анализа. Это было убрано в предыдущем билде, о чём юзера не предупредили, молча убрав настройки. В прошлых версиях, вплоть до CS 8.1, была возможность разворачивать и сворачивать все ноды в таблицах итогов. Теперь же разворачивать и сворачивать можно только панели, то есть не ветки деревьев, а целые окна. Такой процесс никак не может занимать длительное время, поскольку абсолютно не зависит от объёма данных в них. Никакой возможности разворачивать все ноды (через пункт меню или горячую клавишу) уже в нескольких версиях CS не существует, поэтому пункт RNs - однозначная фикция, за которую нельзя давать балл.
Export to MS Excel 0.5 из 1 возможного
* On trying to export diagrams or code review results to MS Excel, make sure another file is not being edited in MS Excel at the same time. Otherwise, you will be prompted to stop editing cells in the open MS Excel file to proceed with the export.
При попытке экспортировать диаграммы или результаты проверок правил кодирования в MS Excel убедитесь, что иной выбранный файл не редактируется в это же время. Иначе, вам предложат остановить редактирование ячеек в открытом файле для продолжения экспорта.
Очень спорное причисление RNs к новшествам, поскольку иными словами это обязательная проверка имени файла уже существующего и находящегося в рабочем статусе стороннего редактора. По какому праву CS управляет чужим приложением? Предложение о прекращении редактирования появится в рабочем CS или стороннем Excel? Это двоякое описание посмотрим через тесты. Для этого экспортируем первую попавшуюся диаграмму и таблицу с результатами анализа проекта в Excel с последующим открытием этого файла, а также подправим что-нибудь в этом файле, и, не закрывая его, выполним повторно экспорт в этот же файл. В прошлых билдах такую проблему обрабатывала операционная система. Это видно из текста ошибки, который достаточно подробен и на языке локали. В текущем билде добавлено предупреждение ещё и в стороннее приложение. Никак не могу согласиться с тем, что это правомерное вмешательство в приложение Microsoft. Кому-то было недостаточно системного предупреждения о существующем файле, системной ошибки о совместном доступе к файлу, теперь добавили третье предупреждение о замене данных в файле. Да, новшество сделано, но заголовок диалога говорит о чужеродных вмешательствах, за что снимаю полбалла.
Import Wizard 0.5 из 1 возможного, -0.5 за баг
* If files/folders selected for import are no longer available on the disk, you will be prompted that these files/folders no longer exist.
Если папки или файлы, выбранные для импорта, больше не доступны на диске, вы будете уведомлены, что эти файлы или папки не существуют.
Процесс поиска и выбора импортируемых файлов может затянуться. В это время может упасть сервер или выпасть штекер вашего переносного диска. Тестами будем ожидать сообщение в момент нажатия кнопки "Add". Параллельно проверим мастер линковки и его кнопку "Link", поскольку физически это единые окна и логика в них должна быть идентичной. Мои тесты показали, что при добавлении объектов из неподконнекченного диска одно системное сообщение заменено на два, но ни в одном из них не сказано об отсутствии объектов, как описано. Линковка же проходит, как и прежде, после повторного клика вообще без каких-либо предупреждений. Это значит, что текущий пункт RNs зарабатывает только 0.5 балла, и при этом билд теряет за баг комплексного тестирования -0.5 балла.
Back Up/Restore Project 0.7 из 1 возможного
* Removed the "Backup folder" box as irrelevant.
Убрана группа архивирования проекта, как ненужная.
Формы для архивирования и восстановления проекта из архива доступны по пунктам главного меню "File / Project / Back Up Project" и "File / Project / Restore Project from Backup" соответственно. Обе формы объединили поля для выбора и ввода пути и имени файла архива в одно, но при этом не дописали функционал символьного поля, в котором не полностью видно значение. Для таких полей юзеру приходится вставлять в него курсор и перемещать вручную по всему значению вместо того, чтобы просто подвести к нему мышь и увидеть полный путь и наименование фала в хинте элемента. За недоделку сниму часть балла, поскольку это GUI-правило давно числится обязательным в группе разработки ConquestSS.

BUGS FIXED 0.5+0+0+1+0+1+0.8+1+0+0.8+1-0.5+0.5+0.5+1+0.5+0+1=9.1 из 2+1+1+1+1+1+1+1+1+2+2+1+1+1+1+1+1+1=21 возможного балла, -1 за баг
Core 0.5+0=0.5 из 2 возможных
* Fixed the error "Could not initialize taskbar. Error:-2147467263" when running the application on Windows Server with Citrix.
Исправлена ошибка о невозможности инициализировать таскбар при запуске приложения на специальной операционной системе.
В моих возможностях нет Windows Server with Citrix, поэтому поверю на слово и дам авансом 0.5 балла.
* The application's features no longer stay inactive once the ORA-01005 error occurs after the database connection fails due to a missing password.
Функционал приложения больше не остаётся неактивным после ошибки базы при коннекте к ней с пропущенным паролем.
В прошлом билде нам надо найти, какие конкретно экшены деактивировались после неудачного коннекта к базе, поскольку глупо подозревать все, не касающиеся базы данных Oracle. Ошибочный коннект будем производить несколькими путями: только коннект через главное меню, попытки импорта объектов при создании проекта и в существующий, попытка линкования скриптов с базой. Учтите, что создать проект можно как уже в открытом приложении (то есть смотреть на всю рабочую область), так и при старте (то есть тестировать только окно старта). Итого получаем пять тестовых случаев, в большинстве из которых сначала будем обращать внимание на окно коннекта к базе и его дочернее окно опций. Мои тесты не дали никаких деактиваций ни в прошлом, ни в текущем билдах. Поэтому фикс не засчитываю.
Code Editor 0 из 1 возможного
* The Code Editor no longer flickers on moving the caret when a long script is open and the option "Cursor beyond EOL" is disabled.
Редактор кода больше не мерцает при сдвиге каретки, когда открыт длинный скрипт и опция о выходе курсора за конец строки выключена.
Значение означенной опции можно проверить в "File / Preferences / Code Editor" окне. Что является "длинным скриптом" в данном случае? Может код с длинными строками, в которых количество символов превышает значение "File / Preferences / Code Editor / Display / Margin and Gutter / Visible right margin - Width"? А может скрипт с огромным количеством строк? Не могу склониться к какому-то определению, которое не соизволила уточнить тех.писательница. Поэтому надо проверять оба варианта. Также следует учитывать физические данные компьютера (оперативная память, процессор и монитор), потому что давно замечено: если в ОС не хватает оперативной памяти, то MS Office окна (Excel, Word) выключают весь монитор на время перерисовки. Мои тестовые данные не позволили увидеть баг в прошлом билде, поэтому не могу засчитать фикс.
Code Explorer 0 из 1 возможного
* Resetting the workspace to default now restores the Code Explorer panel.
Восстановление рабочей области к изначальным установкам теперь возвращает панель дерева кода.
Напомню: функция восстановления рабочей области доступна из главного меню "View / Reset workspace to default". И в прошлом*позапрошлом, и в текущем билдах размер и статус дерева кода приобретает одинаковый размер и разворачивается, если прежде был свёрнут, после восстановления рабочей области. Поэтому никак не могу сказать, что раньше была какая-то проблема. То есть ничего не исправлено, а значит и балл давать не за что.
Database Connection Options 1 из 1 возможного
* The error that is shown on trying to add a new database connection type with the existing connection type name is no longer handled by EurekaLog.
Ошибка, показываемая при попытке добавить новый тип коннекта к базе с существующим именем, больше не сопровождается логированием встроенного обработчика ошибок.
Для воспроизведения бага необходимо в опциях коннекта к базе попытаться добавить одноимённую запись в список "File / Connect to Database / Oracle Database Connection / Options / Connection Settings / Database Type / Name". Сообщение об ошибке стало более понятно юзеру и не предлагает отправить отчёт в техподдержку. Но формулировку в RNs стоило переделать с понятной программисту на доступную к пониманию обычному юзеру. Ведь новый триальщик, например, абсолютно не в курсе при чём тут EurekaLog и исследуемое приложение CS. Но не буду так строго придираться к тех.писательнице и снимать за это баллы, потому что она не исправляет свои более важные опечатки.
Code Metrics 0 из 1 возможного
* Script tags are no longer duplicated and subprogram names are no longer missing from the code metrics results exported to an XML file.
Тэги скриптов больше не дублируются и имена подпрограмм больше не пропускаются в файле экспорта результатов метрик кода в XML.
В качестве тестовых данных возьмём проанализированный скрипт с телом пакета или объектного типа, содержащий несколько функций и процедур в качестве подпрограмм. Из закладки "Script: Editor and Analyzer Info / Code Metrics" в прошлом и текущем билдах сделаем экспорт результатов анализа в XML-файлы. Далее любым помощником по сравнению файлов сделаем вывод об исправлении. В моём случае замечено, что убран блок пути к скрипту в дереве проекта и ремарка. В остальном все тэги идентичны. Поэтому никак не могу засчитать исправленным нечего.
Database Connection Window 1 из 1 возможного
* Changing the state of the "Auto connection" check box now works correctly without the need to log into a database.
Изменение статуса опции автоконнекта теперь работает корректно, без необходимости входа в базу.
Слово "correctly" в формулировке правки - лишнее, но за это не буду строго снимать доли балла, хотя стоило бы (поясню позже). По моим тестам значение чекера сохраняется на закрытии окна без выполнения коннекта к базе и восстанавливается при следующем открытии формы. А вот отработку функционала можно было бы назвать правильным, только если бы при открытии формы коннекта для первого подключения (не для смены в мастере импорта или линковки скриптов проекта) в хинте или названии экшена была бы указана дефолтная строка подключения, а сам коннект к базе проходил автоматически, без необходимости кликать кнопку "Connect". Именно так я понимаю корректную работу. А может другой юзер ожидает ещё чего-то иного.
Project Summary 0.8 из 1 возможного
* When no project is loaded, all Summary tab features are unavailable.
Когда не загружен ни один проект все фичи закладки итогов недоступны.
В прошлом билде, также как и в текущем, доступна настройка панелей закладки: видимость и скрытие, сворачивание, изменение размеров или списка полей. Все экспорты из пустых таблиц давно отключены. Но мне удалось найти пару пунктов в правилах кодирования и один в трендах, которые не могут быть исполнены для пустых данных. Поскольку формулировка весьма пространная, то полный балл дать никак не могу.
Analysis Log Manager 1 из 1 возможного
* Fixed the look and feel of the Analysis Log Manager when there's only one report in the list.
Зафиксирован внешний вид мэнеджера логов анализа, когда в списке только один отчёт.
В качестве тестовых данных лучше создать новый проект и проанализировать его единожды. В мастере списка логов анализа "Code Analysis / Analysis Logs" выберем фильтр по текущему проекту. При открытии этой формы в предустановленном режиме в позапрошлом билде одна строка вполне себе подсвечивается, хоть и с чёрным шрифтом на синем фоне, но данные видны. А вот в прошлом билде графика действительно сильно пострадала, видимо из-за замены интерфейсного элемента со стандартного от Delphi/Windows на самописный от ConquestSS. На бледно-голубом фоне (режим темы "View / Theme = Windows") были сплошные чёрные квадраты вместо символов. Текущий билд скорректировал подсветку единственной строки до видимого режима.
Startup Window 0 из 1 возможного
* Fixed the look and feel of the progress bar shown in the second instance while code analysis is running in the first instance. Relevant for the subscription type of license.
Исправлен внешний вид плиты прогресса (в простонародье - "градусник"), показываемой во втором запущенном приложении, пока анализ кода проходит в первом. Актуально для лицензии по подписке.
Сильно сомневаюсь, о каком конкретно градуснике идёт речь. Окно старта приложения имеет градусник окончания лицензии. А процесс анализа отображается на своём окне, дублируясь на кнопке приложения в панели задач операционной системы. Никаких проблем с отображением обоих градусников не было замечено в предыдущем билде. Поэтому пункт RNs можно считать припиской и не давать балл.
Link Manager 0+0.8=0.8 из 2 возможных
* Removed the ability to add new files and database objects.
Убрана возможность добавлять новые файлы и объекты базы.
Поскольку физически мастер линковки и импорта файлов или объектов базы в проект является единой формой, то большинство экшенов у них едины. В контекстном меню дерева файлов этого окна был и остался экшен "Add", который благополучно добавляет в проект файл. Объекты БД никак нельзя было добавить в проект через мастер линковки. Это значит, что пункт RNs - пустышка, не позволяющая увеличить баллы билду.
Глобальный вопрос - а вообще зачем убирать то, что полезно или удобно?
* Removed the ability to select multiple objects and the whole database object tree.
Убрана возможность выбирать несколько объектов и всё дерево объектов базы.
В дереве объектов базы нет чекеров для выбора позиций, а иными интерфейсными операциями (мышь или комбинации клавиш клавиатуры) никогда нельзя было выбрать более одной позиции в дереве объектов. Убран лишь пункт "Select All" из контекстного меню. За такое смутное описание фикса дам не полный балл.
New Project Assistant / Import Wizard 0+1=1 из 2 возможных
* ClearSQL no longer stops working on trying to abort the import of the items that were not fully retrieved from the database.
Приложение больше не останавливает работу при попытке прервать импорт значений, которые были не полностью выбраны из базы.
Изменение касается нагрузочного тестирования. На малых величинах базы не получится воспроизвести баг. В качестве тестовых данных лучше взять пакеты системной схемы SYS, поскольку их обычно достаточно много даже в минимальной установке базы. Иначе, в помощь будет слабое соединение с базой, дающее порционные потоки данных с задержками. В таких случаях интерфейс CS покажет градусник и кнопку Break для процесса выборки данных из базы, спустя пару-тройку секунд, то есть запросы к базе можно прерывать. В мастере создания проекта или импорта объектов в проект есть два шага по обращению к базе: заполнение левого дерева и добавление выбранных позиций левого дерева базы в правое проекта. В прошлых билдах, к счастью, а может и к сожалению, мне не удалось получить остановку приложения на прерывании выборки объектов ни при заполнении левого дерева мастера, ни при переброске объектов из базы в проект. Аналогично работает CS и в текущем билде. Поэтому у меня нет никаких оснований отметить исправление исполненным.
* Fixed the ability to break the "Select All" action in the database object tree.
Зафиксирована возможность прерывать действие по отмечанию всех объектов в дереве базы.
В контекстном меню левого дерева объектов есть пункт для отметки всех видимых нод и их вложенных объектов для последующего импорта объектов в проект. Поскольку этот процесс достаточно долгий, то имеется соответствующее предупреждение, спустя пару секунд показывается градусник процесса и появляется кнопка для прерывания. В прошлых билдах кнопка называлась Break и никак не реагировала на нажатие, то есть юзер вынужден был остаться ни с чем и закрыть окно по крестику, либо долго-долго ждать окончания выборки. В текущем билде кнопка переименована в Abort, и процесс благополучно прерывается по первому нажатию на неё.
Export Wizard -0.5 из 1 возможного
* Removed the "Yes to All" and "No to All" buttons from the warning message shown when the exported script or diagram already exists in the target folder.
Убраны кнопки согласия и отвергания действий для всех последующих случаев из предупреждающего сообщения, показываемого при экспорте скриптов или диаграмм, уже существующих в принимающей папке.
Физически мастера экспорта диаграмм или скриптов являются единой формой, поэтому некоторые функциональности в них программист исправляет сразу для обоих окон. Но тетсировщик обязан проверить новое поведение в обоих модулях. Экспорт скриптов доступен из главного меню, дерева проекта и из окна редактора кода. Экспорт диаграмм доступен из главного меню, дерева проекта и из всех закладок с результатами анализа в виде диаграмм. Вы можете исполнять экспорт по любому из трёх путей, от этого результат теста не зависит и не может быть коэффициентом для комбинаторики. Соблюдайте только формат диаграмм и выгружаемых скриптов (эти параметры перенастраиваются в самом мастере экспорта). Для текущих тестов нет смысла включать в параметры pairwise-test варианты диаграмм или тип скрипта с его псевдокодом. Но если вы хотите пройти комплексный тест с выявлением багов, то не стесняйтесь. У меня, например, получился половинчатый результат по текущему исправлению: при экспорте скриптов всё ещё есть кнопки для всех последующих совпадений, а при экспорте диаграмм кнопки действительно убраны. Также выявлен баг отсутствия возможности экспортировать диаграммы Flowchart с закладки "All Flowcharts", если сама закладка только что была визуализирована и в дереве диаграмм выбрано несколько объектов. Но это довольно редкое сочетание юзерских действий и исправляется перезагрузкой приложения, поэтому не буду снижать баллы билду. За половинчатое решение могу дать лишь полбалла. Но кардинально удаление полезных кнопок ухудшает юзабилити, поэтому за его наличие сниму балл. Итого, -0.5 балла.
Export Summary Tables 0.5 из 1 возможного
* The error message that appears when no MS Excel is installed is no longer duplicated.
Сообщение об ошибке, появляющееся при отсутствии установленного MS Excel, больше не дублируется.
В системных требованиях к CS никогда не было пункта об обязательном наличии установленного табличного редактора, поскольку его библиотеки используются только при экспорте данных анализа в XLS-формат. С уверенностью не могу сказать, почему сообщение об ошибке раньше появлялось два раза, но эта проблема очень-очень давнишняя. Об этом известно только программисту, писавшему код CS. По этой же причине не могу посоветовать вам, как минимальными средствами сделать вид, что на машине отсутствует инсталляция Excel. На сегодняшний день машины с Windows OS, но без MS Office - огромная редкость. Исходя из конфигурации тестового стенда авансом за исправление дам полбалла.
GUI 0.5 из 1 возможного
* If the caption of a UI element, such as column header or item, is not fully visible, pointing to it now shows a hint with the full name.
Если заголовок интерфейсного элемента, например, подпись колонки или позиции, не полностью виден, то позиционирование на нём теперь показывает хинт с полным наименованием.
Модуль "юзерский интерфейс" - это всё приложение CS. Представляете сколько элементов в нём? Одних только типов более сотни, а уж вариаций и месторасположений - миллионы. Проверить все - абсолютно нерешаемая задача, поскольку им надо как-то умудриться придать маленький размер. Даже если подключить автоматизацию, хорошо понимающую не только стандартные Windows, Delphi интерфейсные компоненты, но и их производные от программистов ConquestSS, то проверки займут годы. На вскидку, могу предложить тест такой: в таблице с метриками кода уменьшить ширину любого столбца с длинным наименованием. Да, хинт с полным наименованием колонки появляется только в текущем билде. Но за формулировку RNs, подразумевающую фразу программиста "тестите всё", полный балл никто из тестировщиков никогда не даст.
Project Backup 1 из 1 возможного, -1 за баг
* Fixed the visibility of the "Display password" check box in the dark theme.
Зафиксировано отображение опции показа пароля в тёмной теме.
Рабочая область CS подразумевает цветовую настройку "View / Theme / Charcoal Dark Slate". Если в тёмной теме открыть окно "File / Project / Back Up Project", то в прошлых билдах подпись опции для показа пароля не различима. В текущем билде проблема исправлена. Аналогичная ситуация с такой же опцией и в окне "File / Project / Restore Project from Backup". Изменение тем доступно давно, но почему этот баг исправлен только что? Скорее всего команда ConquestSS абсолютно не тестировала свою реализацию, а интерфейсную погрешность заметил кто-то из новеньких конечных пользователей.
В рамках комплексного тестирования у меня выявилась проблема "Cannot change Visible in OnShow or OnHide." при смене тем и последующая занятость проекта при всех закрытых приложениях. Второй раз получить аналогичный баг не удалось. Поэтому о причинах ошибок могу лишь догадываться. Графика с результатами анализа - это не приемлемый активный интерфейс на момент смены темы приложения, потому что CS путается в своих данных и UI-элементах. Поскольку мне пришлось несколько раз перегружать приложение для его стабильной работы, то сниму балл за баг.
Oracle Libraries 0.5 из 1 возможного
* Scripts that are part of an Oracle Library can no longer be edited or deleted separately from the whole library.
Скрипты, являющиеся частью библиотеки Oracle, больше не могут редактироваться или удаляться отдельно от библиотеки.
Мне, как хорошему знатоку базы данных Oracle и приложения CS, известно три варианта библиотек Oracle: объект базы (CREATE/ALTER/DROP LIBRARY - не поддерживаемые в CS выражения), служебные файлы базы (oci.dll, oci.lib, oraocci.sym и другие подобные, которые использует CS в момент подключения к базе и при последующем обмене данными), библиотеки приложения Oracle Forms (файлы с расширением "pll", которые могут быть частью проекта CS). Скорее всего в данном фиксе речь идёт о третьем типе, пример которого есть в папке демо-проекта "Demo Project\Oracle Forms and libs\OFGCALL.PLL". В прошлых билдах скрипты из этой папки невозможно было удалить по-одному, но мульти-выборка запросто удаляла несколько выделенных. Также доступно было редактировать код. В текущем билде также становится активным пункт для удаления нескольких скриптов, но фактически удаления не происходит, и сопровождается это поясняющим сообщением. А вот с редактированием ситуация совершенно не понятная: нигде в статусной строке или ином месте нет указания, что редактор кода закрыт на модификацию текста, но любые нажатия значимых клавиш не меняют текст и не поясняют причин отказа работать. Такое юзабилити резко снижает стоимость правки.
Toolbar Customizer 0 из 1 возможного
* A newly added toolbar icon is now located correctly.
Вновь добавленная иконка тулбара теперь позиционируется корректно.
Полагаю, что недавно изменённая сортировка исходного списка кнопок слева в алфавитном порядке сыграла злую шутку с программистом, и она автоматически применялась к готовому списку справа. Ещё при тестировании прошлых изменений в настройке тулбара и применении изначальных установок рабочей области было подмечено, что кнопка анализатора, например, в одних версиях CS всегда позиционировалась на первом месте, а в других - на последнем месте главного тулбара приложения после перезагрузки. Из текста RNs лично мне не совсем понятно, о каком из трёх изменений речь: либо это позиция кнопки в мастере настройки тулбара после переброса или перетаскивания из левого списка в правый, либо синхронизация позиции кнопки на тулбаре со списком мастера настройки, либо последующее позиционирование кнопки, когда мастер настройки закрыт или приложение перезапущено в рамках текущей версии или сразу после открытия прошлого билда. Проведём все три типа тестов: функциональный, интеграционный, обратная совместимость. Мои исследования показали, что ни в функциональном, ни в интеграционном плане ничего не изменилось, работа идёт идентично в обоих билдах, без проблем, в ожидаемом режиме. А вот если сделать любую настройку тулбара в прошлой или текущей версии, а затем открыть приложение в другой (текущей или прошлой) версии, то кнопка запуска анализа стабильно нелогично самопроизвольно занимает последнюю позицию. То есть, даже не смотря на то, что для каждой версии теперь хранятся собственные настройки тулбара, но кнопка анализатора в них как-то обособлена. Из вышеописанного заключаю, что фикс никак не сделан.
Online Support Desk 1 из 1 возможного
* The "Reply to message" toolbar button is no longer active when an empty folder is selected.
Кнопка для ответного сообщения больше не активируется, когда выбрана пустая папка.
Поскольку модуль OSD состоит из двух частей - переписка с техподдержкой и автоматическое обновление приложения, то в данном случае тестировать надо только мессенджер. Сам мессенджер тоже состоит из двух типов окон: список сообщений и редактор одного письма. Ориентируя вас на требуемое для теста окно, скажу что это левое дерево папок в окне со списком всех сообщений. Экшен ответа на сообщения существует в виде пункта контекстного меню правого списка и в виде кнопки на тулбаре. Но почему-то в меню статус интерфейсного элемента определяется по наличию записей, а в тулбаре этот же экшен не синхронизировался.

Итого по билду: набрано 5.4+9.1=14.5 баллов из 11+21=32 возможных, что составляет 14.5/32=45% готовности билда, а за баги придётся снять ещё -0.8-1=-1.8 балла.