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

пятница, 2 апреля 2021 г.

Решаем задачи

Отслеживание качества продукта - важнейшая функциональность тестировщика. В число характеристик качества входит и процесс производства, а его налаживание и есть та миссия, которая поручается тестировщику. Когда производственный процесс налажен чётко и ясно, прозрачно для всей группы разработки, то руководящему звену легко и просто отследить и выявить провисы и перегибы, а следовательно и принять вовремя меры по стабилизации процессов.
Для обеспечения прозрачности работы группа разработки использует какую-нибудь систему BTS (Bug-Tracking System), которая в свою очередь состоит из отдельных задач. У задач есть характеристика - жизненный цикл, который можно представить несколькими способами. Своим поделюсь в этой статье.
Этапы задачи разбиваю на следующие: создание, синхронизация, актуализация, исполнение. Шаг планирования пропущен, так как им занимается менеджер, а не рядовой тестировщик. При чём после каждого из первых трёх этапов вполне реально перепланирование, то есть смена сроков и ответственных. По этой же причине не выделяю отдельно декомпозирование задач. Остановлюсь на каждом из них подробнее в разрезе того, когда по моему мнению ими удобнее заниматься.
Созданием, как и ранее было сказано в статье МОПС, предлагаю заниматься в конце дня, когда в процессе основной работы над модулем или всем продуктом собрано достаточно информации для локализации проблемы. Полный набор сведений лучше собирать исходя из структуры ваших задач, как это было описано в статье "ГКЧП - Где, Как, Что Править?". Не забывайте, что из этих первичных документов, то есть тасков вашей BTS, формируется ваш отчёт о тестировании. Насколько точно и аккуратно будет оформлена каждая из задач, настолько же верно вы получите срез о качестве всего продукта. И дело тут не только в количестве и важности ошибок и предложений, но и в распределении их по модулям-компонентам, ответственным, а также подсчёт потраченного времени. Каждая мелочь, складываясь в общий график, даёт аналитические данные для последующего планирования.
А уже с утра следующего дня до ежеутренней планёрки (если вам привычнее - стендап) рекомендую читать, редактировать и синхронизаровать задачи, оформленные вами и всеми другими членами команды. Большинство советчиков по эффективности тайм-менеджмента предлагают начинать любую работу с лёгкого или мелкого. Придерживаясь этого мнения и я предлагаю начинать рабочий день с мелочёвки - почитать результаты чужих дел. О том, зачем нужно и как проводить оценку, подробно описано в моей статье "Issue review (ГКЧП-2)". Напомню только, что в процессе ознакомления с задачами всех вы упрощаете ежедневную встречу для отчёта о проделанной работе каждым членом команды. Их короткие речи станут вам понятнее, а также успеете сформулировать вопросы для уточнения пути развития продукта. Лишь после сбора всех мнений команды об отдельно взятой задаче для её декомпозиции и планирования будет набрано достаточное количество аргументов.
Актуализацию задач выделяю отдельным этапом, потому что это фактически работа с техническим долгом. Шеф ConquestSS предлагал отводить на это дело по полчаса с утра, но практика показала, что актуализировать забытые или отложенные задачи вы будете весь рабочий день. Зачастую с виду простенькие замечания или идеи требуют обильной проработки и многочисленных исследований в параллельных областях. Так что, тридцати минут даже на одну задачу не хватало. Раз в год или чаще в список для актуализации попадали задачи, давно заведённые в BTS, но до сих пор не попавшие ни в один билд, то есть вовремя не запланированные. В процессе актуализации некоторые задачи закрывались, как часть ранее реализованного, какие-то дополнялись для планирования на ближайший выпуск, остальная часть считалась несвоевременной фантастикой и откладывалась до будущих времён.
Исполнение полноценно оформленной задачи проводится в основное рабочее время. На каждое задание у вас уйдёт ровно столько времени, сколько запланировано, только если с задачей была ознакомлена вся команда, которая аргументированно дополнила, декомпозировала и запланировала её на исполнение. В процессе проверки исправленных багов, исследования новшеств, сбора данных по производительности продукта у вас непременно будут образовываться идеи для развития приложения, замечания по несоответствиям с нормативами, которые откладывайте по системе МОПС для замыкания спирали усовершенствования вашего продукта или, иными словами, жизненного цикла задач, то есть создавайте новые.
Некоторым из вас может показаться, что второй и третий этапы - синхронизация и актуализация - взаимозаменяемы, но уверяю вас, они не есть одно и тоже по нескольким причинам. Да, в обоих случаях проводится исследование и задачи дополняются, корректируются. Но! В синхронизации одной задачи участвуют много работников, в то время как для актуализации нескольких, объединённых по модулю, задач достаточно одного тестировщика. Синхронизация - процесс поверхностный, то есть не требующий больших временных затрат, а актуализировать надо проникая глубоко внутрь идеи. То есть, синхронизация идёт горизонтально вправо и влево в разрезе задач, а актуализация - вертикально вниз по продукту.
Надеюсь, мои вышеизложенные умозаключения помогут менеджерам и рядовым тестировщикам теперь более эффективно распределять рабочее время.

воскресенье, 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 балла.

четверг, 25 июня 2020 г.

теле2-портация

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

Входные данные.
В телефоне-звонилке работает симка с тарифом только для звонков и сообщений (назовём её ТЗС=ТарифЗвонковСообщений), все услуги по выходу в Интернет отключены, да и сам аппарат не поддерживает выход в Сеть. Фирменный модем-свисток со специальным тарифом (назовём его ТИ=ТарифИнтернета) подключает к Интернету компьютер.
Проблема.
Рано утром меня разбудили пришедшие на ТЗС два сообщения: о подключенной услуге развлечений и тутже факт самой забавы. Это кто ж меня подключил во время сна? Подозревая неладное, открываю через ТИ личный кабинет ТЗС-а и обнаруживаю в блоке Расходы, что с меня сняли 15 рублей за выход в Интернет и 10 рублей за подписку развлечений. 
Провайдерские кражи
Как так? Без моего ведома кто-то распоряжается моими счетами? Да ещё в то время пока сплю! Какой-то нонсенс. При том, что аппарат лежит в соседней комнате, то есть довольно далеко от кровати спящего владельца.
Разбирательство и устранение проблем.
В блоке Услуг личного кабинета ТЗС-а обнаружена подключенная услуга развлечений, которую немедленно отключаю. Для поиска подробностей о том, кто и когда мог мне её подключить, а также о якобы выходе в Интернет делаю запрос Деталей Расходов. Но поскольку в такой отчёт включаются данные только с четырёхчасовой задержкой, то обнаруживаю лишь запись об Интернете. Какого же было моё удивление от времени якобы-связи: 00 часов 52 минуты текущих суток. Припоминаю, что примерно в это время был окончен сеанс Интернета, но не по ТЗС-у, а совсем по иной симке - ТИ. Да, вчера пользование телефонным аппаратом с ТЗС-а было завершено в 21:00, да и то, не связью, а лишь прослушиванием записей с карты памяти. В общем, к аппарату никто не прикасался более, никаких входящих или исходящих контактов не осуществлялось. Далее, то есть с 21:00, был включен комп для просмотра видео через связь по ТИ.
Кстати, если видеопроигрыватели на порталах поддерживают настройку "Качество=Низкое", а тариф интернета мерный, то за 10-14 часов просмотра видео без сторонних скачиваний (реклама, обновления системы и приложений) потратите лишь около двух гигабайт. Соглашусь, что перед сном лучше книжку почитать, а не в монитор глазеть, но наше поколение экран быстрее приводит в сонное состояние.
Мой сеанс по ТИ завершился в 00:50. И вот оно - совпадение! Отключенный Интернет и выключенный комп всю ночь провели в несколько-метровой удалённости друг от друга. Но почему-то в детальном отчёте расходов завершение сеанса по ТИ было отмечено как коннект по ТЗС. Да, обе симки оформлены с одинаковыми персональными данными, но ведь база коннектов для подсчёта трафиков должна связываться по уникальным идентификаторам симок, а не их владельцев. Так что, с высокой колокольни тестировщика могу предположить, что в это время заливалось очередное обновление системы, которое дало такой типа-странный сбой. 
Общение с чат-ботом не выявило причин проблемы, но подсказало путь к решению.
Ответы чат-бота
Если ваш телефонный аппарат по инструкции пользователя не имеет возможности коннекта к Интернету, то это совсем не значит, что сотовый оператор не найдёт способ содрать с вас деньги за необходимый лишь ему трафик.
Вторым подтверждением глючного апдейта теле2 можно считать навязанную подписку развлечений, подключенную без участия абонента. Конечно, я понимаю яростное желание компании в наживе, но зачем же так грубо теле2 пытается надуть своих клиентов? Почему использую такие жёсткие эпитеты? Это легко объяснимо. Следующим шагом был мой звонок в сервисную службу по номеру 611, где с оператором мне удалось поговорить лишь после прослушивания информации про подписки. На мой рассказ о подключенной без моего ведома подписке и снятой суммы за непользованый Интернет сразу последовала "лояльность" в виде возврата десяти рублей за подписку, но пятнадцать рублей за килобайт интернета вернуть отказались. 
Льстивый возврат
Моя длительная практика в роли специалиста техподдержки даёт мне основания заявлять, что обычный оператор сервисного центра не уполномочен раздавать всем подряд какие-либо скидки и "программы лояльности". Решение о возврате денежных средств даже в мелкой организации принимается владельцем продукта или маркетологом, но никак не сотрудником нижнего уровня, в данном случае - отдела сервисного обслуживания. Скорее всего, название "программа лояльности" - это лишь красивое прикрытие неправомерных действий теле2 по автоподписке клиентов на платные услуги. То есть, сначала их триггер автоматом включает услугу без ведома клиента, а потом, если мы замечаем такие не наши действия, то нам возвращают снятые с нашего счёта рубли. Но, поскольку не все абоненты регулярно перепроверяют свои трафики, то теле2 наживается на нас без нашего согласия. Хоть и по десяточке, а с множества абонентов получаются миллионы лёгкой прибыли. Да и в Сети вы сами можете найти не мало случаев, когда за несанкционированную подписку возвращали моментально средства. 
Но на этом мои действия по защите ТЗС не остановились. Зайдя в городской офис телеоператора мне было предложено заблокировать всё последующее поступление подписок. Продавец самостоятельно, без показа или озвучивания мне, набрала какую-то комбинацию на клавишах аппарата, после чего на телефон ТЗС пришло подтверждение о предотвращении спама. И ещё заверила, что принеся симку ТИ в офис она и ту оградит от нежелательных подписок. А вот с якобы использованным Интернетом так и не удалось справиться. Ни продавец, ни случайный посетитель, ни тем более мои подробные знания аппарата так и не помогли мне найти не существующие настройки Интернета в меню телефона-звонилки. Но даже это не смогло убедить представителя теле2 в том, что с ТЗС мной не мог быть осуществлён выход в Сеть и с пятнадцатью выкинутых на ветер рублей пришлось попрощаться навсегда. Зато после посещения офиса подтвердилось моё подозрение о навязывании услуг. И говорю даже не о тех зазывных предложениях продавца приобрести новый смартфон или сменить тариф, а о пришедшей в момент моего посещения офиса смс-ке на ТИ с конкретной ссылкой на включение всё тех же подписок с развлечениями для тех, кому больше восемнадцати лет.
Последующие наблюдения за расходами обеих симок в течение недели окончательно убедили меня в подозрении о путанице идентификаторов. Все отключения Интернета по ТИ в точности до минуты совпали с продолжавшимися несанкционированными мной Интернет-подключениями ТЗС, деньги продолжали утекать без моего ведома. В очередной раз прошерстив все услуги личного кабинета ТЗС, мне удалось найти бесплатную услугу "Запрет доступа в интернет". 
Бесплатное подключение и использование, но не на всех тарифах
Решение задачи завершено. Ответ.
Из всего вышеизложенного более у меня нет никаких сомнений, что теле2 намеренно (или случайно из-за низкого профессионализма программистов и тестировщиков) отнимает денежные средства у своих клиентов без нашего ведома, участия и согласия, то есть теле2 - мошенники в прямом смысле слова. К сожалению, детализированный расход ТИ не фиксирует время окончания сеансов, поэтому у меня нет фактов для доказательства провайдеру его ошибок программирования. Маленькая сумма (по 15 руб. пару раз) отъёма у меня денег и частичное (10 руб.) возмещение ущерба не даёт мне повода для обращения в суд или иные правоохранительные и надзорные инстанции, но если с вами произошла аналогичная ситуация, то совместное обращение к власть-имущим возможно прекратит такое издевательство над честными гражданами и предотвратит нахальное превышение полномочий.   

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

вторник, 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 балла за счёт выявленных багов.