вторник, 14 апреля 2020 г.

СУТ

Стратегия утилизационного тестирования ("сут" в переводе с казахского - молоко, если нет попаданий в цель, то это синоним аутов) в период кризиса выходит на первый план. Текущее время - самое подходящее для разворота направления работ отдела тестирования в сторону сворачивания бизнеса, помогая руководителю проекта оставить продукт пользователям в наилучшем состоянии для очистки совести ответственных за качество.
По результатам моих исследований нижеследующий чит-лист ни единожды спасал компанию от излишних расходов на поддержку производства после расторжения договоров.
1.  Изучить лицензионное соглашение юзера и выделить параметры:
1.1. период действия купленного продукта. Опираться на него при планировании фиксов;
1.2. период техподдержки. Выполнять работы только для оплаченных сервисов и пользователей;
1.3. объём работ по тех.поддержке: править баги, искать обходные пути, предоставлять обновления билдов и версий. Ограничить план тестирования только теми задачами, которые имеют юридическую силу
2. Вычленить из BTS мега-критичные баги (регрессия, нагрузка, обновление внешних систем) для срочной правки. Предоставить по ним отчёт руководителю проекта для согласования тест-плана.
3. Закрыть магазин и продажи для новых покупателей без остановки форумов, сообществ, мест обратной связи:
3.1. уведомить весь список дилеров об ограничении продаж;
3.2. личный кабинет пользователя ограничить доступной версией;
3.3. фильтровать рассылку писем пользователям по доступности продаж.
4. Контролировать публикацию инфы в открытых источниках о возможностях продукта (сайты компании и дилеров, хелп продукта).
5. При приёме заявок от актуальных пользователей критичность и важность входящих багов определять по массовости использования модуля.
6. Прекратить приём и оформление предложений по усовершенствованию продукта.
7. Работа тестировщика продолжается вплоть до завершения периода техподдержки, если лицензионным соглашением определено исправление критичных багов и поставка обновлений.

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

понедельник, 13 апреля 2020 г.

Взгляд назад

Ретроспективу тестировщики обычно проводят совместно со всей командой, но дата наших подведений итогов возможна намного позже выпуска, поскольку результат нашей работы виден лишь в долгосрочной перспективе. Отсутствие жалоб пользователей или благодарность за вовремя и в точности выполненные изменения - это положительный результат действий QA и его оценивают обычно на контрасте. Руководители проектов чаще не желают замечать тех ежедневных титанических усилий защитников качества, которые приводят к успеху продукта, а приписывают его только себе. Наши частые просьбы подправить мелкие баги в общей корзине изменений приводят к лоску всего продукта. Кто из ваших лидов отмечал эти капли на фоне моря бэклога во время ретроспективы? QA вполне могут приплюсовывать такие неприметные шажки к кампании по профилактике проблем.
Две-три недели изоляции достаточно для проведения первой ретроспективы. Но для полноценной оценки стоит учитывать не только предпринятые меры в учётный период. На примере современного общества можно увидеть, что государственное здравоохранение, организованное Н. Семашко, именно сейчас дало положительный эффект - спокойствие и государственную защищённость граждан. Страны, нацеленные на быстрый доход, не стремящиеся к долгосрочным перспективам (аналогия со стартаперами), только в текущей критичной ситуации заметили свою несостоятельность. Это яркий пример необходимости проводить регулярную профилактику вместо надежды на единственного супергероя, который в очередной раз вставит "костыль". Ещё одним положительным шагом, сыгравшим свою роль в условиях удалённой работы на дому, считаю проект Д. Медведева "Последняя миля". Как сто лет назад Ленин продвигал освещение по всей стране, так и в начале этого века нас покрыли RUNET-ом. Благодаря такому далеко-сведущему движению мы не только сейчас своевременно проинформированы обо всём, но можем продолжать обучение и трудовую деятельность. В рамках ретроспективы стоит сказать "спасибо" за столь важную предусмотрительность. А ваши тимлиды отмечают на подведении итогов роль примечаний и идей QA?
Наш соратник, бывший IT-шник, хотя врядли в наш инфо-век мы успеем стать "бывшими", М. Мишустин своевременно способствовал цифровизации налогообложения, а теперь, отменив в этом году перепись населения, надеюсь и её переведёт в режим фактов, не давая повода всяким фрикам хайпануть за государственный счёт. Хорошо помню свою волонтёрскую деятельность конца советского периода, когда летними вечерами приходилось обходить квартал за кварталом близлежащих к школе домов и переписывать всех детей, чтобы школа смогла вовремя составить расписание и подобрать пед.состав на одну или две-три смены. Тогда не было возможности обменяться базами данных ЗАГСу, паспортному столу и школам, даже тетрадку и ручку нам никто не выдавал. А сегодня тратятся немалые средства на оборудование (планшеты, канцелярия, удостоверения, реклама) и зарплату опрашивателей. Ведь эти все деньги и материалы вполне себе могли бы сослужить более выгодно: планшеты очень нужны школьникам для удалённого обучения, за меньшие деньги любое бюро разработки ПО быстро напишет связь всех нужных баз данных. Цифровизация переписи населения - это не только единоразовая экономия, это долгосрочное ПО, которым можно будет пользоваться хоть ежегодно, хоть ежедневно. Аналитики всех слоёв выгадают от этого, а у рядовых граждан не будет повода выдумывать всякую всячину взамен реальных имён, национальностей и прочих житейских параметров. Тут, как нельзя лучше, подходят обе поговорки "не было бы счастья, так несчастье помогло" и "всё, что не делается - к лучшему". Надеюсь, отменённая в этом году перепись населения перейдёт в разряд госзаказа на ПО, тем самым даст нам, тестировщикам-интеграторам, больше работы.
Ещё один правильный шаг делает правительство - повсеместно строит больничные комплексы. Это достаточно умно, если учесть, что сейчас семьи много времени проводят вместе, а государство объявило о поощрении роста демографии. Хочу натолкнуть вас на мысль, что эти больницы к концу года будут весьма востребованы в качестве перинатальных центров. QA, а вы умеете предложить такой костыль в критичных условиях, который лёгким движением превращается в солидное новшество? Помните, для плодотворной работы тестировщик обязан обладать многоходовым разумом шахматиста.
Ограничения на поездки переводят нас повсеместно в ранг пешеходов, многие из которых возможно спровоцируют очередной общегосударственный проект "Дорога к дому", в рамках которого главы поселений почувствуют на своих подошвах изношенность или отсутствие тротуаров, их затемнённость или узость. Надеюсь, местным властям, предпринимателям и жителям в рамках такой национальной программы удастся реставрировать устаревшие дорожки, проложить новые с полным соблюдением дистанции, обустроить зоны для велосипедистов, роллеров и иных мелко-колесящих участников движения. Хочется верить, что проект "Дорога к дому" на законодательном уровне закрепит героскутеры, скейтборды, самокаты и ролики, как средства передвижения по выделенным полосам тротуаров и пешеходных дорожек. Любое сужение рамок в творческом уме тестировщика порождает выгодные решения.
В рамках кризисного периода главы местного самоуправления получили больше полномочий, но почему-то не всюду торопятся ими воспользоваться на благо своих жителей. Например, каждый многоквартирный дом имеет придомовую территорию, но жители заперты в квартирах. А ведь старшие по дому и подъезду вполне могли бы составить плавающий график прогулок в пределах двора с предварительной санобработкой. Это же не так сложно - родителям части квартир за 10-15 минут пересменки до своей прогулки опрыскать детскую площадку антисептиками, а на последующие 45 минут вывести своих чад под присмотром и в соответствующем времени обмундировании (маска, перчатки).  Даже если в доме 100-200 квартир, то удлинившийся световой день вполне достаточен для того, чтоб на игровой площадке поочерёдно побывали хотя бы полчаса ежедневно все проживающие дети. Ребёнку нужен свежий воздух, физическая нагрузка, а не всякие жилые строения способны выдержать нагрузку прыгающих и бегающих непосед, да и стране более важны здоровые, а не хилые граждане. Если вам дали чуть больше воли, то используйте её на благо окружающих и тогда профит от неё подмигнёт звёздочкой на плече.
А. Рыжов хайпует постановками секс-шоу на старшеклассниках вместо воспитания в них культурного поколения. Запреты молодым актёрам на полное прочтение и просмотр оригинальных источников приводят к тому, что спектакли ТЮЗа из раза в раз отображают только комплексы режиссёра, а не истинные проблемы автора произведения и современного поколения. Театр - искусство массовое, несущее разум и воспитание. Также, как и при разработке ПО, постановка спектаклей вынуждена учитывать желания потребителей, изначально взятый курс стоит не только корректировать согласно современным течениям, но и забрасывать удочку на перспективу - развивать общество. А ваша команда на ретроспективе какие уроки пройденного периода усваивает и вырабатывает ли новые цели?
НТВ посылает московских репортёров в поля, не тронутые короновирусом, вместо расширения полномочий местных сотрудников и предотвращения распространения заразы, ведь привезти микробы они вполне могут на аппаратуре. Микрофоны как дезинфицируют? Концерт в Большом Театре показал отношение артистов к своему производственному предмету: клавиши рояля протирали перед каждым выступлением, О. Газманов держал микрофон в перчатках. Вещание круглосуточного новостного канала "Россия 24" перебазировалось в домашние условия, а НТВ по-прежнему собирает звёзд на тесных диванчиках, стратегически-важные каналы "Первый" и "Россия 1" в большинстве прямых эфиров и ток-шоу соблюдают социальную дистанцию, а НТВ зрителей и участников передач плотно набивает в зал без санитарных масок. Как представитель QA предупреждаю общественность, что телевещательный канал своим примером исключительности опасен в дни пандемии из-за несоблюдения санитарных правил. Не удивительно, что некоторые жители не соблюдают самоизоляцию, поскольку они берут пример со своих "любимых" телеканалов. История любых времён докажет вам, что в достижении успеха практика двойных стандартов никогда не являлась помощником, а только усугубляла процесс деградации.
За одну-две недели удалённой работы любой оценит важность соблюдения общепринятых правил и особенно распорядка дня, при чём не только средним звеном, но и высшим. Древняя наука - педагогика - практикует закон "пример заразителен", да и своё название взяла из фразы "веду за собой". Если руководитель желает сплотить коллектив и воспитать его в лучшем виде, то должен начать с себя, показать положительный пример на своём поведении и постоянно его придерживаться. Тайм-менеджмент нарушается начальником, считающим себя всегда исключением и не уважающим рабочее время своих сотрудников. В таких случаях я ратую за лозунг: "Чаты вместо звонков!" Профессионалы-тестировщики даже могут обучать искусству задавать краткие, конкретные, однозначные вопросы, которые способствуют эффективности в производстве и взаимоотношениях. Довольно многих раздражают голосовые сообщения из-за слов-паразитов, отнимающих драгоценное время. А при печатании текста ни их, ни мат уже не вставить. Боитесь, что затеряется ответ? Используйте напоминалки и цитирование в чатах. Любители поболтать, экономьте время ваших секретарш, которым всё-равно придётся переводить звук в печатный текст, ставьте задачи и вопросы сразу в письменном виде.

Полагаю, на этих нескольких примерах стали более очевидны принципы ретроспективы:
- выявить положительные и негативные действия как всей команды, так и отдельных её членов;
- дать оценку последствиям шагов обеих (+/-) сторон;
- выяснить причины успехов и провалов для выработки общих правил;
-  определить вектор развития.
Желаю, чтобы совещания в конце спринта стали более эффективными за счёт вышеизложенной памятки.

вторник, 7 апреля 2020 г.

ТО о SD 5.1.1.316

Отчёт о тестировании SQLDetective 5.1.1.316, опубликованном 31 марта 2020 года. Проверки проводились по Release Notes. Незадолго до этого обновления компания ConquestSS заспамила потенциальных покупателей предложением о небывалой скидке - пара продуктов (CDB+SD) за полцены, а сразу после публикации текущего билда завалили предложениями о покупке только SD, но также с 50% скидкой. Обычно такие кампании проводились в период застоя (неделя конца августа), а эта почти месячная акция заставляет задуматься - не закрытие ли производства предполагается? Надеюсь, вы уже сами сможете понять "какого бага билд", ознакомившись с моим отчётом.

IMPROVEMENTS  0+0.5+0.7=1.2  из 3 возможных, -1-0.8-1-0.3=-3.1  за баги
Preferences  0 из 1 возможного, -1 за баги
• Removed the “Notify about AMS expiration” check box from the License Key page.
Убран чек-бокс для предупреждения об окончании периода оказания сервиса поддержки со страницы лицензионного ключа.
Структура RNs подразумевает блок удалений, но этот пункт оказался в группе новшеств. Поэтому, кроме проверок по чит-листу для опций, необходимо протестировать систему AMS, то есть поискать изменения в лицензионном соглашении или в других источниках на предмет оказания техподдержки. Примечание: убранная опция имела иное наименование в режиме ограниченной по времени версии (в нашем обычном случае - триал). С интерфейсной точки зрения новшество, а вернее - удаление, выполнено. Поскольку хелп не менялся с 28/11/2019, то в нём до сих пор имеется инфа про возможность сократить спам. К тому же, в хелп-топике "Preferences – License Key" всё ещё нет описания давно появившейся кнопки "Update License.." на странице лицензионного ключа настроек приложения. Функционально напоминания переместились из самостоятельного окна трея в панель системных предупреждений, о чём ни слова не сказано в RNs и хелпе. Никак не могу сказать, что это новшество чем-то улучшило работу пользователя с приложением, поскольку юзер теперь не может управлять спамом. Стоит пояснить, что предупреждения появляются автоматически при каждом старте приложения с увеличивающейся регулярностью при приближении даты очередного платежа: за месяц, за неделю, за 5-4-3-2-1 дней. В случае многопользовательской лицензии админа продукта затерроризируют пользователи без выхода в инет своим неравнодушием и предупредительностью. Во избежание именного этого раздражения изначально и была введена эта опция. Поэтому описанное новшество считаю именно ухудшением, а не улучшением. Если бы QA вовремя вмешался в планирование фиксов, то это ухудшение не было бы внедрено. Поэтому пункт RNs не получает вроде бы заслуженный балл (сделано во вред юзеру) и к тому же теряет ещё балл за неполноценность исполнения (текст RNs ограничен одним случаем и не упомянут функциональный перенос, хелп не актуализирован).
Нотификации об окончании периодов тех.поддержки не единственные перенесены в системную панель. Код модуля OSD обрабатывает всё, связанное с тех.поддержкой, видимо поэтому и конфирмация о сохранении (полагаю, и об отправке) OSD-сообщения перенесена из самостоятельного диалога в панель системных предупреждений. Об этом изменении функционала не упомянуто в RNs, да вдобавок оно принуждает пользователя к дополнительным переживаниям (подтверждение не входит в рабочую область приложения, а значит теряется из области видимости) и телодвижениям (системная панель - это соседнее окно, которое нужно активировать отдельно от работающего приложения). Скрытые переделки такого рода вынуждают снимать баллы с билда: -0.5 за само изменение функционала и -0.3 за не оповещение юзера.
Session Navigator   0.5 из 1 возможного, -0.5-0.5=-1 за баги
• Added all missing fields to the Process tab and the most frequently used ones are now displayed by default.
Добавлены все забытые поля на страницу процессов и более востребованные теперь отображаются по-умолчанию.
Подразумеваю, что данное новшество зависит от версии базы данных. Скорее всего в Oracle 12-ой версии и более последних добавились параметры отслеживания сессионных процессов. К сожалению, тех.писательница этого не упомянула. Искать дополнительно подсказки в хелпе бесполезно, потому что он давно (с ноября 2019г.) не актуализирован. Видимо совмещение тех.писательницей функций маркетолога (именно она спамила потенциальных покупателей) не позволяет ей управляться с двумя должностями одновременно. Полноценно проверить новшество у меня нет возможности по двум причинам: 1) до сих пор работоспособность модулей Session Navigator и Top Session Locator не приведена в надлежащий вид из-за проблемы при перекодировке юзера системы (запрос "select osuser from v$session" для всех системных сессий возвращает иероглифы, при том что для сессий приложения отрабатывает благополучно); 2) нет баз Oracle различных версий. Но список полей даже в модуле без данных сравнить с предыдущей версией SD вполне доступно: к ранее имевшимся двенадцати полям добавились ещё тринадцать, но не из системного вьювера процессов, а из системного вьювера сессий и может ещё какого-то (отследить запрос не удаётся из-за бага с системным юзером).
Добавленные параметры в числе дефолтных
Примечание: отслеживать запросы можно тем же модулем Session Navigator, но в предыдущих версиях SD, например, 4.4 или 4.7.1, которые иначе обрабатывали юникод. Возможно список полей стал более обширен, но список колонок в Dataset Manager абсолютно пустой. Это означает что, либо в грид по-умолчанию выведены все поля, а не только часто используемые, либо проблема с системным юзером не позволяет мне оценить полноту новшества и параметры процессов можно настроить в большем количестве, либо ограничение версии базы позволяет оценить лишь доступные добавления. В любом случае, новшество как-то осуществлено, но даже элементарный функционал мне не удалось проверить. Поэтому пункт RNs получает лишь 0.5 балла за наличие и теряет -0.5 из-за древнего бага. 
В процессе локализации бага "partial multibyte character" обнаружилась проблема с настройкой тулбара для области SQL History в окне SQL Editor. Это не новый баг текущего билда. Его появление зависит от каких-то изменений в модуле Icon Dictionary, поскольку теперь тулбар истории запросов абсолютно невозможно настроить - любой клик в IDic оставляет на тулбаре истории запросов редактора лишь одну кнопку копирования текущего текста в новую закладку редактора. Это серьёзный интерфейсный баг для SQL Editor из-за отсутствия обходных путей, поэтому билд теряет ещё -0.5 балла.
Code Editor   0.7 из 1 возможного, -0.3 за баги
• All occurrences of selected text are now highlighted in the Code Editor.
Все случаи выбранного текста теперь подсвечиваются в редакторе кода.
Очень странная формулировка новшества, из которой абсолютно не понятно о каких выборках текста идёт речь. На ум приходит только функция поиска по тексту, либо подсвечивание имён объектов при работе "Ctrl+Click". Если бы тех.писательница более тщательно подбирала термины из общепринятого глоссария, то вместо слова "selected" было бы "searching" и у меня не возникло бы никаких проблем с пониманием новшества. Интуиция меня не подвела, все искомые символы теперь подсвечиваются жёлтой подложкой сразу после позиционирования курсора на первом найденном. Тестирование осуществляем на любом своём тексте, набранном или вставленном в SynEdit (область редактора кода в SQL Editor, Stored Program Editor). В обычном текстовом редакторе (дополнительное окно для символьного поля в гриде данных) ничего подобного не приделано. Результаты моих исследований поиска в редакторе кода не утешительны. Новшество не доделано в двух направлениях: 1) настройки приложения не обрели новую опцию, то есть жёлтый цвет ни на что иное не сменить, что может быть опасно наложением и смешиванием раскраски; 2) первое найденное вхождение первоначально подсвечивается серым (по-умолчанию), а после перехода курсора на следующее вхождение (по F3) его подсветка обнуляется вместо замены на жёлтую подложку (ещё веселее случай поиска с середины кода). Если же поиск осуществляется в пределах предварительно выделенного (подсвеченного) текста, то подсветка последующих найденных вхождений отрабатывает достаточно логично. В процессе тестирования поиска в рамках выделенного текста выяснились баги: 1) при достижении предела текущего направления поиска больше не предлагается возобновить его с первоначально искомой позиции; 2) смена направления поиска при достижении предела в рамках выделенного текста всё ещё предлагает возобновить поиск с исходной позиции, но при этом границы поиска обнуляются: нет расцветки, исходная позиция приравнивается к началу/концу всего кода. За усовершенствование могу дать лишь 0.7 балла и за баги сниму 0.3 балла.

BUGS FIXED   0.5+1+0+1+0+1+0+0=3.5   из 2+5+1+2+1+1+1+1=14 возможных
Core    0.5+0=0.5 из 2 возможных
• Fixed the error “Could not initialize taskbar. Error:-2147467263” when running SQLDetective on Windows Server with Citrix.
Исправлена ошибка инициализации таскбара при запуске приложения на специализированной системе.
Это фикс бага из числа CustDev (индивидуальная разработка). Вероятно, какой-то перспективный покупатель пренебрёг системными ограничениями, описанными в ReadMe, инсталляционном мастере и на сайте компании ConquestSS, где указаны лишь конкретные операционные системы. Указанная в баге вариация платформы не является распространённой, поэтому фикс авансом примем на веру, перенаправив его проверку конкретному пользователю, зарегистрировавшему проблему. За такие индивидуальные правки можно получить не более 0.5 балла.
• Files in UTF-8 (with no BOM) and UTF-16 are now imported and analyzed correctly.
Файлы определённого сочетания юникодности теперь импортируются и анализируются правильно.
Текстовка бага ограничивает тесты особыми форматами текстовых файлов, путает понимание наличием терминов "импорт", "анализ" и "правильно". О каком импорте в данном случае идёт речь? Импорт данных в соответствующем мастере или открытие текстового файла в редакторе кода? Анализ кода в редакторе имеется ввиду или анализ объекта базы по командам ALTER, ANALYZE? Какие конкретно правила теперь учитываются и для каких действий и условий, если опираться в тестах на термин "правильно"? Ни один из вопросов не проясняется за счёт причисления пункта RNs к блоку Core. Такая размытая формулировка даёт мне право не включать фикс в билд. Чтобы не выявить массу дополнительных багов, как несоответствие термину "correctly", не буду проводить тесты гипотез. Поэтому только 0 баллов.
Примечание: если вам сильно захочется помучаться и поискать фикс, то тестовые данные - файлы - создавайте изначально в независимом стабильном приложении - Блокнот OS Windows. Символы можно набирать через альтернативный ввод: удерживая ALT набрать трёх-пятизначный ASCII-код символа. Внимательно выбирайте юникодные параметры сохранения файла, которые доступны в ниспадающем списке диалога сохранения файла.
SQL Editor   0+0.5+0.5+0+0=1  из 5 возможных
• The SQL Editor no longer hangs if the script execution is suspended after an error.
Редактор больше не зависает, если исполнение скрипта отсрочено после ошибки.
Для проведения тестирования необходимо удостовериться, что модуль настроен должным образом. Для этого откроем страницу "Preferences \ Code Editors \ SQL Editor" в установках приложения и проверим статусы опций "Prompt to break execution for all statements" (диалог позволяет обрабатывать исполнение скриптов в ручном режиме) и "Suspend script execution on error" (включенный режим откладывает выполнение после ошибки автоматически). В предыдущих билдах исполнение любого скрипта, даже без ошибок, подвешивало окно процесса исполнения после второго-третьего запуска скрипта. В текущем билде этот диалог не мозолит глаза, но после его исчезновения всё окно SQL Editor теряет всяческое управление: на тулбаре нет ни одной рабочей кнопки, закладки не реагируют на клики мышью, контекстное меню не появляется даже по нажатию функциональной клавиши на клавиатуре, лишь некоторые глобальные экшены доступны по горячим клавишам (поиск "Ctrl+F" не срабатывает, но запуск скрипта "Ctrl+Enter" или обновление данных "F12" происходит). Благо, закрытие окна доступно без проблем и дополнительных средств. В отличие от предыдущего билда, диалоговое окно процесса переименовано в авто-детектирование плана исполнения, но набор интерфейсных элементов остался прежним. Так что могу заключить, что фикс не решает проблему. Программист что-то изменил, но никакой ощутимой пользы юзеру не предоставил. Поэтому пункт RNs не получает ни балла.
• Removed the limit on the number of characters in a single line.
Убран лимит на количество символов в одной строке.
В предыдущем билде в редакторе кода (SQL Editor, Stored Program Editor), окне для вывода результатов запроса "SQL Editor / SQL Output" и текстовом редакторе (дополнительное окно для просмотра и ввода значений в символьные поля модуля SmartDataset) количество символов одной строки ограничивалось 1024 или 255 позициями. Но, если в редактируемые области ещё можно было вставить из буфера не ограниченное количество, то вывод значений запроса почему-то был обойдён вниманием программиста. Поправили возможность набивать символы в одну строку более 1024 символов, но строки в SQL Output окне и даже при spool-команде в файл всё-ещё обрезаются после 255 знаков. Этот баг выяснился мной в процессе подготовки статей о юбилярах по годам, поэтому пришлось воспользоваться не удобствами SD, а надёжностью SQL*Plus, который не обрезает, а всего лишь переносит длинные строки.
Установки вывода результатов запроса
Кстати, SD не жалует команду переноса строк: никакие настройки приложения не соблюдаются (в установках количество символов 1000 и включен перенос, а в выводе - только 255 в одну строку), даже с включенным параметром переноса "set wrap on" скрипт выполняет обрезание строк вывода. За половинчатое решение проблемы (редактор кода исправлен, но модуль вывода - нет) билд получает лишь полбалла.
• Fixed the splitter positioning on maximizing/restoring the window.
Зафиксировано позиционирование разделителя при максимизации и восстановлении окна.
Интерфейс SQL Editor имеет пять сплиттеров в разных местах: между редактором и закладками для отображения результатов, в двух закладках с результатами, между деревом кода и редактором, между историей запросов и редактором. О каком из них речь в данном пункте? Это придётся выяснять в исследовательских тестах. А чтобы выявить уровень регрессии к вариантам сворачивания и максимизации окна следует добавить его закрытие/открытие в режимах максимизации и средней величины, а также статус свёрнутости межсплиттерных панелей.
Легенда:
1 между редактором и закладками для отображения результатов
2 на закладке Data Output
3 на закладке статистики
4 между деревом кода и редактором
5 между историей запросов и редактором
вариации \ сплиттеры 1 2 3 4 5
размер раскрытых панелей
из среднего в максимизированный без изменений без изменений без изменений без изменений увеличивается
из максимального в средний без изменений без изменений без изменений без изменений уменьшается
закрытие и открытие среднего без изменений без изменений без изменений без изменений без изменений
закрытие и открытие максимизированного без изменений без изменений без изменений без изменений без изменений
закрытие среднего, открытие максим. без изменений без изменений без изменений без изменений увеличивается
закрытие максим., открытие среднего без изменений без изменений без изменений без изменений уменьшается
состояние прижатых панелей
из среднего в максимизированный оба направления учитывают тулбар без изменений без изменений без изменений без изменений
из максимального в средний оба направления учитывают тулбар без изменений без изменений без изменений без изменений
закрытие и открытие среднего оба направления учитывают тулбар без изменений без изменений без изменений без изменений
закрытие и открытие максимизированного оба направления учитывают тулбар без изменений без изменений без изменений без изменений
закрытие среднего, открытие максим. оба направления учитывают тулбар без изменений без изменений без изменений без изменений
закрытие максим., открытие среднего оба направления учитывают тулбар без изменений без изменений без изменений без изменений
В общей сложности получается 60 тестов, которые надо выполнить на двух билдах - прошлом (выявить места багов) и текущем (убедиться в полноте мест исправлений). Да, некоторые общевидимые вариации можно примечать единым тестом, что сократит ваше рабочее время. Такую компоновку причисляю к комплексному тестированию. Зелёным помечаем положительные изменения, красным - недоправки, жёлтым - отсутствие надобности фиксов. Поскольку исправлено поведение только главного сплиттера при прижимании, а не пиксельно-процентном соотношении высот панелей, и совсем не исправлено изменение ширины панели историй запросов, то пункт меню, недобросовестно описанный тех.писательницей, приносит билду лишь 0.5 балла.
• Fixed the ability to view data of the referenced object type.
Поправлена возможность просмотра данных ссылочных объектных типов.
Если вы хорошо знакомы со структурой объектов базы данных Oracle и возможностями приложения SD, то интуиция может вывести вас, как и меня, на таблицу с объектными полями, либо на объектную таблицу, два типа запросов из которой выполнены в закладку Data Output. Первый тип запроса - прямое перечисление полей, а второй - через спецсимвол звёздочки "select * from". Для теста нам нужны будут две таблицы на основе объектных типов: вся таблица и лишь некоторые поля. Пример возьмём из документации по базе данных Oracle.
-- создаём объектный тип "obj1" с двумя атрибутами "fld1" и "fld2"
CREATE TYPE obj1 AS OBJECT (fld1 VARCHAR2(100), fld2 NUMBER)
   NOT FINAL;
/
-- создаём объектную таблицу "obj_tbl" на основе объектного типа "obj1"
CREATE TABLE obj_tbl OF obj1;
/
-- создаём таблицу "obj_fld_tbl" с полем "obj_fld " на основе объектного типа "obj1"
CREATE TABLE obj_fld_tbl (tb_fld number, obj_fld obj1);
/
Для обеих таблиц генерим (перетаскивание объекта из дерева Object Navigator предлагает тексты запросов "Select *" и "Select All") в SQL Editor запросы двух типов. Грид таблицы "obj_tbl" в обоих случаях состоит из двух столбцов, а гриды таблицы "obj_fld_tbl" состоят из двух и трёх столбцов для запросов "Select *" и "Select All" соответственно, как в предыдущем, так и в текущем билдах. Для каждого поля при необходимости открывается дополнительный редактор соответствующего типа (калькулятор, текстовый редактор или грид ссылочных полей). В этом плане между билдами тоже нет никакой разницы, из чего заключаем, что либо никакого фикса не сделано, либо тех.писателю было объяснено исправление программистом не точно, либо у тех.писательницы не хватило знаний для конкретизации фикса в рамках текста RNs. Отсутствие изменений даёт мне право на нулевой балл.
• Fixed parsing of the quotes in the SQL*Plus comments (REM).
Исправлено вычленение кавычек в комментариях SQL*Plus.
SQL Editor предназначен для исполнения не только команд SQL, но и специфичных для SQL*Plus действий. Комментарий в скрипте может быть трёх типов: однострочный после двойного минуса или REM символов, многострочный в окружении слешей и звёздочек. Кавычки в коде могут быть одинарными, двойными и альтернативными. Поскольку в RNs не указан тип кавычек, то исследуем изменения в билде для всех трёх типов, но альтернативные глянем лишь одной вариации, чтобы не превращать тесты в бесконечность. Хотя вполне возможны баги в каких-то не указанных вариациях. Для достоверности тестов будем использовать одинаковые кавычки в закомментированной и исполняемой части скрипта. Обращать внимание стоит на графическое (цветовое) отображение текста в редакторе (интерфейсный компонент SynEdit) и результат от исполнения скрипта (на закладке SQL Output), поскольку тех.писательница не указала предмет применения парсера.
Срабатывание комментариев при исполнении скрипта
В прошлом билде никаких проблем при исполнении скрипта с кавычками в комментариях не было. В текущем билде заметно только отображение результатов, но отмеченная в RNs команда REM не претерпела вообще никаких изменений. Поэтому пункт RNs не получает ни балла из-за  полного несоответствия текста фикса новому функционалу.
Stored Program Editor  0  из 1 возможного
• An access violation error no longer occurs on the stored program execution.
Ошибка доступа больше не случается при исполнении хранимой программы.
Поскольку не конкретизирован тип исполняемой программы и причины ошибки, то попытаемся воспроизвести баг на любом объекте. И поскольку предыдущий билд исполняет благополучно первую попавшуюся мне процедуру, то этот мнимый фикс получает звание приписки и не даёт билду ни балла.
Session Navigator  0.5+0.5=1   из 2 возможных
• The error ‘’‘is not a valid integer value.’ no longer occurs when there are no results to show in the filtered Session Navigator.
Ошибка инвалидного целого значения больше не случается, когда в отфильтрованном навигаторе сессий нет результатов для отображения.
К сожалению, навигатор сессий не работает с базой из-за проблемы с системным юзером. А не имея иных машин для тестирования проверить фикс не могу. Авансом на веру дам 0.5 балла.
• Fixed the ability to kill database sessions in the RAC instance.
Исправлена возможность убивать сессии базы с распределённым доступом.
На моём тестовом стенде не только не работает модуль навигатора сессий, но и нет базы с распределённым доступом. Поэтому авансом на веру дам 0.5 балла.
Database Connection  0   из 1 возможного
• An access violation error no longer occurs on trying to connect to a new database after the previous connection was lost.
Ошибка доступа больше не случается при попытке коннекта к новой базе после потери предыдущего коннекта.
В данном случае необходимо определиться в понятиях "новый коннект" и "потеря предыдущего". Поскольку основное окно коннекта к базе имеет список последних коннектов, то предполагаю, что "новым" коннект должен быть для этого списка, то есть надо подключаться либо юзером, либо именем базы, либо её типом, не имеющим аналогичное сочетание в списке предыдущих коннектов. Потеря коннекта может быть разных видов: физическая - отключение рабочего компьютера от сети/сервера с базой, логическая - убивание или отсоединение сессии средствами администратора базы. Важным моментом надо считать текущий модуль приложения, выявивший потерю сеанса, и работоспособность мониторинга коннекта через настройку "Preferences \ General \ Session \ Keep connection alive - png DB every [NN] seconds". Также не лишней будет гипотеза о превышении граничных значений: 1) окно коннекта имеет опцию в 20 сохранений по-умолчанию предыдущих удачных коннектов; 2) SD можно настроить на разрешение только одной сессии базы в рамках запущенного приложения "Preferences \ General \ Session \ Only one connection per SQLDetective instance". Ещё одним аспектом тестирования этого фикса можно считать наличие в приложении простого окна коннекта к базе, которое можно вызвать командой connect в SQL Editor. Какой из пяти вариантов давал ошибку в прошлом билде? Придётся искать тестировщику, потому что тех.писательница поленилась уточнить условия, то есть актуализировать баг. Мне не удалось воспроизвести баг в прошлом билде по догадкам, поэтому пункт RNs остаётся без баллов.
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.
Ошибка, которая показывается при попытке добавить новый тип коннекта к базе с существующим именем типа коннекта больше не отслеживается утилитой EurekaLog.
Тех.писательница в попытке конкретизировать баг наворотила текст, который вполне можно было уместить в меньшее количество словарных оборотов: добавление дубликата типа коннекта обрабатывается как внутренняя ошибка приложения вместо общесистемной. Стоит пояснить, что  внешняя утилита EurekaLog отслеживает большинство ошибок приложения и некоторые проблемы базы, формируя системные логи. Если юзер сам добавил дубликат в число типов коннектов, то это не может быть ошибкой системы и должно обрабатываться интерфейсом приложения. Описанная обработка существовала в SD прежних версий, до перехода программистов на современный компилятор DelphiXE. Для воспроизведения в предыдущем билде откройте окно опций коннекта из окна последних коннектов, в блоке Database Type кликните по кнопке с плюсиком и введите наименование, аналогичное видимому в комбобоксе, после клика по кнопке подтверждения оцените окно и текст ошибки. Этому регресс-багу уже пятый год. Полагаю, что его отыскали в закромах BTS и включили в билд лишь для массовости правок, потому что у подобной мелочёвки обычно очень низкая важность. Но, тем не менее, он приносит целый балл.
Code Insight   0  из 1 возможного
• The exception “Object lock not owned.” no longer occurs when the Code Insight window is opened when a huge script is loaded in the SQL Editor or Stored Program Editor.
Исключение об отсутствии владельца блокированного объекта больше не срабатывает, когда окно помощника кода открыто для огромного скрипта, открытого в редакторах кода.
Для воспроизведения бага в прошлом билде вам придётся самостоятельно определить огромность скрипта, исходя из системных возможностей вашего компа. Для некоторых тестовых стендов несколько лет назад губительным был размер в два мегабайта, для иных - в десять мегабайт или 500 килобайт. Реальные юзеры присылали в тех.поддержку тела пакетов в сотни тысяч строк, так что можете начать с простой дублированной процедуры. Перед открытием файла в редакторе убедитесь, что подсказчик кода сработает автоматически, для чего достаточно установить настройки по-умолчанию на странице "Preferences \ Code Editors \ Code Insight". Мой вольный перевод возможно сбивает с истинных шагов бага, поскольку словосочетание "when the Code Insight window is opened when a huge script is loaded" можно двояко понять: процессы открытия помощника кода и загрузки файла происходят одновременно, либо помощник кода срабатывает для уже имеющегося в редакторе текста большого размера. Поскольку первый вариант, по-моему, не реален для воспроизведения, то тестировать буду лишь второй случай. Но ни одна из моих гипотез не дала результата, поэтому предполагаю, что причина бага не только в сочетании размера скрипта и работающего помощника. Возможно где-то пересеклась работа с деревом кода или иным модулем. Так что пункту RNs не могу дать ни балла.
Datasets   0  из 1 возможного
• Fixed the ability to view data of the referenced object type.
Исправлена возможность просмотра данных объектного типа.
По аналогии с ранее проверенным фиксом в рамках SQL Editor ищем разницу в отображении данных объектной таблицы и таблицы с объектными полями. К сожалению, никаких отличий с предыдущим билдом не позволяют мне дать ни балла за фикс.

Итого по билду: 1.2+3.5=4.7 баллов  из 3+14=17 возможных дают 4.7/17=28% готовности, которая снижается на -3.1 балла за счёт выявленных багов.

суббота, 28 марта 2020 г.

УВД

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

вторник, 17 марта 2020 г.

ТО о CDB 5.0.2.477

Неожиданно, после более годовалого молчания, 12 марта 2020 года опубликован билд ClearDB Documenter 5.0.2.477 (далее - CDB). Чтобы понять вескость  причины для смены номера релиза, обратимся к Release Notes, текст которых не выложен на сайте, но имеется в самом продукте (кнопка Help и её пункт меню "Release Notes ClearDB Documenter"). Возможно, что это последний билд от ConquestSS, поскольку с сайта пропали пункты меню о CDB, только некоторые рекламные тизеры о нём упоминают и возможны открытия страниц по прямым ссылкам. Но не буду сеять панику об отпачковывании CDB от ConquestSS или закрытии проекта, хотя их юристы - те ещё знатоки, оттяпают бизнес и оставят "без порток", как это уже было не раз (отобрали CS у первого создателя, увольняли через скайп после восьми вечера в пятницу или с утра отрезали коннект). Надеюсь, все пользователи CDB будут вовремя оповещены о смене владельца продукта, а пока займёмся технической частью.

IMPROVEMENTS    0.3+1.5=1.8  из 1+2=3 возможных, -1.2-0.8=-2  за баги
Core   0.3  из 1 возможного, -1-0.2=-1.2 за баги
Improved license key processing.
Усовершенствован процесс лицензирования.
Предвижу ваш вопрос о том, где взять новые ключи, но для проверки текущей реализации нам, по-моему, будет достаточно триального.
Во-первых, поищем разницу в текстах хелпа и лицензионного соглашения. К сожалению, её нет. Хелп генерился 11 октября 2018 года, так что нет смысла искать что-то изменённое. Хотя давно пора было заменить 30-ти дневный период пятидневкой, ведь месячные периодичные версии были введены перед выпуском предыдущего билда в ноябре 2018 года.
Статья хелпа об ограничениях пробной версии ClearDB
Про отсутствие заголовка в топике хелпа отчёт был отправлен в ConquestSS ещё пару лет назад.
Кстати, за поданную мной осенью 2017 года идею вернуться к периодичной аренде продукта мне до сих пор ничего не перепало. А ведь это самый удобный способ "стричь клиентов", когда команда разработки истощилась с идеями по развитию продукта. Да и все мои отчёты, альтруистично отправленные напрямую в ConquestSS, не возымели своего истинного назначения - улучшить качество продуктов. Поэтому цикл статей ТО хотя бы в моём блоге поможет начинающим тестировщикам научиться применять разнообразные техники.
А тексты лицензий можно сравнить либо в MS Word, либо в "SQLDetective / View Differences". О внесённых изменениях нигде не указано. Это существенная недоработка тех.писательницы, потому что она могла бы не сеять в умах пользователей чёрные подозрения, потому что при малейших изменениях лицензирования первейшим документом, подлежащим корректировке, является само лицензионное соглашение. Компания ConquestSS считается американской, а в США жутко ревностно относятся ко всем юридическим вопросам.
Во-вторых, поглядим состав ключа на главной странице и в настройках приложения "Preferences / License Key", также в кратком описании продукта "Help / About". Здесь можно заметить, что в деталях ключа появилась строка о количестве лицензий на Security Audit Report (далее - SAR).
Краткие подробности о продукте в окне About 
Случайным образом в процессе перегенерации доки обнаружилось, что SAR теперь является самостоятельным плагином, а не ограничивается только 32-х битным CDB. Но на него забыли дать права в триальном ключе.
В-третьих, CDB не имеет дополнительного welcome-окна, как это есть в SD и CS, которое предоставляет варианты выбора и получения ключа. Поэтому все мои догадки об изменениях лицензирования ограничены лишь SAR. Поскольку основным поставщиком этого модуля является Pete Finnigan, то подозреваю, что вынос модуля в самостоятельный плагин сделан по финансовым причинам. Но они нас не касаются. Мы будем смотреть только на функциональную часть новшества, которая совсем не в пользу программистов. Мало того, что новшество не описано подробно в документах для пользователя, так кодер ещё и сократил рекламность и без того маленького триала. Поэтому и название временного ключа "extended trial" звучит теперь как насмешка над пользователем. Итого, новшество получает лишь 0.3 балла, а теряет за счёт критичных багов -1 балл.
Главное окно продукта и нотификация о триале
Не могу оставить не учтённым баг интерфейса. При первом открытии CDB на главном окне и в других местах о содержимом ключа рисуется 100% красная шкала. Это сразу наводит на мысль, что все 100% уже использованы. Я-то понимаю, что это всего лишь наследие предыдущей 30-ти дневной реализации, когда градусник был синим первые 25 дней триала, и лишь на последние пять дней окрашивался в красный цвет. Тогда эта цветовая ориентация была логична для понимания, а теперь красный цвет не только часть остатков подсвечивает, но и пугает сочетанием ста процентов и цвета опасности. Более логичным было бы после перехода от 30-ти к 5-ти дням триала показывать градусник использованности также частично сначала синим 4 дня, а в последний день уже перекрасить градусник и подписи в красный. Очень странно, что один из владельцев продукта, весьма ревностно относящийся к подбору цветов (именно он подбирал эти подложки цветов "детской неожиданности" для столь серьёзной инфы в дереве доки и типах док - кремовый, салатовый, небесный, лососевый) упустил из виду эту интерфейсную неурядицу. Так что, за давний баг сниму ещё -0.2 балла.
Installer/Updater   1+0.5=1.5  из 2 возможных, -0.3-0.5=-0.8  за баги
On installing a new product version, the application now checks the presences of both 64- and 32-bit versions and deletes their data before the new installation.
При инсталляции новой версии продукта теперь проверяются существующие версии обоих типов 64-, 32-битной разрядности и удаляются их данные перед новой инсталляцией.
Поскольку инсталлятор во всех трёх продуктах ConquestSS является глобальным модулем и проходил мои тесты в других продуктах, то подробно останавливаться на CDB не буду. Отмечу лишь, что тех.писательница опечаталась: вместо фразы "deletes their data" стоило сказать "allows to delete old installations". Да, новый инсталлятор определяет имеющиеся версии CDB вне зависимости от разрядности, но предлагает удалить не сгенерённые ими данные, а всего лишь программы. Если же вы желаете оставить обе инсталляции и пользоваться разными билдами одинаковой версии, то перед запуском инсталлятора всего лишь переименуйте папку продукта в файловой системе, и пропустите шаг инсталлятора для удаления предустановленного продукта (не ставьте галочки и нажмите кнопку Next). Это новшество получает балл.
Но эта же информация нужна не только при инсталляции. Во всех продуктах ConquestSS есть модуль для отображения и пересылки в тех.поддержку информации о системе "Help / System Information". В этом файле блок Application не собирает полную инфу про все версии CDB. А если запустить продукт из переименованной папки, то и для текущего приложения номер версии окажется неопределённым и путь к продукту указан "старый", не из файловой системы, а из реестра операционки. Описанная проблема является багом комплексного тестирования или недоработкой. Поэтому билд теряет -0.3 балла.
О баге смежного модуля (деинсталлятор) расскажу в рамках следующего пункта RNs.
On uninstalling the Conquest tool, the user is now forwarded to the website to fill out a short form explaining the reasons to quit.
При деинсталляции утилиты от Conquest юзер теперь перенаправляется на форму сайта для заполнения коротких объяснений о причинах завершения.
Да, действительно, после закрытия мастера деинсталляции автоматически открывается интернет-браузер и пытается подключиться к уже (или изначально) не существующей странице "https://sqldev.tech/product_feedback_documenter". Все мои попытки подобрать иное имя страницы путём смены названия продукта не увенчались успехом. Возможно это по причине отсутствия продукта CDB на сайте ConquestSS. Но суть проблемы не столько в отсутствии страницы на сайте, сколько в способе реализации передачи данных об отказе от продукта. Во-первых, если юзер не читал RNs, то его очень сильно смутит автоматическая попытка прорваться в интернет, особенно с машины с ограниченными правами (доки в CDB обычно генерит админ базы, который предпочитает перекрывать лишние выходы). Во-вторых, перенаправление на страницу сайта происходит без предупреждений о предназначении этого опроса. Более учтивым был бы интерфейс последнего диалогового окна мастера по деинсталляции с явным линком на страницу сайта и соответствующими разъяснениями: "Продукт удалён. Просим пройти опрос на нашем сайте для последующего улучшения продукта и работы нашей технической поддержки. Потраченные Вами 2-3 минуты помогут не только нашей группе разработки, но и другим пользователям." Либо можно было реализовать третий вариант: сформировать e-mail письмо, вложив в него необходимые системные сведения. Так что, новшество получает лишь 0.5 балла.
Путь удаления продукта
К тому же, деинсталлятор не даёт выбрать данные для удаления. Позже вручную пользователю приходится стирать созданные папки, список которых мало совпадает с действительностью. Диалоги о существующих инсталляциях для 32-битного и 64-битного продуктов разные: 64-битный деинсталлятор не видит 32-битные инсталляции, и наоборот. За эти баги есть смысл снять с билда -0.5 балла.

BUGS FIXED   0.8 из 1 возможного, -2.8 за баги
Code Review Rules  0.8  из 1 возможного, -0.8-0.2-1.8=-2.8  за баги
The rule “Runtime concatenations of string literals affect performance” now works correctly.
Правило неэкономного использования ресурсов при мгновенном соединении символьных строк теперь работает корректно.
Для теста придётся в своей базе создать объект, например, тело пакета HR.ET_DEBUG из доки примеров (триального ограничения в 300 строк кода нам будет достаточно). Моя попытка перегенерить Sample Docu по типу 4 не дала ожидаемого переанализа кода, за что билд продолжает (давнишний баг - нет деталей Code Review в переанализированных объектах доки, перегенерённой по типу 4 Extract Subset без подключения к базе) недополучать -0.8 балла.
Code Review в перегенерённой доке по типу 4 без деталей и ссылок на строки кода
Поскольку в окне опций анализатора кода всё ещё невозможно выбрать все правила, чтобы массово их отключить и оставить только проверяемое, то билд недополучает за неудобство -0.2 балла. В текущем билде генерим доку по типу 1 New (регистрация базы не будет нужна, если пакет создан в схемах HR или SCOTT) и сравниваем результаты Code Review нашей новой доки с тем же объектом в Sample Docu. Хоть тех.писательница и не уточнила смысл правки, но по этому примеру мне стало понятно, что предупреждения теперь касаются только тех символьных сложений, которые подряд не перемежаются переменными, то есть два сложения вполне можно было бы вместить в одних кавычках. Поскольку это не было точно описано в RNs, то исправление получает только 0.8 балла.
Комплексное тестирование в очередной раз подтвердило наличие проблемы с EurekaLog в сопутствующем продукте docuVIEWER (далее - DV). Открыв доку для просмотра в только что установленном CDB+DV на чистую машину меня огорчили следующие интерфейсные глюки:
1) количество док для закладки Docu Explorer в DV всегда нулевое при открытии продукта;
Открытие DV
2) нет номера версии DV, для которого показаны "пустые" RNs во всегда открывающемся по-умолчнию окне;
3) закрытие DV сопровождается сообщением об ошибке про отсутствие встроенности EurekaLog в DV;
Закрытие DV
4) после закрытия DV в тулбаре страницы Docu Manager в CDB странным образом гасятся некоторые кнопки;
Частичное гашение кнопок тулбара
5) ни по двойному клику, ни через контекстное меню доки больше не открываются в DV после случившегося бага с неподключенным логом вплоть до перезагрузки CDB.
За них в общем сниму -1.8 балла.

Помимо вышеперечисленного, в процессе тестирования билда на глаза попались и другие недоделки.
1) Oracle  в этом году уже создал новую версию базы - 20, а в инсталляторе ConquestSS всё ещё указан лимит до 18-й версии, тогда как в файле ReadMe - 19.
Инсталлятор и документация о системных требованиях
2) Комментарии Sample Docu говорят о поддержке версий базы вплоть до 12с, а сама дока создана на 18-й версии.
Комментарий к Sample Docu и версия базы самой доки
3) При перегенерации доки из примеров по типу 4 зачем-то выскакивает предупреждение о режимах подсчёта MI. Странность в том, что значение этой опции по-умолчанию в приложении и в готовой доке примеров должно быть идентично.
Предупреждение о смене важной опции
4) Если вы вручную выбрали все правила проверки кода, то это не отображается после закрытия окна Code Analyzer Options в списке опций для генерации доки.
Выбор опций в дополнительном окне не обновляется в рабочем
5) Странно, что такой простенький продукт DV до сих пор не переведён в 64-битную разрядность. Даже если CDB установлен 64-битный, то вьювер всё ещё вкладывается 32-битный.
Разрядность приложения
6) Все страницы мастера генерации док имеют подсказки, но они только занимают полезное пространство: высота окна такова, что на некоторых 16:9-мониторах функциональные кнопки подрезаются таскбаром Windows OS, а вместо лишнего текста лучше было бы подписать как минимум блок Feature Navigator.
7) При перегенерации доки по типу 4  из Sample Docu для будущей доки предлагается путь в корне диска "C:\".
Путь к новой доке автоматически подставляется из исходной
Понимаю, что эта настройка пришла из исходной доки, но ведь это не только не удобно юзеру, но и не безопасно. Обычно корень основного диска закрыт простым юзерам операционки на добавление и изменение. А факт того, что дока примера делалась на тестовом стенде с безграничными правами говорит о неразборчивости её создателя в уровнях безопасности.
В общей сложности эти дополнительно подмеченные баги тянут на снятие балла.

Итого по билду:  заслужено 1.8+0.8=2.6 балла  из 3+1=4 возможных, что составляет 2.6/4=65% готовности, а баги отнимают -2-2.8-1=-5.8 балла.