понедельник, 21 января 2019 г.

ТО о CS 8.0.1.169

Отчёт о тестировании ClearSQL 8.0.1 (build 169), выпущенном 17 января 2019  года, будет проведён по тексту Release Notes, который вы можете найти в самом приложении, но нигде на официальном сайте компании ConquestSS. Предыдущий билд был месяц назад, а этот - сразу после новогодних каникул, значит юзер опять выявил некий критичный баг. Давайте искать, какого фикса билд.

IMPROVEMENTS   1.5+1+0=2.5  из 2+1+1=4 возможных, -1 за баг
Link Manager / Project Assistant / Import Wizard   0.5+1=1.5  из 2 возможных, -1 за баг
⦁ Added the ability to link a root node of a project tree with a database connection node. Unlink, relink and other related options are also available.
Добавлена возможность линковать ведущую ноду дерева проекта с нодой коннекта к базе. Отвязывать, перелинковывать и прочие соответствующие опции также доступны.
В который раз тех.писательница вместо термина action использует option, что приводит юзера, читающего инструкцию, в замешательство. Второе замечание к тексту заключается в том, что по неизвестной нам причине забыт вариант импорта из файловой системы. Мастер нового проекта и импорта пополнился функциональной кнопкой: рядом с добавлением линкованных и простых скриптов в проект появилась самостоятельная кнопка для линковки или перелинковки. Основной тест проделаем следующим образом. Сначала попытаемся создать новый проект, линкуя его верхнюю папку на какую-нибудь ноду  базы, а вторым тестом испробуем перелинковку и синхронизацию верхней папки проекта. Чтобы в базе получить минимальное число объектов, уберём из дерева объектов (левая часть мастера нового проекта) системные и демо-схемы, а на часть папок со слишком большим количеством объектов наложим фильтр по имени. И тут проявляется первый сопутствующий баг: применив фильтр к подпапке объектов в верхней ноде схемы количество объектов не меняется. Выбрав верхнюю ноду объектов базы "ИмяКоннекта@ИмяБазы" или "Schemas" вы никогда не сможете слинковать их с какой-нибудь папкой проекта, потому что кнопка линковки для них не активируется.  Это значит, что тестируемое утверждение является ложью из-за термина "connection node". А вот в иной формулировке "верхнюю ноду проекта можно слинковать с любой папкой файловой системы или базы, кроме самого верхнего уровня" новшество действительно актуально для текущего билда. Вторая часть тестирования (перелинковка, синхронизация) выявили проблему отсутствия удаления скриптов из проекта, если соответствующих объектов нет в прилинкованных подпапках, и импорт однотипных объектов в дубликаты папок даже при включенной опции "Options / Preferences / Global Synchronization Settings / DB Objects / Script / Remove the script from the project if its source link breaks on refresh". 
Дубликаты папок после импорта
Можете сами попробовать: создайте пустой проект, подключитесь к базе простым юзером и прилинкуйте к верней папке проекта свою папку USER1 без добавления объектов, выполните синхронизацию из базы, переподключитесь к базе другим простым юзером без прав на чужие объекты и перелинкуйте верхнюю папку проекта на USER2 без добавления объектов, выполните синхронизацию верхней папки проекта с базой. В проекте у вас получатся дубликаты папок типов с различным наполнением скриптами из двух схем, хотя верхняя папка проекта связана лишь с одной схемой. Программист добавил возможности, но архитектор не продумал логичность ограничений. Итого, новшество зарабатывает лишь полбалла.
⦁ On opening the Links Manager or Project Assistant, the project tree is now filtered the same way as in the main window.
При открытии мастера линковки или ассистента проекта дерево проекта теперь фильтруется одинаково с главным окном.
Поясню, что под ассистентом проекта имеются ввиду мастера для создания проекта (для этого случая не подходит) и импорта в него файлов или объектов базы, а деревом проекта в этих мастерах считается то, что в правой панели. Выставим фильтр в дереве проекта через "Project Manager / Filter" и откроем мастер импорта скриптов и линковки. Да, дерево проекта отфильтровано аналогично, подложка его идентична и есть возможность обнулить фильтр в рамках мастера. Хорошо, что выключение фильтра не отражается на проекте в основном рабочем окне. При возвращении из мастера в основное окно добавленные или изменённые объекты отображаются согласно условиям фильтра. Новшество приносит балл билду. Единственный неприятный момент - снять фильтр в основной рабочей области довольно сложно кликом по кнопке и не только потому, что не с первого раза срабатывает отмена, но ещё и излишне активируется опустошённый мастер установки фильтра.
Project Tree    1 из 1 возможного
⦁ Selection of items in the project tree is now restored after analysis is completed and after closing the Analyzer Progress window, even if the analysis was not started.
Выбор элементов в дереве проекта теперь восстанавливается после окончания анализа и после закрытия окна процесса анализа, даже если анализ не начинался.
Весьма удобное новшество, которое было очень давно мной предложено по аналогии с выводом в отчёт лишь выбранных объектов проекта. Но, как уже говорилось в отчёте по предыдущему билду, в самом окне процесса анализа не хватает отображения количества выбранных для анализа элементов, в частности - скриптов. Да, их имена перечисляются при анализе и имена объектов при генерации диаграмм, но общее количество ещё не обработанных скриптов не известно.
Job Manager    0 из 1 возможного
⦁ Added the ability to delete scheduled jobs executed via a third-party scheduler if their scripts are no longer available.
Добавлена возможность удалять задачи по расписанию, выполняемые внешним запуском, если их скрипты больше не доступны.
Очень запутанное описание новшества придётся пояснять. В рамках менеджера задач термином "скрипт" можно назвать как объект проекта, так и bat-файл или scr-файл для запуска задачи. Какой из этих трёх скриптов может стать недоступным? Проект и его скрипты могут быть перемещены в недоступное пользователю CS место. Но настройки задачи таковы, что вместе с ними хранится только встроенный проект, а все остальные проекты могут быть на любых иных носителях. В любом случае, удалить задачу через менеджер расписаний можно всегда. Если говорить о scr-файлах, то их недоступность может быть только после переноса приложения на другую машину. Но даже в этом случае, список задач и расписание формируются по папке "%AppData%\Roaming\ClearSQL\Command Line Scripts\" из файловой системы, а значит в списке задач будут только доступные скрипты. Если говорить о bat-файлах, которые напрямую могут использовать именно сторонние запускатели, например, Jenkins, то после создания такими скриптами управляет лишь файловая система, поскольку в менеджере задач они не отображаются. В итоге, размытое описание новшества не даёт возможности как-бы то ни было его опробовать и даже понять смысл. То есть, за него не могу дать ни балла билду.

BUGS FIXED    1.5+1+0.8+0+1+0+0.7+0+0.6+1=6.6    из  4+3+3+1+1+1+1+1+1+1=17 возможных, -0.5-1-1-1-1=-4.5 за баги
Link Manager / Project Assistant / Import Wizard   0.8+0.7+0+0=1.5  из 4 возможных, -0.5 за баг
⦁ When a filter is applied to a parent node, its subnodes are now highlighted as filtered, too
Когда применён фильтр к родительской ноде, её подноды тоже подсвечиваются как фильтрованные.
В тестируемом окне всех трёх типов (новый проект, линковка или импорт) имеется три вида деревьев: файловая система и объекты базы в левой панели, макет дерева проекта в правой. О каком из деревьев речь, придётся нам самим выяснять, поскольку тех.писательница не удосужилась это конкретизировать. Файловую систему можно отфильтровать по имени и расширению файлов, по видимости скрытых, но на отдельную папку поставить фильтр возможности не существует. Значит его нет смысла тестировать. Дерево объектов базы можно отфильтровать по типам схем, исключив системные и демо. Но также в этом дереве можно устанавливать фильтры на каждую папку схем или типов объектов. Дерево макета проекта можно фильтровать по типам линковки и статусам скриптов, либо открыть уже отфильтрованное в главном окне. Похоже, что нам для теста нужно будет дерево объектов базы и вариант заранее отфильтрованного дерева проекта, потому что дерево файловой системы никаких пометок, кроме статусной строки, не отображает в самом фильтрованном дереве. Дерево проекта при наложении фильтра меняет цвет подложки, но применить к нодам можно фильтр лишь из одного источника: главного окна или текущего мастера. Да и фильтрации подвержено сразу всё дерево, а не отдельные его ноды и подноды. Поэтому остаётся проверить только дерево объектов. Маленькая подсказка: для сокращения тестов нет необходимости проверять поведение во всех трёх мастерах, поскольку технически они лишь меняют заголовки, а движок у всех единый. Выставим какой-нибудь фильтр на свёрнутую и развёрнутую ноды схем. Включение фильтра подкрашивает подноды развёрнутой ветки, а после разворачивания отфильтрованной ветки её папки типов объектов не имеют подложки в прошлом билде. А в текущем билде подсвеченными становятся папки типов после разворачивания отфильтрованной схемы. Но в обоих билдах существует проблема с очисткой фильтра, поскольку подложка не обнуляется со стиранием значения из поля условий фильтра, а лишь по уже бессмысленному клику по чекеру. Фикс есть, но из-за неточного описания получает лишь 0.8 балла. К тому же стоит снять -0.5 за интерфейсный баг при обнулении фильтра.
⦁ The caption of a filter condition applied to a linked node now correctly fits in the Filter Condition field.
Заголовок условия фильтра, применённый к линкованной ноде, теперь корректно умещается в поле условий фильтра.
В рамках предыдущего теста можно было подметить, что поле условий фильтра имеется только в дереве объектов базы. Также он показал, что текст условия фильтра на активную папку в прошлом билде имел задвоенный шрифт. Дополнительные тесты по размеру строки условий фильтра (длинное, автоподпор ширины столбца) не дали никакой разницы. Придётся считать, что фактически поправлен фонт шрифта значений в поле условия фильтра для локализованной ноды. Фонт не задваивался в других слинкованных папках, поскольку единовременно локализовать можно только одну папку. Вы видите, что текст RNs говорит совсем об иных вещах (заголовок - значение, вместимость - фонт, линкованная - локализованная), поэтому даю только 0.7 балла. И это ещё много, потому что нет точного указания на место фикса.
⦁ Fixed background coloring of a filtered database object tree.
Исправлена подложка, подкашивающая отфильтрованное дерево объектов базы.
Это дубликат первого пункта в группе RNs, поэтому балл не получает.
⦁ Fixed the autofit of the “Linked Source” column, applied after linking a root node with a Windows folder.
Исправлен автоподбор ширины колонки связанного источника, применяемый после линковки верхней ноды с папкой системы.
Это классический пример бага-фикции или временного. В прошлом билде этот баг не существовал, потому что привязку верхней ноды проекта стало можно осуществить только в текущем билде. А автоподбор ширины колонки для других папок работает идентично в обоих билдах. Приписка балла не приносит.
Analyzer View  0+0+1=1  из 3 возможных, -1 за баг
⦁ Fixed the autofit of the columns on the Project Analysis History tab.
Исправлен подбор ширины колонок на закладке историй анализов проекта.
Автоподбором ширины колонки называется такое изменение интерфейса, при котором становится полновидимым заголовок столбца и его содержимое. Автоматически ширина  колонки устанавливается при прорисовке грида и его фильтрации, а вручную - по двойному клику на правом разделителе заголовков столбцов. Растянем одну из колонок и дважды кликнем по правому разделителю. Ширина колонки не подбирается в обоих билдах. Изменим в настройках приложения формат даты и времени с малого на большой, например, полное наименование месяца, и для обновления данных в гриде отфильтруем их. Опять же, никакой разницы в поведении интерфейсов обоих билдов, и к тому же дата с полным наименованием месяца не вмещается в заголовках столбцов. Итог - никакого фикса не было, баг с длинным форматом даты не исправлен. Ни балла дать не могу, стоит ещё и снять за такое напоминание о старом баге.
⦁ Code review results now always fit in correctly regardless of the size of the main window.
Результаты правил кодирования теперь всегда корректно распределяются в ячейках, относительно размера главного окна.
Для теста поглядим на результаты демо-проекта суммарные и в разрезе скрипта. У скрипта ET_DEBUG_BODY есть длинные значения по правилу "Exception is not handled inside the unit", но двустрочные значения никак не вытягивают ширину первой колонки, хоть справа у таблицы и есть достаточно свободного места. Либо программист поправил что-то другое, либо тех.писательница придумала описание, но в любом случае билд недополучает балл.
⦁ Fixed the width of tab headers in the Script Analyzer View when only the “Modified script warning” instant help is enabled.
Исправлена ширина заголовков закладок в результатах анализа по скрипту, только когда встроенная подсказка о внесённых изменениях в скрипт включена.
Напомню, что панель с предупреждением о внесённых правках в скрипт появляется в области с результатами анализа скрипта и текстом кода, если включена опция "Options / Preferences / Main Window / Visibility of Instant Help for Analyzer View Panels / Miscellaneous / Modified script warning" и выбранный скрипт в статусе Modified. Эта панель перекрывает подсказку для закладки о результатах анализа, а в прошлом билде заголовок текущей закладки оставался прежней ширины, но без иконки для отображения его собственной панели с пояснениями. Хоть и очень мелкий, но фикс сделан, а значит билд зарабатывает балл.
Job Manager   0+0.8+0=0.8  из 3 возможных
⦁ Job execution no longer fails when the project root folder is linked to a database schema.
Исполнение джоба больше не прерывается ошибкой, если верхняя папка проекта связана со схемой базы.
Поскольку линковать верхнюю ноду проекта разрешено только с текущего билда, то баг никак не мог проявиться ранее. Это значит, что он был выявлен внутри команды разработки и считается временным. За его исправление нельзя дать балл, ведь нет никакой возможности утверждать наличие бага в предыдущих билдах.
⦁ The welcome screen no longer appears on job execution when a subscription license is applied.
Приветственное окно больше не появляется при выполнении джоба, когда применена лицензия подписки.
В чек-листе смоук-теста издавна имеется пункт о перекрытии всех излишних окон при исполнении джоба в скрытом режиме. Почему это не проверили сразу после изменения интерфейса окна старта и нового типа лицензии? Потому что в ConquestSS исключили тестирование из процесса разработки. И вот эта банальщина проявилась на стороне пользователя. Хоть мне и не начем проверить фикс, но могу авансом его засчитать. Только вот полный балл дать не получится, потому что в тексте не указали об особом режиме запуска джоба.
⦁ Removed broken links from HTML files generated as a part of job execution.
Удалены битые ссылки из html-файлов, генерируемых как часть выполнения джоба.
После выполнения джоба могут сгенериться html-файлы, как часть отчёта по проекту, либо отдельные файлы, как экспортированные данные результатов анализа. О каких конкретно идёт речь - не понятно. Также проблематично установить, какие из ссылок ConquestSS считает битыми: устаревшие ссылки на сайт компании или незакрытые теги. Поскольку структура отчёта и экспортированных файлов не менялись, то и о появлении в них битых, в прямом смысле, ссылок речи быть не может. К тому же, механизмы генерации отчётов и экспортов едины, как для джобов, так и для самостоятельных функциональностей. Поскольку об исправлении аналогичных багов не сказано в рамках Отчёта по Проекту и Экспорта, то можно не тратить время на исполнение джобов в разных билдах и последующее сравнение всех результатов по всем возможным вариантам файлов. Приписка к RNs балл не заслуживает.
Code Review Rules  0   из 1 возможного, -1 за баг
⦁ Fixed the layout of the Code Review Options page when DPI125% is applied.
Зафиксирован интерфейс страницы с опциями правил кодирования при масштабировании экрана до 125%.
В одном из предыдущих билдов мы уже смотрели проблему масштабирования этой страницы, касаемо панели фильтров. Проверка исправности окна на недосягаемость функционала не увенчалась успехом, а вместе с ней и не получилось выявить описаный фикс. Пункт RNs не приносит балл билду, а старый баг отнимает ещё один. Напомню, что в ConquestSS есть чит-лист обязательных проверок для нового и изменённого интерфейса, в числе которых доступность всего функционала при масштабировании экрана.
Project Report Assistant   1  из 1 возможного
⦁ Windows can no longer go into sleep mode while project report generation is running.
Окна больше не могут уходить в режим сна, пока выполняется генерация отчёта проекта.
Скорее всего под термином окон в данном случае имеется ввиду операционная система. Для теста придётся создать очень большой проект, чтобы формирование отчёта по нему выполнялось долше, чем выставлен таймер до перехода системы (только монитор или весь компьютер) в спящий режим. Да, в прошлом билде можно было остаться в неведении об окончании генерации отчёта, либо потерять впустую время до ухода компа в сон. Стоит заметить, что подобных длительных процессов, нуждающихся в ограничении системы от несанкционированного отключения, довольно много: сохранение громадных проектов, автоматическая работа джобов, экспорты из проанализированных проектов. В рамках комплексного тестирования подтвердилось, что процесс анализа давно уже контролирует отключение машины. Странным выглядит тот факт, что это удобство не было сразу применено ко всем длительным процессам в рамках приложения. Балл заслужен.
Link Manager  0   из 1 возможного
⦁ Applied consistent formatting to linked project items.
Применено последовательное форматирование к связанным пунктам проекта.
Никак не могу пояснить термин последовательного форматирования, поскольку никакой интерфейсной разницы в дереве проекта мастера линковки не замечено. Поэтому и балл дать не за что.
Synchronization Settings   0.7  из 1 возможного, -1 за баг
⦁ Removed the options “Recursively” and “Add empty folders” from the database objects sync settings as irrelevant.
Убраны опции рекурсивности и добавления пустых папок из настроек синхронизации объектов базы как утративших значимость.
Пустые папки из базы данных в большинстве случаев лишние и эта опция меня изначально смущала. Да и рекурсия для возможной вложенности только в два уровня папок базы данных всегда должна выполняться. Проверку изменения, которому мето не в числе багов, а в отдельном блоке удалений, проведём в два приёма: интерфейс настроек, регрессия функционала. Сверим внешний вид окон "Options / Preferences / Global Synchronization Settings / DB Object" и "Sync / Selection Sync Settings": в обоих случаях из блока "Folder / Import New Child DB Objects on Refresh from Linked Source" убраны две опции, но по непонятной причине оставлена "Folder / Write Back to Linked Source / Process child items recursively". Ещё раз напомню, что вложенность дерева объектов по схемам и типам объектов значима только для самих объектов, которых не бывает в верхней папке схемы, а две верхнии папки всего коннекта слинковать нельзя, да и несхемные объекты не считаются скриптами для проекта. То есть, интерфейсно изменение сделано только на две трети. Регрессию функционала проверим переключением удалённых опций в прошлом билде и выполнением импорта, обновления, перезаписи линкованных папок в текущем билде. К сожалению, текущий билд использует значения удалённых опций из предыдущего. То есть юзер нового билда всегда будет добавлять и обновлять линкованные ноды в зависимости от значений более недоступных опций, которые он выставил последний раз до перехода на текущий билд. Но если бы в текущем билде всегда принималось некое дефолтное значение удалённых опций, то регрессию можно было бы не оформлять. А так, за пункт RNs даю 0.7 балла и снимаю балл за регрессию.
Code Synchronization   0  из 1 возможного
⦁ Fixed the layout of messages that appear on adding and refreshing project tree items.
Исправлен внешний вид сообщений, которые появляются при добавлении и обновлении элементов дерева проекта.
Добавление элементов в дерево проекта происходит в рамках функции синхронизации при двух действиях: при ручном добавлении скриптов через мастер импорта, либо после синхронизации папки с ресурсом. Когда мы проверяли первое новшество этого билда, то могли проверить и этот фикс, откладывая скриншоты сообщений для последующей сверки. Это один из принципов комплексного тестирования, когда результаты одного теста пригождаются для закрытия различных тестовых вариаций. К сожалению, ни один из моих случаев добавления и обновления элементов дерева не показал разницы в сообщениях. Это значит, либо фикса не было, либо описание не конкретизировано. Поэтому не могу дать ни балла.
Analyzer Progress   0.6  из 1 возможного, -1 за баг
⦁ When call tree generation is turned off, “0” is shown next to the Call Tree label.
Когда дерево вызовов выключено из генерации, ноль показывается рядом с лейблой дерева вызовов.
Не генеря диаграмму, её можно провалидировать. В этом случае хоть чекер около строки прогресса и выключен, но "градусник" всё-равно будет пройден и в строке с количеством диаграмм отображается фактическое число деревьев вызова. Но если анализ скрипта сделать с удалением без валидации, то в текущем билде действительно их число будет отображено нулевым значением. Но, к сожалению, в списках диаграмм вызовов они становятся серыми без возможности отобразить контент только после валидации с удалением инвалидных, а не после более логичного простого удаления без перегенерации. То есть давнишний, более важный функциональный баг всё ещё не исправлен. Билд зарабатывает 0.6 балла, так как описание подразумевает три случая, а исполнен лишь один. И старый баг снижает ценность билда на балл.
Project Tree    1 из 1 возможного
⦁ The recycle bin is now located correctly even if the recycle bin node is not visible in the tree.
Корзина теперь корректно позиционируется, даже если нода корзины не видна в дереве.
Под видимостью ноды в дереве понимается её позиция в области видимых веток, а не какой-нибудь особый статус или фильтр. Для позиционирования на ветке корзины существует специальный пункт в главном и контекстном меню. Для воспроизведения бага развернём ветки дерева проекта, для чего вполне подходит демо-проект, и попробуем позиционироваться на корзине через экшены. Да, в текущем билде дерево проекта прокручивается само до нужной ветки, а не только обновляется информация в панелях результатов анализа. Балл за фикс даю, но термин "корректно" всё-же не стоит использовать без ссылки на документы или правила.

Итого по билду:   2.5+6.6=9.1  из  4+17=21  возможных, что равняется  9.1/21~43%  готовности билда, за выявленные баги придётся снять -1-4.5=-5.5 баллов.

Комментариев нет:

Отправить комментарий