Кто владеет информацией, тот владеет миром. Это аксиома современности. А технологии, собирающие и хранящие, анализирующие и обрабатывающие информацию, бессмысленны в случае ограниченности её потребителей.
Ну что толку в том, что вы один знаете таблицу умножения, если на рынке действует натуральный обмен без денежной прослойки? Зачем вам быстро считать монеты, если обмен происходит не в объёмном количестве, а по качественному признаку?
Или, например, зачем вам уметь читать или говорить на иностранном языке, если все закрылись у себя дома и не ездят в гости, не обмениваются новостями. Им всё равно, что происходит у вас, вам безразличны их достижения, потому что у вас всё по разному, уникально, точечно, логично и более приспособлено к собственной местности.
Развитие конкретики исходит из конкретных традиций. Да, по некоторым статьям в чём-то можно найти единообразие, допустим, появление радио. Но тот слой общества, который ставит превыше всего доходную составляющую, любую новинку стремится присвоить себе. С другой стороны, народы с широкой душой щедры не только хлебосольством, но и помыслами, мыслями, идеями. Россиянам не столь важен факт бюрократического подтверждения, сколь возможность поделиться способностями, возможностью помощи неимущим.
Одновременно общество, внедрившее юриспруденцию для защиты материальных интересов, к сегодняшнему дню устало соблюдать законы, которые они же сами и создали. Что это? Недальновидность в разработке законодательства? Ведь принятые к исполнению правила приходится соблюдать всем, даже тем, кто их придумал, а это вдруг стало невыгодно им самим. А может это психическая неуравновешенность? "Зачинатели демократии" вдруг перестали прислушиваться к мнению большинства, считая лишь себя исключением, элитой. Спешу напомнить исторические факты о тех, которые возомнив себя богом так и не добрались до солнца и заоблачных вершин.
И это тоже информация, которая была собрана историками для того, чтобы нашему поколению жилось легче, проще, а кому-то и выгоднее.
Какой-то век назвали "каменным", какой-то "железным". А текущий, наверно, назовут "информационным". Именно эти технологии сейчас правят миром. Начиная от газет и телевидения, учитывая базы данных всех горизонталей и вертикалей, присовокупить к этому списку фонды библиотек и архивов, а также не принижая значимость профсобраний, разговоров по душам в кафешке и подворотных слухов.
Информация сегодня - это дорогой продукт, особенно если он обёрнут в актуальную идею. Так к примеру слух, как сухой хворост для костра, разжигает ажиотаж вокруг какого-нибудь товара. Опечатка или оговорка в СМИ может исказить освещение события в точности наоборот. Искусственно подобранная статистика исказит стратегию и планирование. Киборги действительно поработят мир, если МОИРы (Мастера по Обучению Искусственного Разума) аккумулируют подобную задачу в автоматы.
Страшно. Но если предупреждён, то значит вооружён. А кто как ни радетель качества в состоянии предотвратить проблемы.
Да, я намекаю на нас - тестировщиков. Так нас называют в простонародье. Мы же себя именуем чаще инженерами по качеству. И государство в этом с 2014 года нас в этом поддерживает.
Но странны меры по поддержке отрасли. Они нацелены на молодых специалистов, которые не в состоянии поднять IT-производство на необходимый уровень из-за элементарного отсутствия опыта.
Не секрет, что в IT "войти" желают многие. Но не столько из-за интереса к профессии, сколько из низкого желания получать высокую оплату за кажущиеся на первый взгляд лёгкие работы. А сложностей в IT-профессиях предостаточно. Начиная от умения услышать заказчика и впоследствии убедить его, что он получил ровно то, что заказывал. На ком лежит ответственность за качество высокоточных приборов? Кто из создателей сложных систем спокойно спит, уверенный в работе их продукта без сбоев? Кто из кодировщиков хоть раз не отправлял программу заказчику с присказкой "авось пронесёт и юзер туда не полезет"? Разве что юниоры, не нюхавшие пороху. И на них надеется государство. Эти желторотики сделают прорыв? У меня за спиной несколько десятилетий стажа в IT-отрасли, глубокое знание внутренней "кухни" производства ПО, поэтому однозначно могу заявить, что эта молодая поросль скорее всего пойдёт по пути революций и сначала сотрёт, уничтожит всё до основания, а потом с нуля напишет ширпотреб, который моментально потеряет свою пригодность.
Полагаю, что предложения по господдержке формулировали эти самые юнцы, кто-то из депутатских сынков. Хочется спросить законодателей: почему у них не возникло мысли обратиться к тем, кто действительно знает все ступени создания и поддержки продуктов? Может они не знают, что мы есть? Почему "дедушка" российского качества молчит? Александр Александров, неужто ваша проактивность спит? Или вы не патриот?
Тем, кто действительно сейчас может принести пользу российским информационным технологиям, глубоко за 27 лет. И за счёт высокой оплаты у них нет жилищных проблем. А вот что действительно поможет поднять отрасль на должный уровень, так это ничего не стоит государству. О проблемах работы с госсектором говорено и обсуждено много в рамках конференций аналитиков и тестировщиков. Полный список докладов и капризов заказчиков доступен на сайтах "sqadays.com", "analystdays.ru" и в подборках Влада Орликова на портале "vimeo.com".
Почему российское ПО не пользуется спросом на мировом рынке? Сразу оговорю, альтернативы всем популярным порталам и мобильно-десктопным программам уже имеются. Их не надо создавать с нуля или придумывать нечто новое. Просто на международном рынке так заведено, что покупается ПО только с американским или европейским лицензированием. Запад приучил мир покупать только то, что юридически заверено.
К сожалению, приходится признать, что юридический сектор в России очень слаб. Нет, специалисты подкованы знаниями, но вот убеждать оппонента словом как-то не научились или не могут в силу широты души россейской. Наше добродушие и чистосердечность нас и губит. Бизнес и экономика никогда не будут добрыми, их прерогатива жёсткость, выгода, а порою и блеф до уровня лжи.
Чем действительно государство может помочь IT-сектору, так это прозрачностью и однозначностью законодательства. ПО и рацпредложения нуждаются в юридической поддержке, а не в обилии кодировщиков. Однозначность и единое понимание заказа и готового ПО, отсутствие несанкционированных запросов и изменений в техзадании являются источниками качественного продукта. Для этого нужны юридически подкованные специалисты каждой группе разработки. Дешевле снабдить компании юристами или обучить имеющихся аналитиков и внедренцев специализированным направлениям закона и права, чем раздавать всем айтишникам ипотеки и отсрочки от армии.
По-моему, если молодые специалисты пойдут в армию и там пройдут свои первые шаги в IT-отрасли, то это будет более эффективно для самого юниора и для всего производства в целом. Там его научат действительно работать, исполнять ровно то, что запрашивается, да и окружение уже служащих специалистов является наилучшей средой для передачи опыта.
В помощь информационным технологиям хорошо бы ускорить и упростить процедуру получения патента и лицензии. Но, чтобы они не стали фиктивными, их учёт должен быть прозрачным и доступным.
К сожалению, российский менталитет врядли когда-то допустит неукоснительное соблюдение всех законов и отстаивание прав через судебные инстанции вместо сегодняшнего землячества и родственных связей. Но всё равно, если Россия считается правовым государством, то всех жителей стоит приучать к этому с малолетства. Не знаю как это соединить с широкой душой, но в этом, думаю, помогут специалисты психологии. Может они сумеют без вреда нашему национальному менталитету, социально направленному, наложить на наши характеры неотвратимость соблюдения законов, нами же придуманных.
Нужна ли молодёжь в IT? С каждым годом всё меньше и меньше, потому что кодировщики и программисты скоро будут лишними, их заменят МОИРы. Даже тестировщиков можно будет отменить, если задания составлять так, чтобы все проверки проходили автоматически. А вот без аналитиков, постановщиков задач, внедренцев врядли когда-то сможем обойтись. Они как переводчики между людьми и машинами ещё долго будут нужны, как и яйцеклетки со сперматозоидами для продолжения и совершенствования рода человеческого.
Но вот вопрос: а что подразумевается под IT-отраслью? Только создание ПО или к информационным технологиям реально причисляют и СМИ, и всю электронную технику? Информацию распространяют Средства Массовой Информации: радио, телевидение, интернет каналы соцсетей и аудио-, видео-хостингов. Так значит господдержка должна распространяться и на блогеров, репортёров? А учителя и библиотекари разве не считаются распространителями информации? В их обязанности входит анализ и сортировка передаваемых в массы знаний. АСУТП-ишники, то есть электронщики, разве не считаются IT-ишниками? Абсолютно во всех сферах производства имеются должности так называемых "компьютерщиков", которые не создают, но поддерживают в рабочем состоянии уже внедрённые информационные технологии. Их тоже государство причисляет к тем, кому будет отсрочка от армии, ипотеки и низкие налоги? Не многовато ли категорий работников подпадает под IT-отрасль? Очевидно, что законодателям не хватает профессиональных тестировщиков документации, которые заранее выявят противоречивость, избыток и прочие недостатки требований. Ещё раз повторюсь, что всякому производству нужны профессионалы, а не дилетанты. Чтобы сразу после учебного заведения стать профессионалом нужна практика и передача ученикам актуальных знаний, либо максимально агрегированные базовые навыки.
Мой профессиональный взгляд на сегодняшнюю меру поддержки IT-отрасли однозначен: не эффективна для развития, а наоборот губительна. Покажу на примере. Допустим в какой-то группе разработки ПО возник форс-мажор - перед самым выпуском исчез (умер, уволился или ушёл в отпуск) работник, на котором держались основные задачи. Что в этом случае предпримет кадровик? Из любого безвыходного положения всегда есть три выхода, но тестировщик знает о трёх. Как QA предложу:
1) перепоручить работы имеющемуся персоналу, параллельно повышая его уровень курсами, то есть использовать внутренние резервы за счёт имеющихся, что является самым дешёвым вариантом (можно даже сэкономить на зарплатном фонде, добавив этому работнику лишь половину ставки ушедшего), но немного потратиться на дообучение, которое впоследствии принесёт ещё большую пользу. Никаких трат (денег и времени) в этом случае на введение стороннего члена команды не потребуется, стадия онбординга не замедлит разработку продукта и зарплатный фонд можно снизить, как и себестоимость продукта.
2) найти стороннего работника с аналогичным уровнем - задача для отдела кадров не только длительная, но и порой невыполнимая. Расходы на поиск и внедрение нового работника увеличат не только время разработки, но и себестоимость продукта. И ещё без какой-либо гарантии, что сотрудник подойдёт команде по уровню знаний, навыков и психологически.
3) взять на бирже труда пучок новичков, среди которых разделить все обязанности ушедшего. Новичков однозадачников набрать быстро, но каждому из них придётся выдавать полноценную зарплату, наше социальное государство не потерпит рабовладельчества. И не только поэтому считаю вариант наихудшим. Команда разработки страдает при добавлении одного новичка, а тут целая куча. Как бы это ни было странно, но любое дело замедляется по принципу геометрической прогрессии при добавлении рабочих рук и голов. Поговорка о двух головах, улучшающих одну, работает в противовес, потому что у каждого своя правда и каждая из рук, как лебедь, рак и щука тянут одеяло на себя, а не ровно в одну сторону к всеобщей цели. Если обязанности одного работника разделить на нескольких, то нет никакой гарантии, что один из этих новеньких в ответственный момент не станет тем же камнем преткновения, исчезнув из настроенного конвейера, и застопорит разработку.
Из этого примера вывод таков, что уже сейчас могу ответственно заявить, что выбранные меры поддержки IT-отрасли не помогут, а наоборот, скорее утопят её. Действенными же мерами были бы:
1) малограмотные дилетанты, не прошедшие опыт жизни в тесном коллективе, то есть отстранённые от службы в армии, никак не могут принести пользу. Это очевидно любому. Поэтому нужно повышать уровень знаний и приближать опыт на практических занятиях учебных заведений к актуальным реалиям. Для этого нужен прорыв в разрешённости и рекомендуемости учебных курсов и организаций. Для всех должностей в группе разработки в последние годы сформировалась предостаточная теоретическая база, это подтвердит наличие множества конференций и личных курсов, перешедших в высшие учебные заведения. Государству осталось помочь этим учебным заведениям формировать готовых специалистов, то есть обязать существующие производства стажировать студентов. А если задуматься о будущем, то нужно помочь составителям годичных планов этих курсов с актуализацией, то есть каждый год, а то и чаще, план обучения должен меняться. Технологии уходят вперёд, а абитуриентам приходится выбирать из курсов вчерашнего дня.
2) вместо налоговых и ипотечных льгот для весьма размытых по названию должностей повсеместная юридическая грамотность приведёт общество к привычке соблюдать законы. Если в обществе установлены и работают конкретные правила, то им просто управлять. Команды, строго придерживающиеся своих принятых правил, быстро достигают "бирюзового" уровня.
3) как одна из сторон юридической грамотности и для развития патриотизма уже имеющимся на рынке и только разрабатываемым продуктам нужна стабильная система лицензирования. Она поможет повысить доверие покупателей к продуктам и производителям, она защитит производителей от произвола пользователей.
Импортозамещение IT-отрасли в России, полагаю, должно пройти очень быстро, потому что наши создатели ПО по большей части составляли команды разработки всех популярных программ. При том, не только кодили (напомню: нашим программистам нет конкурентов на всех олимпиадах), но и знают изнутри эти системы, их связки и потенциальные уязвимости. Такая информация в головах теперь только наших специалистов недорого обойдётся государству, а прибыль может приносить обильную, когда начнёт конкурировать на мировом рынке.
И за это скажем спасибо санкциям. :) Русский мужик не перекрестится, пока гром не грянет. Но уж если возьмётся за дело, то супротив него некому выйти.
Горячее за неделю
Показаны сообщения с ярлыком лицензия. Показать все сообщения
Показаны сообщения с ярлыком лицензия. Показать все сообщения
вторник, 22 марта 2022 г.
понедельник, 18 марта 2019 г.
ТО о SD 5.0.1.124
13 марта 2019 года вышел первый билд (build 124) новой версии SQLDetective 5.0.1 (далее - SD). Согласно списку новшеств и исправленных багов, перечисленных в Release Notes (далее - RNs), проверим продукт на готовность. Оценку каждого пункта буду производить в баллах, тем самым получится процентное количество целостности билда.
NEW FEATURES 0.5+0.8=1.3 из 2 возможных баллов
⦁ NEW: Technical Debt. A new code metric to calculated an assumed cost of fixing structural imperfections in code.
Новинка: Технический долг. Новая метрика кода для расчёта стоимости исправлений структурно-несовершенного кода.
Полгода назад (12 ноября 2018 года) был выпущен ClearSQL 8.0.1.121, впервые просчитывающий показатель технического долга PL/SQL кода. Формула и параметры расчёта описаны во встроенной справке для страницы "Tools / Code Audit / Code Analyzer Options / Code Metrics Options / Technical Debt", но, как видите сами, тех.писательница поленилась упомянуть это в RNs. В справке сразу бросаются в глаза двойные символы процента. Нигде не сказано, на какие исследования ссылается вывод об избранной формуле для расчёта технического долга. Также нет возможности корректировать формулу, даже изменяемые в опциях параметры не отображают своего фактического значения в формуле, что даёт повод подозревать применимость лишь дефолтных значений. В противовес, все иные метрики, изменяемые на странице выше "Tools / Code Audit / Code Analyzer Options / Code Metrics Options", моментально отображаются во встроенной справке и имеют ссылки на официальные документы и исследования. Выявленные недоработки позволяют мне дать лишь 0.5 балла за новшество.
⦁ NEW: Monthly subscription. SQLDetective is now available as a monthly subscription.
Новинка: Месячная подписка. SD теперь доступен по месячной подписке.
В исходном варианте смысл новшества понятен лишь самому производителю. А для пользователя следовало дать пояснения, что теперь триальный период ограничивается лишь пятью днями, лицензию же можно приобрести в двух вариациях - как и прежде полноценно постоянную, либо помесячную с некоторыми ограничениями. Хотя хелп и повествует, что месячная (кстати, очень дешёвая) лицензия полноценна по функционалу, но не могу (нет в наличие соответствующего ключа лицензии) утверждать, что в противовес ClearSQL в SD позволено анализировать безмерное число строк кода. Так что, с большой вероятностью заверяю пользователя, что в хелпе новый формат лицензирования описан лишь с рекламной точки зрения, а не с технической. Поэтому даю лишь 0.8 балла.
IMPROVEMENTS 2+1+1.5+2.2+0.7+1.3+1.3+1.7+0.5+1.7+1+1=15.9 из 4+1+3+4+1+2+2+2+1+2+1+1=24 возможных баллов, за баги -0.5-0.3-0.4-0.5-0.3=-2
Core 0.3+0.7+1+0=2 из 4 возможных баллов
⦁ Redesigned the startup window. It is now possible to choose a license type and apply a license key from the startup window.
Реструктурировано окно запуска. Теперь возможно выбрать тип лицензирования и применить ключ лицензии из окна старта.
Фактически, в предыдущих версиях SD окна старта как-бы и не существовало. Самый первый запуск продукта предварялся видео-роликом о возможностях SD, но, видимо из-за устаревания (писались видео для версии 3.4 и не обновлялись много лет) от них совсем отказались. Любой последующий запуск SD обычно начинался со списка подключений к базе. Так что, окно старта стоило афишировать как новинку, а не усовершенствование.
Исследуя далее это новшество можно запутаться в трёх окнах: триальный пользователь при первом запуске может выбрать тип лицензии в окне №1, но последующие запуски приложения с применённой лицензией начинаются окном №2 уже без возможности выбрать иной ключ. Причём в триальном варианте опция "View / Preferences / General / Show startup window" переключения появления окна старта не доступна для правки. Цветовая подборка шрифтов и фона на вышеуказанных окнах такова, что важная информация и функциональные элементы абсолютно не приметны. Такие критичные интерфейсные неудобства тестировщик обязан был проверить до выпуска. Окном старта №3 можно считать и список последних коннектов, которое странным образом меняет шрифт в режиме "View / Preferences / General / Session / Enable XE Client compatibility mode" и теряет читабельность, потому что никакое из первых двух окон в этом случае вообще не появляется. Пункт RNs только путает юзера, а не поясняет новшество. Текст и сопутствующие баги тянут лишь на 0.3 балла.
⦁ The last active window is now automatically restored at the next application launch.
Последнее активное окно теперь автоматически восстанавливается при следующем запуске приложения.
Следует напомнить, что список рабочих окон и опции по их управлению доступны на странице "General / Workspace" в установках приложения. Текущее новшество должно способствовать облегчению юзерской навигации. Чтобы проверить интерфейс, придётся знать группы окон: встроенные и внешние (например, Session Navigator и Repository Installer), модальные (например, Formatter Options), первослойные (например, Fast Copier, Code Assistant), утилитные (большинство встроены в основной интерфейс, но некоторые не привязаны к рабочей области), объектные (мастера объектов базы и сходные редакторы). Для каждой группы следует брать в тест не менее трёх окон, так как пара может дать искажённый результат (случайность или сортировка по алфавиту). Тесты необходимо проводить в двух вариациях: внутри группы и в пересечениях различных групп. Можно, конечно, ограничиться самыми популярными (Object Navigator, SQL Editor, Stored Program Editor, Object Wizard, DB Examiner, Oracle Documentation Browser), но это будет лишь единственный тест, почти смоук. Очень сильно на эти тесты влияют опции на странице "General / Workspace", при некоторых сочетаниях которых окна вообще не открываются, либо всегда активируются (как это случается с Code Assistant и Oracle Documentation Browser), хоть их и закрывали в предыдущем сеансе. Если при открытии какого-то окна случается ошибка, то оно станет рабочим вместо ожидаемого, либо подвесит работу всего приложения. Этот баг относится к Oracle Documentation Browser (все скрипты документации рушатся на загрузке). Сомнительность новшества оцениваю в 0.7 балла.
⦁ Added the ability to open Release Notes from the Help menu.
Добавлена возможность открывать пояснения к выпуску из главного меню подсказок.
В предыдущих версиях окно "What's New?" с текстом RNs открывалось лишь пользователям с лицензионным ключом, а единожды закрытое более не появлялось. Теперь и триальщик может прочитать текст обновления без открытия его на сайте. Хорошее дело получает балл.
⦁ Structure bounds are now used in all code editors throughout the application.
Структурные границы теперь используются во всех редакторах кода в разрезе приложения.
Что имеется ввиду под термином структурных границ? Скорее всего - Code Folding - это линии и скобки, кнопки разворачивания и сворачивания блоков кода. Но может и что иное имелось ввиду, например, раскраска и подсветка служебных слов. Такая неясная формулировка отбирает 0.2 балла. Список модулей, отображающих код, весьма огромен, можно на вскидку сказать, что это 80% всех окон. Но, возможно, тех.писательница недопечатала текст RNs и опустила термин "PL/SQL code", поэтому можно подозревать, что и всякий DDL, DML текст теперь структурирован. Код отображается в SD через интерфейсные компоненты: SynEdit, TextEdit, MemoEdit. В свою бытность тестировщиком ConquestSS мне приходилось упрашивать кого-то из программистов выбрать поиском по всем юнитам определённые интерфейсные компоненты для тщательной проверки всего продукта, как это опрометчиво сказано в тексте RNs. Но сегодня я могу лишь интуитивно наткнуться на модули, которые остались забыты программистом. Одним из вариантов является модуль View Differences, в обоих редакторах которого раскраска слов соответствует разнице левого и правого текстов, а скобок кода отродясь не было и нет. Так что новшество с подобным описанием никак не тянет на балл.
Call Trees 1 из 1 возможного
⦁ It is now possible to exclude Oracle system objects from Call Tree diagrams. The new option “Include system objects” was added to “Code Analyzer Options / Diagram Options / Call Tree.” Disabled by default.
Теперь можно исключить системные объекты базы из диаграммы дерева вызовов. Новая опция для добавления системных объектов добавлена на соответствующую страницу настроек. По-умолчанию выключена.
Новшество следует проверять по чит-листу для опций. В качестве заключительного теста функционала следует сгенерить диаграммы для кода, вызывающего объекты из схем SYS, SYSTEM (но в хелпе ошибочно перечислены схемы встроенных примеров HR и SCOTT, поэтому и в этот список могут войти объекты иных схем, поставляемых установщиком базы). Поскольку чаще всего эти объекты доступны через публичные синонимы, то их обычно используют без префикса схемы. То есть ваш код должен быть двух типов - с прямым указанием на системную схему и вызов объектов без владельца. Например:
--начало кода
sys.dbms_output.put_line('с указанием системного владельца');
--продолжение кода
dbms_output.put_line('без системного владельца');
--окончание кода
Примечание. Новая опция расположена в блоке "Call Tree Appearance", а результат генерации сильно зависит от опций в блоке "Grouping" на странице настроек диаграмм "Code Analyzer Options".
Не буду снимать баллы за недочёты хелпа, поскольку понятие системных объектов можно расширить до полной поставки базы. Дам новшеству балл.
SQL Editor 0.5+1+0=1.5 из 3 возможных
⦁ The executed statement is now shown in the hint of a title of the SQL Editor’s dataset.
Выполненное выражение теперь показывается в хинте заголовка грида данных.
После создания скрипта заголовок всего модуля расширялся началом текста выражения к исполнению. Заголовок модуля может быть растянут на всю ширину рабочей области приложения и поэтому получается более подробным, нежели новоявленный хинт закладки с выбранными данными. Более информативным считаю текстовый редактор, вызываемый с полным текстом, в том числе и с выставленными сортировкой и фильтрацией, по кнопке "Show query for the current dataset". При наличии же системы синхронизации между закладками данных и редакторов считаю введение хинта, при том слишком укороченного, бесполезным обновлением интерфейса. Поэтому даю лишь 0.5 балла.
⦁ If a statement execution raises an error, the Error tab heading is colored in red. The number of errors is also shown in the tab’s title.
Если исполнение выражения заканчивается ошибкой, то заголовок закладки ошибок окрашивается в красный. Количество ошибок также отображается в заголовке закладки.
Довольно полезное новшество, особенно на фоне столь запутанной работы "умного" режима закладок с результатами исполнений. Количество ошибок в одном скрипте тоже показывает фактическое значение. Было бы совсем замечательно, если бы "умный" режим стал более логичным и интуитивно-понятным, но пока новшество получает балл.
⦁ Increased the hint showing a SQL statement on the Data Output tab.
Увеличен хинт, показывающий выражение на закладке и данных.
Этот пункт RNs является дубликатом первого в группе модуля SQL Editor. Поэтому не получает балл и снижает процент готовности всего билда.
Code Insight 0.7+1+0.8-0.3=2.2 из 4 возможных
⦁ The Code Insight window is now resizable; it is possible to save/restore window size.
Окно подсказок кода теперь меняет размеры, есть возможность сохранять и восстанавливать размер.
Новшество весьма полезно, так как в последних версиях базы имена объектов стали почти безразмерно увеличиваться. Но это удобство не было протестировано на граничные значения. Если в предыдущий раз растянуть ширину или высоту окна, то при последующем вызове подсказки значимая часть может спрятаться за пределы рабочей области приложения и даже монитора. Не стоило разрешать увеличивать размеры до пределов текущего монитора или рабочей области SD. Вполне хватило бы в иных случаях скроллеров. Так что новинка получает только 0.7 балла.
⦁ Removed the colon “:” between a topic and a value.
Убран разделитель между заголовком и значением.
Мелкое интерфейсное изменение сделано, но не заслуживает такого внимания. Тем не менее, билд обогащается баллом.
⦁ Datatypes are now displayed right after the column name.
Типы данных теперь отображаются справа от заголовка колонки.
Не совсем понятная формулировка новшества. На самом деле имена параметров и переменных обогатились полезной информацией об их типе данных. Нововведение приносит 0.8 балла билду из-за путанного описания изменений.
⦁ Datatypes of parameters and variables are now displayed in the Stored Program Editor.
Типы параметров и переменных теперь отображаются в Редакторе Хранимых Программ.
На самом деле этот пункт RNs является дубликатом предыдущего. К тому же информация об ограничении одним модулем является ложью, так как типы параметров и переменных теперь доступны в подсказчике кода, появляющемся также и в Мастере Триггера. Поэтому вместо лишнего балла за пункт сниму -0.3 балла.
Bulk Confirmation 0.7 из 1 возможного
⦁ Optimized execution of group actions:
* Renamed to “Bulk Confirmation.”
* Removed the second confirmation window for non-critical operations.
* The preview window is no longer shown for such operations as Open, Browse, Open in Stored Program Editor, Describe, Analyzer Data Dependency.
Оптимизировано исполнение групповых действий:
-переименовано окно в групповое подтверждение
- убрано окно повторного подтверждения для некритичных операций
- окно предварительного просмотра больше не показывается для таких операций, как Открыть, Просмотреть, Открыть в SPE, Описание, Анализ Зависимых Данных.
К сожалению, в статьях хелпа для Навигатора Объектов не сказано ни слова о переименовании. Поэтому поясню, что групповые операции доступны лишь из дерева Навигатора Объектов. Поскольку первоначально все экшены проходили одинаковый путь до конкретного исполнения, то со временем пользователей стали раздражать излишние предупреждения перед простыми действиями, никак не влияющими на базу. Второй и третий подпункты в RNs следовало объединить. А список некритичных действий стоило уточнить. Разработчики этого новшества не учли тот факт, что открытие хранимых подпрограмм в редакторе или мастере объекта может предваряться их перекомпиляцией, которая причисляется к критичным действиям. Также неосмотрительно убрано подтверждение смены активности объектов. Напомню о съедании памяти при открытии множества окон, хорошо что хоть этот процесс можно остановить. Но всё-равно, малопродуманное новшество получает лишь 0.7 балла.
Database Connection Window 0.6+0.7=1.3 из 2 возможных, -0.5 за баг
⦁ Added the ability to select all/none connections in the Last Connections list.
Добавлена возможность выбирать все или снимать выбор со всех коннектов в списке последних подключений.
В предыдущей версии SD выбранные коннекты можно было лишь удалить группой. В текущей версии добавилась только возможность экспорта, поэтому такое новшество является полезным. Но на фоне того, что пункт меню для удаления из списка переименован из "Delete Selection" в просто "Delete", выделение всех записей становится опасным. а для массовой смены прочих настроек (автоконнект, тип подключения, Oracle Home, Connect As) групповое выделение бесполезно. Поэтому пункт RNs получает лишь 0.6 балла.
⦁ Added the ability to export and import database connections to and from XML.
Добавлена возможность экспорта и импорта списка коннектов к базе в/из XML.
То ли для этого новшества, то ли до программистов дошло моё возмущение о сильном простом шифровании паролей к базе, запоминаемых в настройках SD, но в пятой версии SD кардинально сменилось шифрование сохраняемых паролей к базе. При чём без совместимости с предыдущими версиями продукта. Важно! Если вы храните пароли коннектов и намереваетесь работать одновременно в SD#5 и SD#4, то перед первым запуском SD#5 выполните сохранение настроек приложения Preferences в SD#4 по кнопке Save в файл или экспортните ветку приложения из реестра операционной системы. Иначе вы утеряете возможность автоматического подключения в SD#4 без набивания заново паролей. Подобное предупреждение должно было быть в RNs, но ConquestSS не заботится о своих пользователях. Для полной проверки функционала экспорта и импорта необходимо наличие различных операционных систем и баз данных, позволяющих все виды подключений. Поскольку не имею всего перечисленного, то поверю на слово разработчикам и признаю фикс готовым. Но переименованный пункт контекстного меню и потеря паролей для предыдущих версий не позволяют дать полноценный балл. А за отсутствие предупреждения о потере паролей сниму -0.5 балла.
Object Navigator Filter 0.8+0.5=1.3 из 2 возможных баллов, -0.3 за баг
⦁ Added all 59 object types to the filter.
Добавлены все 59 типов объектов для фильтрации.
Правильнее было бы написать, что все 65 папок и значимых подпапок дерева Объектного Навигатора теперь доступны для фильтрации. Проверки показали, что установка фильтра на папку коллекций всё ещё дублирует фильтр и на прочие объектные типы. А после попытки обнулить все фильтры и выставить изменённый так и случается необработанное исключение "You cannot access field data beyond Eof". Хорошо, что хоть прочие подпапки (расписания, правила) фильтруются без подобных проблем. С учётом недоработки новшество получает 0.8 балла, а всё ещё не исправленный баг отнимает -0.3 балла.
⦁ Fixed the layout of the Filter Builder.
Исправлен внешний вид построителя фильтров.
Интерфейс окна для выбора и установки фильтра изменился лишь по высоте, поскольку список папок увеличился. Но это микроскопическое изменение никак не тянет на полноценное новшество, а лишь растягивает текст RNs до мнимого объёма, соответствующего новой версии продукта. Поэтому даю лишь 0.5 балла.
Database Examiner 1+0.7=1.7 из 2 возможных, -0.4 за баг
⦁ Filters at “Database Examiner / Sessions” and Session Navigator are synchronized now.
Фильтры сессий в DB Examiner и Навигаторе сессий теперь синхронизированы.
Два самостоятельных модуля администратора базы отображают почти идентичную информацию, но с разным уровнем управления ею. Вполне логично, что списки сессий в обоих модулях теперь можно одинаково фильтровать. Но списки ограничиваются лишь встроенными фильтрами, то есть ваши вручную созданные фильтры не копируются из модуля в модуль. Тестирование выявило неописанный функционал: применённые фильтры не перекрываются в разных модулях, то есть в обоих списках вы можете активировать разные фильтры, и они восстановятся при следующем открытии окна. Даю полноценный балл.
⦁ Renamed “Open Session Navigator” to “Find in Session Navigator.”
Переименовано открытие навигатора сессий в поиск по навигатору сессий.
К сожалению, тех.писательница забыла упомянуть, что это переименование касается кнопки на тулбаре и пункта контекстного меню только на странице сессий утилиты DB Examiner. Но функционал не оправдывает нового наименования, потому что при отсутствии искомой сессии в навигаторе сессий нет предупреждения о том, что позиционирована первая попавшаяся сессия. Для примера можете выставить разные фильтры в обоих модулях (активные и неактивные сессии) и попробуйте выполнить поиск. Ещё одним сомнительным удобством считаю открытие каждый раз нового окна Session Navigator для поиска сессии. В рамках комплексного тестирования выявилась значительная разница в списке полей, доступных в обоих модулях. Причём в навигаторе сессий пропущенные поля не отображаются и в дополнительных закладках снизу. Да и названия всех колонок в DB Examiner более подробны, нежели в прямом по функционалу Session Navigator. С учётом недоработок новшество получает 0.7 балла, а выявленная проблема с полями отнимает у билда -0.4 балла.
Database Monitor 0.5 из 1 возможного, -0.5 за баг
⦁ Added a new graph “Blocked and Blocking Sessions” to the Activity group.
Добавлен новый график заблокированных и блокирующих сессий в группу активностей.
Стоит заметить, что добавлен не один, а два графика про блокеры в эту группу. Второй график показывает время ожидания для записей и состоит из шести параметров. Общая проверка интерфейса заключается в оценке подписей графика, осей и легенды на доступность к прочтению и пониманию. К слову сказать, график ожиданий имеет слишком длинные подписи, поэтому полноценного его просматривать можно лишь в полноэкранном режиме. То есть юзер вынужден испытывать неудобства. Для тестирования работоспособности обоих графиков потребуется три сессии: блокирующая, блокируемая и отслеживающая. Для блокировки записей существует команда "LOCK TABLE" и незавершённые транзакции команд "INSERT", "UPDATE", "DELETE", "MERGE" и "SELECT ... FOR UPDATE". В первой сессии выполните одну из перечисленных команд, во второй - обратитесь к этим же данным, в третьей откройте монитор базы и наблюдайте за графиками. В полноценную проверку функционала следует включить и отправку нотификаций при достижении критических значений, а тесты интерфейса расширить до перебора параметров из настроек конкретного графика. Обе кнопки имеются в правом верхнем углу панелей каждого из графиков. Следующий шаг тестирования - анализ накопленной информации - просмотр истории наблюдений. Но тут появился критичный баг невозможности загрузки данных. Из всего вышеперечисленного могу дать за новшество 0.5 балла и отнять -0.5 балла за внесённый баг.
Online Support Desk (OSD) 0.7+1=1.7 из 2 возможных
⦁ The OSD window and the New Message window are now displayed on the main window taskbar.
Главное окно модуля и окно редактирования сообщения теперь отображаются на таскбаре приложения.
Тех.писательница сделала грубую опечатку, назвав рабочую область приложения его панелью задач. На самом деле бывшая внешняя библиотека "OSD.DLL" вошла в разряд корня программы "Core", её уже нет в списке файлов рабочей папки. А окна модуля располагаются внутри рабочей области. Но это не улучшило его работоспособность, а наоборот усугубило доступ юзера к функциональным объектам. Минимальная высота окна для редактирования сообщения OSD настолько велика, что прикрепления и кнопки управления сообщением чаще оказываются вне пределов рабочей области. Для их активации юзер вынужден постоянно скроллировать экран. Из-за внесённых неудобств и опечатки новшество получает лишь 0.7 балла.
⦁ Added ".docx" to the extensions list of OSD attachments.
Расширение файлов последних версий MS Word добавлено в список для прикреплений OSD сообщений.
Для проверки новшества создаём новое сообщение или открываем существующее из числа черновиков и в блоке "User attached files" кликаем по соответствующей кнопке для открытия диалога выбора файлов. В раскрывающемся списке фильтров по расширению файлов находим вариант документов. Поскольку диалог является интерфейсным объектом операционной системы, то его внешний вид и работоспособность проверять нет необходимости. Также нет необходимости перепроверять возможность отправки и получения файлов с расширением ".docx", поскольку давно уже разрешено сервером ConquestSS получение любых прикреплений. Даже, могу сказать по секрету, снято ограничение на размер в 4Мб. Единственное замечание - странным мне кажется отнесение расширения "txt" к числу скриптов, а не документов, и в числе документов не хватает расширения "rtf", которое тоже является весьма популярным среди Windows юзеров. Но не смотря на эти замечания дам благодушно целый балл.
Extract DDL 1 из 1 возможного
⦁ Renamed the option “Storage Clause” to “Physical Attributes Clause.”
Переименована опция параметров хранения в физические атрибуты.
Для проверки изменения понадобятся странички опций в нескольких местах: "Preferences / General / Extract DDL / Buit-in Engine", "Compare DBs-Schemas-Objects / Object Type Comparison Options / Table, Index, Cluster, Constraint, Materialized View", "Fast Copier / DDL Options / Buit-in Engine", "Schema Extractor / DDL Options / Buit-in Engine", главное меню "Object / Extract DDL / Buit-in Engine" при включенной опции "Preferences / General / Extract DDL / Common Options / Show preferences before extract". В мастерах объектов эти данные настраиваются по кнопке "Segment", а в документации Oracle это выражение осталось наименовано по-прежнему. Но подозреваю, что разработчики добавили в это понятие некоторые другие параметры объектов, характеризующие их физическое положение и состояние. К сожалению, тех.писательница не удосужилась пояснить причины такого переименования, но, так и быть, дам за изменение полный балл.
Relocate/Move Objects 1 из 1 возможного, -0.3 за баг
⦁ Renamed “Modify segment attributes” to “Include segment attributes.”
Переименована модификация атрибутов сегмента во включение их при перемещении.
Перемещение объектов в рамках SD доступно в нескольких контекстных меню: объекты как ноды в дереве Object Navigator, объекты как строки в таблицах "Storage Manager / Objects" и "Storage Manager / Objects Summary / Type Details". Для совершения операции существует модальное окно, заголовок которого состоит из имени подключения, полного типа и имени перемещаемого объекта, и только где-то в конце едва вмещающееся название операции. Поскольку окно модуля модальное, то его кнопки на таскбаре приложения не появляется, а значит нет возможности убедиться, что операция будет произведена с истинно желаемым объектом: ни хинта с полным наименованием, ни дополнительных полей в окне с полным именем объекта, которое обрезается в заголовке окна из-за длинного имени подключенной сессии. Поскольку окно модальное, то и изменить его ширину нет возможности. Это серьёзные интерфейсные проблемы, за которые стоит снять -0.3 балла. Более полезным было бы не незначительное переименование одного чек-бокса, а приведение всего окна в надлежащий вид, полноценно доступный юзеру. Но хоть и мелкое изменение, а вынуждает меня дать за него балл. Такого рода приписки к RNs позволяют судить о билде, как о "продукте мартышкиного труда" - лишь бы была видимость трудозанятости.
BUGS FIXED 0+0+2+0+0.3+0+0+0.7+1+0.8+0=4.8 из 3+1+3+5+2+1+1+1+1+1+1=20 возможных баллов, -1-2-0.3=-3.3 за баги
SQL Editor 0+0+0=0 из 3 возможных, -1 за баг
⦁ An access violation error no longer occurs on trying to execute an invalid SQL statement.
Ошибка доступа больше не случается при попытке выполнить инвалидное выражение.
В предыдущей версии у меня никак не получилось воспроизвести описанный баг, поэтому у тех.писательницы "красные уши" из-за недостоверного или неполноценного текста RNs. Напротив, в текущем билде окно процесса от исполнения любого выражения остаётся на переднем плане даже по окончании выполнения скрипта, а закрытие SQL Editor приводит к необработанной ошибке. Балла за пустую правку дать не могу, и сниму балл за новый мега-критичный баг, из-за которого теряются все правки в редакторе.
⦁ Executing the SELECT statement that retrieves a column of the TIMESTAMP WITH TIME ZONE data type no longer raises the error “ORA-01805: possible error in date/time operation” when timezone files on the client and server do not match (regions are not synchronized).
Выполнение выборки данных из колонки с зоной времени больше не вызывает ошибку о возможной ошибке в операторе даты/времени, если файлы зон времени или регионы не синхронизированы на клиенте и сервере.
К сожалению, никакие манипуляции с перенастройкой формата и перевыбором зон времени на клиенте (OS, Preferences / General, DB Examiner / NLS Parameters) не способствовали воспроизведению описанной ошибки. Поэтому фикс считаю припиской и не даю за него ни балла.
⦁ The error “List index out of bounds” is no longer raised on clicking “Save As.”
Ошибка выхода индекса за рамки больше не случается при клике на сохранение с новым именем.
В прошлом билде ничего подобного не случается, диалог для сохранения скрипта в файл под новым именем отрабатывал благополучно. Это значит, что тех.писательница не учла каких-то специфических условий, либо никакого фикса не производилось. За пустоту баллы не даются.
Object Navigator 0 из 1 возможного
⦁ An access violation error no longer occurs on trying to select a different node in the tree after saving an object in the default scene.
Ошибка доступа больше не случается при попытке выбрать иную ноду в дереве после сохранения объекта в декорации по-умолчанию.
Декорацию по-умолчанию в навигаторе объектов нет необходимости сохранять, так как это делается автоматически. Из чего заключаю, что баг описан неточно. Да и невозможно воспроизвести его в предыдущей версии. Потому фикс не получает ни балла.
Extract DDL 1+0+1=2 из 3 возможных
⦁ DDL extracted for an external table no longer has an unnecessary RESULT_CACHE attribute.
В выгружаемом коде на создание внешней таблицы больше нет лишнего атрибута о результате кэша.
Очень давний баг наконец-то исправлен. Для проверки фикса создайте в мастере таблиц соответствующий объект и получите его DDL. По имеющемуся тексту в прошлом билде будет ошибочное создание объекта, а в текущем - благополучное. Фикс повышает готовность билда на балл.
⦁ Fixed the LOGGING attribute in DDL extracted for a partitioned table with no explicitly defined LOGGING.
Исправлен атрибут логгирования в выгружаемом скрипте на создание таблицы с разделителями и не явно объявленном логгировании.
Из-за недостаточности знаний базы данных Oracle тех.пиательницей текст фикса звучит весьма странно. Абсолютно не понятно о каком таком не явном объявлении логгирования говорится. Но даже выгрузив скрипты на создание таблиц с разделителями мне не удалось выявить хоть какую-то разницу между билдами. Поэтому пункт RNs не получает ни балла.
⦁ The error “ORA-01031: insufficient privileges” no longer occurs on trying to extract Scheduler Destination object DDL from a database 12.2.
Ошибка недостаточности прав больше не случается при попытке выгрузить структуру объекта о предназначении расписания из базы версии 12.2.
Стоит пояснить, что предназначения расписаний могут быть схемными и системными объектами. О каком уровне объекта идёт речь - из текста бага не понятно, поэтому проверять необходимо объект в своей схеме, в чужой схеме и системный. Поскольку в моём распоряжении отсутствует база указанной версии, то доверюсь программисту и дам авансом балл.
Export and Import Wizard 0+0+0+0+0=0 из 5 возможных, -1-1=-2 за баги
⦁ Fixed the minimum size of the wizard to make sure all UI elements fit in correctly.
Зафиксирован минимальный размер мастера так, чтобы все интерфейсные элементы вмещались корректно.
Во-первых, уточню заголовок группы - речь идёт о мастерах экспорта и импорта данных из таблиц, вьюверов. Во-вторых, термин "correctly" будем считать применимым лишь к размеру шрифта в приложении по-умолчанию. Для проверки исправления откроем оба мастера не из SmartDataset, чтобы первым шагом была страница выбора объектов. Придадим окнам минимальные размеры и пройдёмся по всем шагам для всех типов выгрузки и загрузки данных, внимательно приглядываясь к расположениям и размерам элементов. А для освоения комплексного тестирования предлагаю предварительно ознакомиться с последующими пунктами RNs по этому же модулю и проверять их параллельно. Тем самым вы сэкономите собственное время и научитесь широкой внимательности. Стоит ещё напомнить, что в группе разработки ConquestSS было принято правило расположения интерфейсных элементов таким образом, чтобы между соседними было пространство, кратное двум пикселям. Поскольку мы проверяем только интерфейс, то на последнем шаге нет никакой необходимости кликать кнопку старта импорта/экспорта, то есть данные базы не должны пострадать от наших действий. По результатам своих тестов могу отчитаться:
1) элементы группы Table Options на 6 шаге экспорта INSERT и MERGE слиплись;
2) комбобокс для выбора разделителя текста наезжает на свою подпись на 6 шаге экспорта по типам Delimited и Fixed Field Spacing;
3) окно с примером формата даты и времени на шестом шаге экспорта всех типов прилепилось к правой границе блока;
4) на втором шаге импорта из Excel, XML, Delimited выявлены три проблемы: в группе опций парсера обрезана подпись комбобокса, в группе форматов числовых значений обрезан редактор символа валют, в блоке логических величин подпись второго комбобокса прилипла к первому комбобоксу;
5) на втором шаге импорта из Access в блоке My Access Data правая таблица колонок имеет не стандартную окраску (заголовки столбцов белые с черным шрифтом на голубоватой подложке, а данные в текущей строке излишне подсвечиваются бледно-голубой подложкой);
6) хоть у меня и была оговорка, что на последнем шаге не нужно запускать процесс, но для тестирования импорта лучше иметь свежие файлы, поэтому не поленитесь и экспортните файлы всех типов. Это позволит вам отловить проблему семафора в режиме внутреннего экспорта и последующей попытки импорта из этого файла. А dat-файлы, сформированные в прошлых версиях SD, не подойдут для импорта по несовпадению их внутренних версий.
Такой отчёт позволяет мне ни давать балл за исправление. Да ещё и снять балл за UI и функциональные проблемы.
⦁ The column list is no longer empty on trying to export tables to MS Access.
Список колонок теперь никогда не пустой при экспорте таблиц в Access-формат.
Для тестирования открываем мастер экспорта данных, выбираем тип Access для первой попавшейся таблицы с хоть какими-то данными, доходим до шага со списком полей. В прошлом билде список и без того не пустой, а это значит, что данный пункт RNs - пустышка, за которую не могу дать ни балла. А если бы тех.писательница постаралась и добавила существенных подробностей, то можно было бы рассчитывать на более высокую оценку билда.
⦁ The error “Incorrect date format character ‘.’” no longer occurs on trying to import data from Excel.
Ошибка неверного формата даты больше не случается при попытке импорта данных из Excel-формата.
В предыдущем билде не наблюдалась проблема с форматом дат при импорте из Excel. Поэтому пункт RNs не получает ни балла.
В рамках комплексного тестирования выяснилось, что мастер экспорта в Excel не формирует файл в той папке, что выбрана в мастере, а лишь во временной и с иным наименованием. За что билд теряет балл.
⦁ Removed the “Invalid date format” option from the last step of the Import Wizard.
Убрана опция неверного формата дат с последнего шага мастера импорта.
Последний шаг импорта данных состоит из двух списков связанных объектов, требующих переключения их активности на время импорта. Для опции о неверном формате дат на этом шаге никогда не было места. Форматы даты, времени и прочие разделители давно выставляются на следующем шаге сразу после выбора типа экспорта. Но ни там, ни где бы то ни было ещё опции с подобным наименованием никогда и не было. Если бы речь шла об опции о пропуске данных, не импортируемых по ошибке базы, то она необходима и оставлена на прежнем месте. Так что, пункт RNs никак не может пополнить копилку баллов билда.
⦁ Removed the “Date Format” group of settings from the second step of the Import Wizard.
Убрана группа настроек формата дат со второго шага мастера импорта.
На самом деле группы настроек форматов дат и времени, а также разделителей для некоторых типов импорта не убраны, а лишь закрыты на редактирование. Такое изменение для меня весьма обескураживающе, так как импорт из Excel часто сталкивается с разницей форматов дат. Текст RNs не соответствует действительности и полезности, а значит не приносит билду ни балла.
Fast Copier 0.3+0=0.3 из 2 возможных
⦁ Extract DDL options are now correctly saved and restored when opened from the Fast Copier.
Опции выгрузки DDL теперь корректно сохраняются и восстанавливаются при открытии из быстрого копировщика объектов.
Если речь идёт о корректности сохранения и восстановления опций, то оно должно быть одинаковым при переоткрытии модуля и приложения. Но тесты показали, что восстановление опций всегда равно их самостоятельному состоянию по-умолчанию после переоткрытия модуля или приложения. После перезапуска SD настройки должны принимать значения из Preferences, но этого не происходит. Переоткрытие модуля в одной и той же сессии приложения должно восстанавливать либо ранее выставленные, либо значения из Preferences. Но ни того, ни другого не происходит. Единственное положение, сохраняющее настройки, проявляется лишь при переоткрытии модального окна настроек без перезапуска модуля Fast Copier. Такое поведение нельзя считать корректным, поэтому фикс получает лишь 0.3 балла.
⦁ Modifying extract DDL options from the Fast Copier no longer affects global settings.
Изменение опций выгрузки DDL в быстром копировщике больше не меняет глобальные установки.
Полагаю, что тех.писательница опечаталась предлогом from вместо by или in. Но это мелочь, за которую не снижу балл билда. Поясню только, что глобальными считаются установки из разряда Preferences. В предыдущем билде настройки выгрузки DDL в Preferences и Fast Copier существовали каждые сами по-себе, вне зависимости друг от друга. Точно также они остались и в текущем билде. Поэтому пункт RNs считаю пустышкой и не даю ни балла.
ContentSelector 0 из 1 возможного
⦁ TYPE objects are now opened in the Stored Program Editor.
Объектные типы теперь открываются в редакторе хранимых программ.
Объектные типы делятся на два вида: подразумевающие наличие атрибутов, методов и тел и простые коллекции. Объектные типы первого типа как и прежде открываются в редакторе хранимых программ. Коллекции тоже, как один из вариантов объектных типов, открываются в своём мастере объектов, как и в прежнем билде, вне зависимости откуда её пытаются открыть - из дерева или содержимого Объектного Навигатора. За такую фиктивную работу группы разработки SD билд недополучает балл.
Compare Databases 0 из 1 возможного
⦁ Fixed the comparison results of two IOT Tables with the enabled “Table / Index” and disabled “Constraints / Include” options.
Исправлены результаты сравнения двух IOT-таблиц с включенными индексами и выключенными констрейнтами.
В документации базы Oracle найдите пример индексно-организованной таблицы и создайте её примеры для тестов. Далее, сравниваем индексно-организованные таблицы в Compare Objects с включенными в сравнение табличными индексами и исключёнными констрейнтами из сравнения. Следующий шаг тестирования - найти отличия в скриптах миграции или синхронизации, получаемых тестируемым модулем, из двух версий продукта. К сожалению, никаких изменений в скриптах не выявлено. Это значит, либо описание бага убогое, либо никакой правки со стороны программиста не было. В таком случае фикс не добавляет билду балл.
Data Dependency Analyzer 0.7 из 1 возможного
⦁ Enabling the “Show all master data” now correctly refreshes the list of detail datasets.
Включение показа всех верхних данных теперь корректно обновляет список детальных данных.
Для тестирования нам понадобятся таблицы с данными, связанные между собой через Foreign Key. Поскольку данные не будем изменять, то можете воспользоваться любыми таблицами или вьюверами (например, из схем примеров HR, SCOTT или иных). Нужный нам переключатель состоит из двух кнопок на тулбаре рабочего окна: одна включает режим показа всех данных мастер-таблицы, а вторая - только связанных данных мастер-таблицы. Но фактически их работа сводится к фильтрации мастер-таблицы по текущей записи. То есть в режиме линкованных в гриде мастер-таблицы остаётся лишь одна текущая строка, а по её связи остаются данные в гриде деталей (нижний грид) и списке связанных объектов (дерево слева). На мой взгляд пользователя базы данных Oracle в режиме только связанных данных верхний грид мастер-таблицы должен отфильтровать все данные, а не только одну текущую запись, имеющие ссылки в выбранной через дерево таблице деталей. При переключении же режима в показ всех записей мастер-таблицы в верхнем гриде должен (и снимается) всякий фильтр, текущей становится первая строка, а в гриде деталей показываются реально-зависимые данные. Единственным заметным изменением является не сбиваемый на первый в списке выбор зависимого объекта в дереве. Но если бы переход в режим только связанных деталей работал по более логичному пути, описанному мной выше, то и не пришлось бы делать это излишнее исправление. За подобный "костыль" могу дать лишь 0.7 балла.
Bulk Confirmation 1 из 1 возможного
⦁ Object type names are now shown in the "Bulk Confirmation" window on executing object type methods.
Имена объектных типов теперь отображаются в окне на подтверждение совместных действий при исполнении методов объектных типов.
Такое исправление функционала более подходит к разряду новшеств, а не багов. Оно было предложено мной в одном из предыдущих отчётов, когда аналогичное моё новшество было сделано для пакетных подпрограмм. Напомню, что групповое исполнение доступно из Навигатора Объектов. Для проверки развернём в дереве навигатора объектов такой объектный тип, у которого есть несколько методов, например, "SYS.DBURITYPE". Разворачиваем в дереве его подпапку "Methods" и отмечаем через Ctrl+Click несколько методов. В контекстном меню выбираем пункт Execute (это безопасно, поскольку нам для теста не надо выполнять методы, а серьёзные операции в SD запускаются после подтверждения). Откроется диалог "Bulk Confirmation", в столбце "Object Name" которого сможем лицезреть исправление. Но более полным этот фикс стал бы после добавления в этот список параметров подпрограмм для более чёткого представления функций переполнения. Так, например, во взятом наугад нами объектном типе "SYS.DBURITYPE" существует очень много методов GETCLOB и GETBLOB с различным набором переменных. Даю балл за исправление.
Datasets/Datagrids 0.8 из 1 возможного, -0.3 за баг
⦁ Autofit no longer breaks after export.
Автоподгонка больше не сбивается после экспорта.
В гридах данных существует несколько вариантов автоподгонки ширины полей: по заголовку или данным. Экспорт данных производится через специальный мастер выгрузки данных. Но по окончании экспорта с разделителями (простейший тип) и даже после закрытия мастера экспорта и переноса активного курсора обратно в грид в прошлой версии SD не подмечено никаких изменений в ширине полей также, как и в текущем билде. Единственный тип экспорта, который сбивал автоподгонку ширины полей в прошлой версии, случайно обнаружен - это Excel. Но в нём самом обнаружена сопутствующая проблема: лог экспорта сообщает о меньшем количестве экспортированных строк, вероятно дважды отнимается первая строка с заголовками. Поскольку описание бага не было конкретизировано типом экспорта, то пункт RNs получает лишь 0.8 балла. Странно, что тестировщик при приёмке фикса не выявил проблему подсчёта строк. За это отниму -0.3 балла.
Session Navigator 0 из 1 возможного
⦁ Fixed data sorting in the “Waits” grid.
Зафиксирована сортировка данных на закладке ожиданий.
Двоякое понятие "фиксирования" придётся проверять в двух направлениях: либо в прошлом были проблемы интерфейсного характера и теперь значки и данные не сбиваются со своих позиций, либо функционирование сортировки противоречило общепринятым стандартам и внутренним продуктовым правилам. К сожалению, в предыдущей версии SD мне не удалось выявить никаких проблем с сортировкой, поэтому данный пункт RNs можно считать припиской, и он не получает ни балла.
Итого по билду SQLDetective 5.0.1.124: 1.3+15.9+4.8=22 балла из 2+24+20=46 возможных дают 22/46=48% готовности билда и баги отнимают -2-3.3=-5.3 баллов.
NEW FEATURES 0.5+0.8=1.3 из 2 возможных баллов
⦁ NEW: Technical Debt. A new code metric to calculated an assumed cost of fixing structural imperfections in code.
Новинка: Технический долг. Новая метрика кода для расчёта стоимости исправлений структурно-несовершенного кода.
Полгода назад (12 ноября 2018 года) был выпущен ClearSQL 8.0.1.121, впервые просчитывающий показатель технического долга PL/SQL кода. Формула и параметры расчёта описаны во встроенной справке для страницы "Tools / Code Audit / Code Analyzer Options / Code Metrics Options / Technical Debt", но, как видите сами, тех.писательница поленилась упомянуть это в RNs. В справке сразу бросаются в глаза двойные символы процента. Нигде не сказано, на какие исследования ссылается вывод об избранной формуле для расчёта технического долга. Также нет возможности корректировать формулу, даже изменяемые в опциях параметры не отображают своего фактического значения в формуле, что даёт повод подозревать применимость лишь дефолтных значений. В противовес, все иные метрики, изменяемые на странице выше "Tools / Code Audit / Code Analyzer Options / Code Metrics Options", моментально отображаются во встроенной справке и имеют ссылки на официальные документы и исследования. Выявленные недоработки позволяют мне дать лишь 0.5 балла за новшество.
⦁ NEW: Monthly subscription. SQLDetective is now available as a monthly subscription.
Новинка: Месячная подписка. SD теперь доступен по месячной подписке.
В исходном варианте смысл новшества понятен лишь самому производителю. А для пользователя следовало дать пояснения, что теперь триальный период ограничивается лишь пятью днями, лицензию же можно приобрести в двух вариациях - как и прежде полноценно постоянную, либо помесячную с некоторыми ограничениями. Хотя хелп и повествует, что месячная (кстати, очень дешёвая) лицензия полноценна по функционалу, но не могу (нет в наличие соответствующего ключа лицензии) утверждать, что в противовес ClearSQL в SD позволено анализировать безмерное число строк кода. Так что, с большой вероятностью заверяю пользователя, что в хелпе новый формат лицензирования описан лишь с рекламной точки зрения, а не с технической. Поэтому даю лишь 0.8 балла.
IMPROVEMENTS 2+1+1.5+2.2+0.7+1.3+1.3+1.7+0.5+1.7+1+1=15.9 из 4+1+3+4+1+2+2+2+1+2+1+1=24 возможных баллов, за баги -0.5-0.3-0.4-0.5-0.3=-2
Core 0.3+0.7+1+0=2 из 4 возможных баллов
⦁ Redesigned the startup window. It is now possible to choose a license type and apply a license key from the startup window.
Реструктурировано окно запуска. Теперь возможно выбрать тип лицензирования и применить ключ лицензии из окна старта.
Фактически, в предыдущих версиях SD окна старта как-бы и не существовало. Самый первый запуск продукта предварялся видео-роликом о возможностях SD, но, видимо из-за устаревания (писались видео для версии 3.4 и не обновлялись много лет) от них совсем отказались. Любой последующий запуск SD обычно начинался со списка подключений к базе. Так что, окно старта стоило афишировать как новинку, а не усовершенствование.
![]() |
Одно окно с выбором лицензии является лишь однажды,
другое не имеет приметного функционала,
третье вообще изобилует UI траблами и никак не замещает старт-панель
|
⦁ The last active window is now automatically restored at the next application launch.
Последнее активное окно теперь автоматически восстанавливается при следующем запуске приложения.
Следует напомнить, что список рабочих окон и опции по их управлению доступны на странице "General / Workspace" в установках приложения. Текущее новшество должно способствовать облегчению юзерской навигации. Чтобы проверить интерфейс, придётся знать группы окон: встроенные и внешние (например, Session Navigator и Repository Installer), модальные (например, Formatter Options), первослойные (например, Fast Copier, Code Assistant), утилитные (большинство встроены в основной интерфейс, но некоторые не привязаны к рабочей области), объектные (мастера объектов базы и сходные редакторы). Для каждой группы следует брать в тест не менее трёх окон, так как пара может дать искажённый результат (случайность или сортировка по алфавиту). Тесты необходимо проводить в двух вариациях: внутри группы и в пересечениях различных групп. Можно, конечно, ограничиться самыми популярными (Object Navigator, SQL Editor, Stored Program Editor, Object Wizard, DB Examiner, Oracle Documentation Browser), но это будет лишь единственный тест, почти смоук. Очень сильно на эти тесты влияют опции на странице "General / Workspace", при некоторых сочетаниях которых окна вообще не открываются, либо всегда активируются (как это случается с Code Assistant и Oracle Documentation Browser), хоть их и закрывали в предыдущем сеансе. Если при открытии какого-то окна случается ошибка, то оно станет рабочим вместо ожидаемого, либо подвесит работу всего приложения. Этот баг относится к Oracle Documentation Browser (все скрипты документации рушатся на загрузке). Сомнительность новшества оцениваю в 0.7 балла.
⦁ Added the ability to open Release Notes from the Help menu.
Добавлена возможность открывать пояснения к выпуску из главного меню подсказок.
В предыдущих версиях окно "What's New?" с текстом RNs открывалось лишь пользователям с лицензионным ключом, а единожды закрытое более не появлялось. Теперь и триальщик может прочитать текст обновления без открытия его на сайте. Хорошее дело получает балл.
⦁ Structure bounds are now used in all code editors throughout the application.
Структурные границы теперь используются во всех редакторах кода в разрезе приложения.
Что имеется ввиду под термином структурных границ? Скорее всего - Code Folding - это линии и скобки, кнопки разворачивания и сворачивания блоков кода. Но может и что иное имелось ввиду, например, раскраска и подсветка служебных слов. Такая неясная формулировка отбирает 0.2 балла. Список модулей, отображающих код, весьма огромен, можно на вскидку сказать, что это 80% всех окон. Но, возможно, тех.писательница недопечатала текст RNs и опустила термин "PL/SQL code", поэтому можно подозревать, что и всякий DDL, DML текст теперь структурирован. Код отображается в SD через интерфейсные компоненты: SynEdit, TextEdit, MemoEdit. В свою бытность тестировщиком ConquestSS мне приходилось упрашивать кого-то из программистов выбрать поиском по всем юнитам определённые интерфейсные компоненты для тщательной проверки всего продукта, как это опрометчиво сказано в тексте RNs. Но сегодня я могу лишь интуитивно наткнуться на модули, которые остались забыты программистом. Одним из вариантов является модуль View Differences, в обоих редакторах которого раскраска слов соответствует разнице левого и правого текстов, а скобок кода отродясь не было и нет. Так что новшество с подобным описанием никак не тянет на балл.
Call Trees 1 из 1 возможного
⦁ It is now possible to exclude Oracle system objects from Call Tree diagrams. The new option “Include system objects” was added to “Code Analyzer Options / Diagram Options / Call Tree.” Disabled by default.
Теперь можно исключить системные объекты базы из диаграммы дерева вызовов. Новая опция для добавления системных объектов добавлена на соответствующую страницу настроек. По-умолчанию выключена.
Новшество следует проверять по чит-листу для опций. В качестве заключительного теста функционала следует сгенерить диаграммы для кода, вызывающего объекты из схем SYS, SYSTEM (но в хелпе ошибочно перечислены схемы встроенных примеров HR и SCOTT, поэтому и в этот список могут войти объекты иных схем, поставляемых установщиком базы). Поскольку чаще всего эти объекты доступны через публичные синонимы, то их обычно используют без префикса схемы. То есть ваш код должен быть двух типов - с прямым указанием на системную схему и вызов объектов без владельца. Например:
--начало кода
sys.dbms_output.put_line('с указанием системного владельца');
--продолжение кода
dbms_output.put_line('без системного владельца');
--окончание кода
Примечание. Новая опция расположена в блоке "Call Tree Appearance", а результат генерации сильно зависит от опций в блоке "Grouping" на странице настроек диаграмм "Code Analyzer Options".
Не буду снимать баллы за недочёты хелпа, поскольку понятие системных объектов можно расширить до полной поставки базы. Дам новшеству балл.
SQL Editor 0.5+1+0=1.5 из 3 возможных
⦁ The executed statement is now shown in the hint of a title of the SQL Editor’s dataset.
Выполненное выражение теперь показывается в хинте заголовка грида данных.
После создания скрипта заголовок всего модуля расширялся началом текста выражения к исполнению. Заголовок модуля может быть растянут на всю ширину рабочей области приложения и поэтому получается более подробным, нежели новоявленный хинт закладки с выбранными данными. Более информативным считаю текстовый редактор, вызываемый с полным текстом, в том числе и с выставленными сортировкой и фильтрацией, по кнопке "Show query for the current dataset". При наличии же системы синхронизации между закладками данных и редакторов считаю введение хинта, при том слишком укороченного, бесполезным обновлением интерфейса. Поэтому даю лишь 0.5 балла.
⦁ If a statement execution raises an error, the Error tab heading is colored in red. The number of errors is also shown in the tab’s title.
Если исполнение выражения заканчивается ошибкой, то заголовок закладки ошибок окрашивается в красный. Количество ошибок также отображается в заголовке закладки.
Довольно полезное новшество, особенно на фоне столь запутанной работы "умного" режима закладок с результатами исполнений. Количество ошибок в одном скрипте тоже показывает фактическое значение. Было бы совсем замечательно, если бы "умный" режим стал более логичным и интуитивно-понятным, но пока новшество получает балл.
⦁ Increased the hint showing a SQL statement on the Data Output tab.
Увеличен хинт, показывающий выражение на закладке и данных.
Этот пункт RNs является дубликатом первого в группе модуля SQL Editor. Поэтому не получает балл и снижает процент готовности всего билда.
Code Insight 0.7+1+0.8-0.3=2.2 из 4 возможных
⦁ The Code Insight window is now resizable; it is possible to save/restore window size.
Окно подсказок кода теперь меняет размеры, есть возможность сохранять и восстанавливать размер.
Новшество весьма полезно, так как в последних версиях базы имена объектов стали почти безразмерно увеличиваться. Но это удобство не было протестировано на граничные значения. Если в предыдущий раз растянуть ширину или высоту окна, то при последующем вызове подсказки значимая часть может спрятаться за пределы рабочей области приложения и даже монитора. Не стоило разрешать увеличивать размеры до пределов текущего монитора или рабочей области SD. Вполне хватило бы в иных случаях скроллеров. Так что новинка получает только 0.7 балла.
⦁ Removed the colon “:” between a topic and a value.
Убран разделитель между заголовком и значением.
Мелкое интерфейсное изменение сделано, но не заслуживает такого внимания. Тем не менее, билд обогащается баллом.
⦁ Datatypes are now displayed right after the column name.
Типы данных теперь отображаются справа от заголовка колонки.
Не совсем понятная формулировка новшества. На самом деле имена параметров и переменных обогатились полезной информацией об их типе данных. Нововведение приносит 0.8 балла билду из-за путанного описания изменений.
⦁ Datatypes of parameters and variables are now displayed in the Stored Program Editor.
Типы параметров и переменных теперь отображаются в Редакторе Хранимых Программ.
На самом деле этот пункт RNs является дубликатом предыдущего. К тому же информация об ограничении одним модулем является ложью, так как типы параметров и переменных теперь доступны в подсказчике кода, появляющемся также и в Мастере Триггера. Поэтому вместо лишнего балла за пункт сниму -0.3 балла.
Bulk Confirmation 0.7 из 1 возможного
⦁ Optimized execution of group actions:
* Renamed to “Bulk Confirmation.”
* Removed the second confirmation window for non-critical operations.
* The preview window is no longer shown for such operations as Open, Browse, Open in Stored Program Editor, Describe, Analyzer Data Dependency.
Оптимизировано исполнение групповых действий:
-переименовано окно в групповое подтверждение
- убрано окно повторного подтверждения для некритичных операций
- окно предварительного просмотра больше не показывается для таких операций, как Открыть, Просмотреть, Открыть в SPE, Описание, Анализ Зависимых Данных.
К сожалению, в статьях хелпа для Навигатора Объектов не сказано ни слова о переименовании. Поэтому поясню, что групповые операции доступны лишь из дерева Навигатора Объектов. Поскольку первоначально все экшены проходили одинаковый путь до конкретного исполнения, то со временем пользователей стали раздражать излишние предупреждения перед простыми действиями, никак не влияющими на базу. Второй и третий подпункты в RNs следовало объединить. А список некритичных действий стоило уточнить. Разработчики этого новшества не учли тот факт, что открытие хранимых подпрограмм в редакторе или мастере объекта может предваряться их перекомпиляцией, которая причисляется к критичным действиям. Также неосмотрительно убрано подтверждение смены активности объектов. Напомню о съедании памяти при открытии множества окон, хорошо что хоть этот процесс можно остановить. Но всё-равно, малопродуманное новшество получает лишь 0.7 балла.
Database Connection Window 0.6+0.7=1.3 из 2 возможных, -0.5 за баг
⦁ Added the ability to select all/none connections in the Last Connections list.
Добавлена возможность выбирать все или снимать выбор со всех коннектов в списке последних подключений.
В предыдущей версии SD выбранные коннекты можно было лишь удалить группой. В текущей версии добавилась только возможность экспорта, поэтому такое новшество является полезным. Но на фоне того, что пункт меню для удаления из списка переименован из "Delete Selection" в просто "Delete", выделение всех записей становится опасным. а для массовой смены прочих настроек (автоконнект, тип подключения, Oracle Home, Connect As) групповое выделение бесполезно. Поэтому пункт RNs получает лишь 0.6 балла.
⦁ Added the ability to export and import database connections to and from XML.
Добавлена возможность экспорта и импорта списка коннектов к базе в/из XML.
То ли для этого новшества, то ли до программистов дошло моё возмущение о сильном простом шифровании паролей к базе, запоминаемых в настройках SD, но в пятой версии SD кардинально сменилось шифрование сохраняемых паролей к базе. При чём без совместимости с предыдущими версиями продукта. Важно! Если вы храните пароли коннектов и намереваетесь работать одновременно в SD#5 и SD#4, то перед первым запуском SD#5 выполните сохранение настроек приложения Preferences в SD#4 по кнопке Save в файл или экспортните ветку приложения из реестра операционной системы. Иначе вы утеряете возможность автоматического подключения в SD#4 без набивания заново паролей. Подобное предупреждение должно было быть в RNs, но ConquestSS не заботится о своих пользователях. Для полной проверки функционала экспорта и импорта необходимо наличие различных операционных систем и баз данных, позволяющих все виды подключений. Поскольку не имею всего перечисленного, то поверю на слово разработчикам и признаю фикс готовым. Но переименованный пункт контекстного меню и потеря паролей для предыдущих версий не позволяют дать полноценный балл. А за отсутствие предупреждения о потере паролей сниму -0.5 балла.
Object Navigator Filter 0.8+0.5=1.3 из 2 возможных баллов, -0.3 за баг
⦁ Added all 59 object types to the filter.
Добавлены все 59 типов объектов для фильтрации.
Правильнее было бы написать, что все 65 папок и значимых подпапок дерева Объектного Навигатора теперь доступны для фильтрации. Проверки показали, что установка фильтра на папку коллекций всё ещё дублирует фильтр и на прочие объектные типы. А после попытки обнулить все фильтры и выставить изменённый так и случается необработанное исключение "You cannot access field data beyond Eof". Хорошо, что хоть прочие подпапки (расписания, правила) фильтруются без подобных проблем. С учётом недоработки новшество получает 0.8 балла, а всё ещё не исправленный баг отнимает -0.3 балла.
⦁ Fixed the layout of the Filter Builder.
Исправлен внешний вид построителя фильтров.
Интерфейс окна для выбора и установки фильтра изменился лишь по высоте, поскольку список папок увеличился. Но это микроскопическое изменение никак не тянет на полноценное новшество, а лишь растягивает текст RNs до мнимого объёма, соответствующего новой версии продукта. Поэтому даю лишь 0.5 балла.
Database Examiner 1+0.7=1.7 из 2 возможных, -0.4 за баг
⦁ Filters at “Database Examiner / Sessions” and Session Navigator are synchronized now.
Фильтры сессий в DB Examiner и Навигаторе сессий теперь синхронизированы.
Два самостоятельных модуля администратора базы отображают почти идентичную информацию, но с разным уровнем управления ею. Вполне логично, что списки сессий в обоих модулях теперь можно одинаково фильтровать. Но списки ограничиваются лишь встроенными фильтрами, то есть ваши вручную созданные фильтры не копируются из модуля в модуль. Тестирование выявило неописанный функционал: применённые фильтры не перекрываются в разных модулях, то есть в обоих списках вы можете активировать разные фильтры, и они восстановятся при следующем открытии окна. Даю полноценный балл.
⦁ Renamed “Open Session Navigator” to “Find in Session Navigator.”
Переименовано открытие навигатора сессий в поиск по навигатору сессий.
К сожалению, тех.писательница забыла упомянуть, что это переименование касается кнопки на тулбаре и пункта контекстного меню только на странице сессий утилиты DB Examiner. Но функционал не оправдывает нового наименования, потому что при отсутствии искомой сессии в навигаторе сессий нет предупреждения о том, что позиционирована первая попавшаяся сессия. Для примера можете выставить разные фильтры в обоих модулях (активные и неактивные сессии) и попробуйте выполнить поиск. Ещё одним сомнительным удобством считаю открытие каждый раз нового окна Session Navigator для поиска сессии. В рамках комплексного тестирования выявилась значительная разница в списке полей, доступных в обоих модулях. Причём в навигаторе сессий пропущенные поля не отображаются и в дополнительных закладках снизу. Да и названия всех колонок в DB Examiner более подробны, нежели в прямом по функционалу Session Navigator. С учётом недоработок новшество получает 0.7 балла, а выявленная проблема с полями отнимает у билда -0.4 балла.
Database Monitor 0.5 из 1 возможного, -0.5 за баг
⦁ Added a new graph “Blocked and Blocking Sessions” to the Activity group.
Добавлен новый график заблокированных и блокирующих сессий в группу активностей.
Стоит заметить, что добавлен не один, а два графика про блокеры в эту группу. Второй график показывает время ожидания для записей и состоит из шести параметров. Общая проверка интерфейса заключается в оценке подписей графика, осей и легенды на доступность к прочтению и пониманию. К слову сказать, график ожиданий имеет слишком длинные подписи, поэтому полноценного его просматривать можно лишь в полноэкранном режиме. То есть юзер вынужден испытывать неудобства. Для тестирования работоспособности обоих графиков потребуется три сессии: блокирующая, блокируемая и отслеживающая. Для блокировки записей существует команда "LOCK TABLE" и незавершённые транзакции команд "INSERT", "UPDATE", "DELETE", "MERGE" и "SELECT ... FOR UPDATE". В первой сессии выполните одну из перечисленных команд, во второй - обратитесь к этим же данным, в третьей откройте монитор базы и наблюдайте за графиками. В полноценную проверку функционала следует включить и отправку нотификаций при достижении критических значений, а тесты интерфейса расширить до перебора параметров из настроек конкретного графика. Обе кнопки имеются в правом верхнем углу панелей каждого из графиков. Следующий шаг тестирования - анализ накопленной информации - просмотр истории наблюдений. Но тут появился критичный баг невозможности загрузки данных. Из всего вышеперечисленного могу дать за новшество 0.5 балла и отнять -0.5 балла за внесённый баг.
Online Support Desk (OSD) 0.7+1=1.7 из 2 возможных
⦁ The OSD window and the New Message window are now displayed on the main window taskbar.
Главное окно модуля и окно редактирования сообщения теперь отображаются на таскбаре приложения.
Тех.писательница сделала грубую опечатку, назвав рабочую область приложения его панелью задач. На самом деле бывшая внешняя библиотека "OSD.DLL" вошла в разряд корня программы "Core", её уже нет в списке файлов рабочей папки. А окна модуля располагаются внутри рабочей области. Но это не улучшило его работоспособность, а наоборот усугубило доступ юзера к функциональным объектам. Минимальная высота окна для редактирования сообщения OSD настолько велика, что прикрепления и кнопки управления сообщением чаще оказываются вне пределов рабочей области. Для их активации юзер вынужден постоянно скроллировать экран. Из-за внесённых неудобств и опечатки новшество получает лишь 0.7 балла.
⦁ Added ".docx" to the extensions list of OSD attachments.
Расширение файлов последних версий MS Word добавлено в список для прикреплений OSD сообщений.
Для проверки новшества создаём новое сообщение или открываем существующее из числа черновиков и в блоке "User attached files" кликаем по соответствующей кнопке для открытия диалога выбора файлов. В раскрывающемся списке фильтров по расширению файлов находим вариант документов. Поскольку диалог является интерфейсным объектом операционной системы, то его внешний вид и работоспособность проверять нет необходимости. Также нет необходимости перепроверять возможность отправки и получения файлов с расширением ".docx", поскольку давно уже разрешено сервером ConquestSS получение любых прикреплений. Даже, могу сказать по секрету, снято ограничение на размер в 4Мб. Единственное замечание - странным мне кажется отнесение расширения "txt" к числу скриптов, а не документов, и в числе документов не хватает расширения "rtf", которое тоже является весьма популярным среди Windows юзеров. Но не смотря на эти замечания дам благодушно целый балл.
Extract DDL 1 из 1 возможного
⦁ Renamed the option “Storage Clause” to “Physical Attributes Clause.”
Переименована опция параметров хранения в физические атрибуты.
Для проверки изменения понадобятся странички опций в нескольких местах: "Preferences / General / Extract DDL / Buit-in Engine", "Compare DBs-Schemas-Objects / Object Type Comparison Options / Table, Index, Cluster, Constraint, Materialized View", "Fast Copier / DDL Options / Buit-in Engine", "Schema Extractor / DDL Options / Buit-in Engine", главное меню "Object / Extract DDL / Buit-in Engine" при включенной опции "Preferences / General / Extract DDL / Common Options / Show preferences before extract". В мастерах объектов эти данные настраиваются по кнопке "Segment", а в документации Oracle это выражение осталось наименовано по-прежнему. Но подозреваю, что разработчики добавили в это понятие некоторые другие параметры объектов, характеризующие их физическое положение и состояние. К сожалению, тех.писательница не удосужилась пояснить причины такого переименования, но, так и быть, дам за изменение полный балл.
Relocate/Move Objects 1 из 1 возможного, -0.3 за баг
⦁ Renamed “Modify segment attributes” to “Include segment attributes.”
Переименована модификация атрибутов сегмента во включение их при перемещении.
Перемещение объектов в рамках SD доступно в нескольких контекстных меню: объекты как ноды в дереве Object Navigator, объекты как строки в таблицах "Storage Manager / Objects" и "Storage Manager / Objects Summary / Type Details". Для совершения операции существует модальное окно, заголовок которого состоит из имени подключения, полного типа и имени перемещаемого объекта, и только где-то в конце едва вмещающееся название операции. Поскольку окно модуля модальное, то его кнопки на таскбаре приложения не появляется, а значит нет возможности убедиться, что операция будет произведена с истинно желаемым объектом: ни хинта с полным наименованием, ни дополнительных полей в окне с полным именем объекта, которое обрезается в заголовке окна из-за длинного имени подключенной сессии. Поскольку окно модальное, то и изменить его ширину нет возможности. Это серьёзные интерфейсные проблемы, за которые стоит снять -0.3 балла. Более полезным было бы не незначительное переименование одного чек-бокса, а приведение всего окна в надлежащий вид, полноценно доступный юзеру. Но хоть и мелкое изменение, а вынуждает меня дать за него балл. Такого рода приписки к RNs позволяют судить о билде, как о "продукте мартышкиного труда" - лишь бы была видимость трудозанятости.
BUGS FIXED 0+0+2+0+0.3+0+0+0.7+1+0.8+0=4.8 из 3+1+3+5+2+1+1+1+1+1+1=20 возможных баллов, -1-2-0.3=-3.3 за баги
SQL Editor 0+0+0=0 из 3 возможных, -1 за баг
⦁ An access violation error no longer occurs on trying to execute an invalid SQL statement.
Ошибка доступа больше не случается при попытке выполнить инвалидное выражение.
В предыдущей версии у меня никак не получилось воспроизвести описанный баг, поэтому у тех.писательницы "красные уши" из-за недостоверного или неполноценного текста RNs. Напротив, в текущем билде окно процесса от исполнения любого выражения остаётся на переднем плане даже по окончании выполнения скрипта, а закрытие SQL Editor приводит к необработанной ошибке. Балла за пустую правку дать не могу, и сниму балл за новый мега-критичный баг, из-за которого теряются все правки в редакторе.
⦁ Executing the SELECT statement that retrieves a column of the TIMESTAMP WITH TIME ZONE data type no longer raises the error “ORA-01805: possible error in date/time operation” when timezone files on the client and server do not match (regions are not synchronized).
Выполнение выборки данных из колонки с зоной времени больше не вызывает ошибку о возможной ошибке в операторе даты/времени, если файлы зон времени или регионы не синхронизированы на клиенте и сервере.
К сожалению, никакие манипуляции с перенастройкой формата и перевыбором зон времени на клиенте (OS, Preferences / General, DB Examiner / NLS Parameters) не способствовали воспроизведению описанной ошибки. Поэтому фикс считаю припиской и не даю за него ни балла.
⦁ The error “List index out of bounds” is no longer raised on clicking “Save As.”
Ошибка выхода индекса за рамки больше не случается при клике на сохранение с новым именем.
В прошлом билде ничего подобного не случается, диалог для сохранения скрипта в файл под новым именем отрабатывал благополучно. Это значит, что тех.писательница не учла каких-то специфических условий, либо никакого фикса не производилось. За пустоту баллы не даются.
Object Navigator 0 из 1 возможного
⦁ An access violation error no longer occurs on trying to select a different node in the tree after saving an object in the default scene.
Ошибка доступа больше не случается при попытке выбрать иную ноду в дереве после сохранения объекта в декорации по-умолчанию.
Декорацию по-умолчанию в навигаторе объектов нет необходимости сохранять, так как это делается автоматически. Из чего заключаю, что баг описан неточно. Да и невозможно воспроизвести его в предыдущей версии. Потому фикс не получает ни балла.
Extract DDL 1+0+1=2 из 3 возможных
⦁ DDL extracted for an external table no longer has an unnecessary RESULT_CACHE attribute.
В выгружаемом коде на создание внешней таблицы больше нет лишнего атрибута о результате кэша.
Очень давний баг наконец-то исправлен. Для проверки фикса создайте в мастере таблиц соответствующий объект и получите его DDL. По имеющемуся тексту в прошлом билде будет ошибочное создание объекта, а в текущем - благополучное. Фикс повышает готовность билда на балл.
⦁ Fixed the LOGGING attribute in DDL extracted for a partitioned table with no explicitly defined LOGGING.
Исправлен атрибут логгирования в выгружаемом скрипте на создание таблицы с разделителями и не явно объявленном логгировании.
Из-за недостаточности знаний базы данных Oracle тех.пиательницей текст фикса звучит весьма странно. Абсолютно не понятно о каком таком не явном объявлении логгирования говорится. Но даже выгрузив скрипты на создание таблиц с разделителями мне не удалось выявить хоть какую-то разницу между билдами. Поэтому пункт RNs не получает ни балла.
⦁ The error “ORA-01031: insufficient privileges” no longer occurs on trying to extract Scheduler Destination object DDL from a database 12.2.
Ошибка недостаточности прав больше не случается при попытке выгрузить структуру объекта о предназначении расписания из базы версии 12.2.
Стоит пояснить, что предназначения расписаний могут быть схемными и системными объектами. О каком уровне объекта идёт речь - из текста бага не понятно, поэтому проверять необходимо объект в своей схеме, в чужой схеме и системный. Поскольку в моём распоряжении отсутствует база указанной версии, то доверюсь программисту и дам авансом балл.
Export and Import Wizard 0+0+0+0+0=0 из 5 возможных, -1-1=-2 за баги
⦁ Fixed the minimum size of the wizard to make sure all UI elements fit in correctly.
Зафиксирован минимальный размер мастера так, чтобы все интерфейсные элементы вмещались корректно.
Во-первых, уточню заголовок группы - речь идёт о мастерах экспорта и импорта данных из таблиц, вьюверов. Во-вторых, термин "correctly" будем считать применимым лишь к размеру шрифта в приложении по-умолчанию. Для проверки исправления откроем оба мастера не из SmartDataset, чтобы первым шагом была страница выбора объектов. Придадим окнам минимальные размеры и пройдёмся по всем шагам для всех типов выгрузки и загрузки данных, внимательно приглядываясь к расположениям и размерам элементов. А для освоения комплексного тестирования предлагаю предварительно ознакомиться с последующими пунктами RNs по этому же модулю и проверять их параллельно. Тем самым вы сэкономите собственное время и научитесь широкой внимательности. Стоит ещё напомнить, что в группе разработки ConquestSS было принято правило расположения интерфейсных элементов таким образом, чтобы между соседними было пространство, кратное двум пикселям. Поскольку мы проверяем только интерфейс, то на последнем шаге нет никакой необходимости кликать кнопку старта импорта/экспорта, то есть данные базы не должны пострадать от наших действий. По результатам своих тестов могу отчитаться:
1) элементы группы Table Options на 6 шаге экспорта INSERT и MERGE слиплись;
2) комбобокс для выбора разделителя текста наезжает на свою подпись на 6 шаге экспорта по типам Delimited и Fixed Field Spacing;
3) окно с примером формата даты и времени на шестом шаге экспорта всех типов прилепилось к правой границе блока;
4) на втором шаге импорта из Excel, XML, Delimited выявлены три проблемы: в группе опций парсера обрезана подпись комбобокса, в группе форматов числовых значений обрезан редактор символа валют, в блоке логических величин подпись второго комбобокса прилипла к первому комбобоксу;
5) на втором шаге импорта из Access в блоке My Access Data правая таблица колонок имеет не стандартную окраску (заголовки столбцов белые с черным шрифтом на голубоватой подложке, а данные в текущей строке излишне подсвечиваются бледно-голубой подложкой);
6) хоть у меня и была оговорка, что на последнем шаге не нужно запускать процесс, но для тестирования импорта лучше иметь свежие файлы, поэтому не поленитесь и экспортните файлы всех типов. Это позволит вам отловить проблему семафора в режиме внутреннего экспорта и последующей попытки импорта из этого файла. А dat-файлы, сформированные в прошлых версиях SD, не подойдут для импорта по несовпадению их внутренних версий.
Такой отчёт позволяет мне ни давать балл за исправление. Да ещё и снять балл за UI и функциональные проблемы.
⦁ The column list is no longer empty on trying to export tables to MS Access.
Список колонок теперь никогда не пустой при экспорте таблиц в Access-формат.
Для тестирования открываем мастер экспорта данных, выбираем тип Access для первой попавшейся таблицы с хоть какими-то данными, доходим до шага со списком полей. В прошлом билде список и без того не пустой, а это значит, что данный пункт RNs - пустышка, за которую не могу дать ни балла. А если бы тех.писательница постаралась и добавила существенных подробностей, то можно было бы рассчитывать на более высокую оценку билда.
⦁ The error “Incorrect date format character ‘.’” no longer occurs on trying to import data from Excel.
Ошибка неверного формата даты больше не случается при попытке импорта данных из Excel-формата.
В предыдущем билде не наблюдалась проблема с форматом дат при импорте из Excel. Поэтому пункт RNs не получает ни балла.
В рамках комплексного тестирования выяснилось, что мастер экспорта в Excel не формирует файл в той папке, что выбрана в мастере, а лишь во временной и с иным наименованием. За что билд теряет балл.
⦁ Removed the “Invalid date format” option from the last step of the Import Wizard.
Убрана опция неверного формата дат с последнего шага мастера импорта.
Последний шаг импорта данных состоит из двух списков связанных объектов, требующих переключения их активности на время импорта. Для опции о неверном формате дат на этом шаге никогда не было места. Форматы даты, времени и прочие разделители давно выставляются на следующем шаге сразу после выбора типа экспорта. Но ни там, ни где бы то ни было ещё опции с подобным наименованием никогда и не было. Если бы речь шла об опции о пропуске данных, не импортируемых по ошибке базы, то она необходима и оставлена на прежнем месте. Так что, пункт RNs никак не может пополнить копилку баллов билда.
⦁ Removed the “Date Format” group of settings from the second step of the Import Wizard.
Убрана группа настроек формата дат со второго шага мастера импорта.
На самом деле группы настроек форматов дат и времени, а также разделителей для некоторых типов импорта не убраны, а лишь закрыты на редактирование. Такое изменение для меня весьма обескураживающе, так как импорт из Excel часто сталкивается с разницей форматов дат. Текст RNs не соответствует действительности и полезности, а значит не приносит билду ни балла.
Fast Copier 0.3+0=0.3 из 2 возможных
⦁ Extract DDL options are now correctly saved and restored when opened from the Fast Copier.
Опции выгрузки DDL теперь корректно сохраняются и восстанавливаются при открытии из быстрого копировщика объектов.
Если речь идёт о корректности сохранения и восстановления опций, то оно должно быть одинаковым при переоткрытии модуля и приложения. Но тесты показали, что восстановление опций всегда равно их самостоятельному состоянию по-умолчанию после переоткрытия модуля или приложения. После перезапуска SD настройки должны принимать значения из Preferences, но этого не происходит. Переоткрытие модуля в одной и той же сессии приложения должно восстанавливать либо ранее выставленные, либо значения из Preferences. Но ни того, ни другого не происходит. Единственное положение, сохраняющее настройки, проявляется лишь при переоткрытии модального окна настроек без перезапуска модуля Fast Copier. Такое поведение нельзя считать корректным, поэтому фикс получает лишь 0.3 балла.
⦁ Modifying extract DDL options from the Fast Copier no longer affects global settings.
Изменение опций выгрузки DDL в быстром копировщике больше не меняет глобальные установки.
Полагаю, что тех.писательница опечаталась предлогом from вместо by или in. Но это мелочь, за которую не снижу балл билда. Поясню только, что глобальными считаются установки из разряда Preferences. В предыдущем билде настройки выгрузки DDL в Preferences и Fast Copier существовали каждые сами по-себе, вне зависимости друг от друга. Точно также они остались и в текущем билде. Поэтому пункт RNs считаю пустышкой и не даю ни балла.
ContentSelector 0 из 1 возможного
⦁ TYPE objects are now opened in the Stored Program Editor.
Объектные типы теперь открываются в редакторе хранимых программ.
Объектные типы делятся на два вида: подразумевающие наличие атрибутов, методов и тел и простые коллекции. Объектные типы первого типа как и прежде открываются в редакторе хранимых программ. Коллекции тоже, как один из вариантов объектных типов, открываются в своём мастере объектов, как и в прежнем билде, вне зависимости откуда её пытаются открыть - из дерева или содержимого Объектного Навигатора. За такую фиктивную работу группы разработки SD билд недополучает балл.
Compare Databases 0 из 1 возможного
⦁ Fixed the comparison results of two IOT Tables with the enabled “Table / Index” and disabled “Constraints / Include” options.
Исправлены результаты сравнения двух IOT-таблиц с включенными индексами и выключенными констрейнтами.
В документации базы Oracle найдите пример индексно-организованной таблицы и создайте её примеры для тестов. Далее, сравниваем индексно-организованные таблицы в Compare Objects с включенными в сравнение табличными индексами и исключёнными констрейнтами из сравнения. Следующий шаг тестирования - найти отличия в скриптах миграции или синхронизации, получаемых тестируемым модулем, из двух версий продукта. К сожалению, никаких изменений в скриптах не выявлено. Это значит, либо описание бага убогое, либо никакой правки со стороны программиста не было. В таком случае фикс не добавляет билду балл.
Data Dependency Analyzer 0.7 из 1 возможного
⦁ Enabling the “Show all master data” now correctly refreshes the list of detail datasets.
Включение показа всех верхних данных теперь корректно обновляет список детальных данных.
Для тестирования нам понадобятся таблицы с данными, связанные между собой через Foreign Key. Поскольку данные не будем изменять, то можете воспользоваться любыми таблицами или вьюверами (например, из схем примеров HR, SCOTT или иных). Нужный нам переключатель состоит из двух кнопок на тулбаре рабочего окна: одна включает режим показа всех данных мастер-таблицы, а вторая - только связанных данных мастер-таблицы. Но фактически их работа сводится к фильтрации мастер-таблицы по текущей записи. То есть в режиме линкованных в гриде мастер-таблицы остаётся лишь одна текущая строка, а по её связи остаются данные в гриде деталей (нижний грид) и списке связанных объектов (дерево слева). На мой взгляд пользователя базы данных Oracle в режиме только связанных данных верхний грид мастер-таблицы должен отфильтровать все данные, а не только одну текущую запись, имеющие ссылки в выбранной через дерево таблице деталей. При переключении же режима в показ всех записей мастер-таблицы в верхнем гриде должен (и снимается) всякий фильтр, текущей становится первая строка, а в гриде деталей показываются реально-зависимые данные. Единственным заметным изменением является не сбиваемый на первый в списке выбор зависимого объекта в дереве. Но если бы переход в режим только связанных деталей работал по более логичному пути, описанному мной выше, то и не пришлось бы делать это излишнее исправление. За подобный "костыль" могу дать лишь 0.7 балла.
Bulk Confirmation 1 из 1 возможного
⦁ Object type names are now shown in the "Bulk Confirmation" window on executing object type methods.
Имена объектных типов теперь отображаются в окне на подтверждение совместных действий при исполнении методов объектных типов.
Такое исправление функционала более подходит к разряду новшеств, а не багов. Оно было предложено мной в одном из предыдущих отчётов, когда аналогичное моё новшество было сделано для пакетных подпрограмм. Напомню, что групповое исполнение доступно из Навигатора Объектов. Для проверки развернём в дереве навигатора объектов такой объектный тип, у которого есть несколько методов, например, "SYS.DBURITYPE". Разворачиваем в дереве его подпапку "Methods" и отмечаем через Ctrl+Click несколько методов. В контекстном меню выбираем пункт Execute (это безопасно, поскольку нам для теста не надо выполнять методы, а серьёзные операции в SD запускаются после подтверждения). Откроется диалог "Bulk Confirmation", в столбце "Object Name" которого сможем лицезреть исправление. Но более полным этот фикс стал бы после добавления в этот список параметров подпрограмм для более чёткого представления функций переполнения. Так, например, во взятом наугад нами объектном типе "SYS.DBURITYPE" существует очень много методов GETCLOB и GETBLOB с различным набором переменных. Даю балл за исправление.
Datasets/Datagrids 0.8 из 1 возможного, -0.3 за баг
⦁ Autofit no longer breaks after export.
Автоподгонка больше не сбивается после экспорта.
В гридах данных существует несколько вариантов автоподгонки ширины полей: по заголовку или данным. Экспорт данных производится через специальный мастер выгрузки данных. Но по окончании экспорта с разделителями (простейший тип) и даже после закрытия мастера экспорта и переноса активного курсора обратно в грид в прошлой версии SD не подмечено никаких изменений в ширине полей также, как и в текущем билде. Единственный тип экспорта, который сбивал автоподгонку ширины полей в прошлой версии, случайно обнаружен - это Excel. Но в нём самом обнаружена сопутствующая проблема: лог экспорта сообщает о меньшем количестве экспортированных строк, вероятно дважды отнимается первая строка с заголовками. Поскольку описание бага не было конкретизировано типом экспорта, то пункт RNs получает лишь 0.8 балла. Странно, что тестировщик при приёмке фикса не выявил проблему подсчёта строк. За это отниму -0.3 балла.
Session Navigator 0 из 1 возможного
⦁ Fixed data sorting in the “Waits” grid.
Зафиксирована сортировка данных на закладке ожиданий.
Двоякое понятие "фиксирования" придётся проверять в двух направлениях: либо в прошлом были проблемы интерфейсного характера и теперь значки и данные не сбиваются со своих позиций, либо функционирование сортировки противоречило общепринятым стандартам и внутренним продуктовым правилам. К сожалению, в предыдущей версии SD мне не удалось выявить никаких проблем с сортировкой, поэтому данный пункт RNs можно считать припиской, и он не получает ни балла.
Итого по билду SQLDetective 5.0.1.124: 1.3+15.9+4.8=22 балла из 2+24+20=46 возможных дают 22/46=48% готовности билда и баги отнимают -2-3.3=-5.3 баллов.
четверг, 10 января 2019 г.
Про-хак
Одной из профессиональных черт тестировщика является хакерство, направленное на выявление слабых мест продукта. Любой производитель стремится выгодно продать свой товар. А чтобы получить наибольшую прибыль, предложение должно соответствовать запрашиваемому качеству. Обязательная или добровольная сертификация позволяет устанавливать высокую цену. Но современные бизнесмены, стартаперы чаще пытаются сыграть на раскрученных брендах, чтобы быстро разбогатеть. Поэтому давним поставщикам приходится защищаться, в том числе и лицензированием своего труда. И этот этап производства тоже должен быть протестирован, хотя не все уделяют ему должное внимание, сваливая его только на тестировщиков по безопасности.
Давайте рассмотрим несколько приложений, являющихся платными для постоянного использования тестировщиком. Но поскольку "бизнес по-русски" любит халяву, то любой из ниже перечисленных продуктов можно применять бесплатно неограниченное количество времени или раз, если взглянуть на них глазами истого тестировщика. Да, профессия обязывает нас обладать способностями хакера, и именно это качество помогает выявить злостные негативные тесты. Не буду вдаваться в юридические тонкости лицензионных соглашений, пусть эти тексты останутся на совести владельцев продукта. Нашей технической направленности вполне достаточно, чтобы показать несовершенство функционала, а значит и возможные пути потери прибыли.
WINDOWS
Операционная система, наиболее популярная у тестировщиков десктопных продуктов, вполне может обойтись без Интернета. И это является основополагающей причиной "украсть" лицензию.
Подтверждение серийного ключа происходит обычно в автоматическом режиме или индивидуальном через интернет, телефон. Да, лицензия ставится на одну машину, но может быть и переставлена на другую, более (менее) новую с точки зрения оборудования. Этот обходной манёвр чаще всего используют завхозы (сисадмины, девопсеры). Степень защиты, завязанная на "железо", в век быстро меняющихся технологий нельзя считать высокой. Компания Microsoft, понимая тенденции рынка компьютеров, сама отказалась от некоторой части прибыли, видимо посчитав её незначительной. Конечно, обновить такую версию можно только на одной из машин, но для отдела тестирования парк устройств чаще всего выстраивается именно в стиле разнообразия и надолго.
TestComplete
Среда тестирования десктопных, web- и мобильных приложений имеет пробный бесплатный период, длиною в месяц. Цена продукта самая низкая в линейке ему подобных, но и это не всегда по карману стартапам. Поэтому основные пользователи TestComplete чаще вынуждены извращаться и ограничиваться триалом. Даже триальный ключ имеет три стадии защиты: временной, привязка к оборудованию и операционной системе, генерация ключа на сайте компании. Но все эти уровни тоже можно обойти. Персональная информация для триального ключа не завязана на факте существования e-mail - хотя поле и обязательное для заполнения, но вводить можно не существующий адрес, например "aa@aa.aa". Персональную инфу собирают только для статистики, а не в целях уникального использования ключа. Наличие доступа в интернет на компе тоже не обязательное, ключ можно получить через соседнюю машину, да и существующий коннект не контролирует триальщика. Поскольку операционная система позволяет не закрывать сеанс годами, то это позволяет работать в одной запущенной сессии приложения более одного месяца. На моей памяти 7 месяцев на виртуальной машине без перезагрузки, поскольку однажды запущенное приложение не замечает регулярной смены дат. Но когда виртуальную машину пришлось перезапустить, а не остановить с открытым TestComplete, то только переустановка виртуалки и приложения позволила продолжить тестирование. Опасно, конечно, переводить дату на компах виртуальном и основном, это "сжигает" триал, даже если вы не вышли за рамки периода. Моим выходом из ситуации стало следующее: на основной машине ставилась чистая виртуальная машина, копия файла виртуальной машины откладывалась в запасник, на виртуалку ставился TestComplete, запускалась среда тестирования и по возможности не закрывалась (если тесты не валили среду) длительное время, виртуальная машина тоже не гасилась, а только сеанс с самой виртуалкой закрывался. Поскольку запуск тестов никогда не проверял триальный период, то работать можно бесконечно долго, если тесты не требуют ручного перевода дат на компе.
Продукты компании Atlassian (Jira, Confuence,..)
Почему из двух вариаций (облачной и серверной) русские бизнесмены выбирают серверную? Думаете, чтобы сохранить конфиденциальность разработок? Отнюдь нет. В серверном варианте доступно мелкое перепрограммирование, и минимальная версия на 10 пользователей вырастает в безлимитную. А ведь для небольших команд в 15-20 человек вполне достаточно работать в двух честно купленных 10-пользовательских приложениях, потому что работает импорт-экспорт задач, а команда тестировщиков вполне может пользоваться отдельной системой трекинга задач. Тестировщик не имеет права менять техзадание, нам достаточно только описания задачи. И программистам не важны шаги тестов, кроме новых локализованных багов и утверждённых лидом на правку. Халявщики-бизнесмены даже из фичи синхронизации могут извлечь собственную выгоду.
TOAD
Самая популярная среда разработки и тестирования базы данных Oracle хоть и имеет бесплатный триальный период, но его давно научились переводить в бесконечный и неограниченный. Не могу придумать причину, почему такой большой спектр пользователей-халявщиков не принимается во внимание. Программулька генерит ключ на персональной машине, как минимум до 12 версии. Запуск TOAD и весь его функционал не проверяет лицензию через сайт компании Quest ни в прямом, ни в скрытом режимах. Ключ теоретически имеет лишь две ступени защиты: реестр и файловая система. На мой взгляд - это слишком слабая охрана для столь распространённого приложения, которая не приносит прибыли ни Quest, ни альтернативным компаниям. Зачем создавать новый клон и пытаться на нём заработать, если оригинал в свободном доступе знают и используют давно?
Продукты компании Conquest Software Solutions
Излишество наворотов лицензионных ключей SQLDetective, ClearSQL и ClearDB не спасает от утечек. Любой из уровней защиты имеет способ обхода. Двойной щит из реестра и файловой системы сам себя обходит единым IP-адресом машины с несколькими внутренними пользователями и подвиртуалками. Отключение интернета на момент старта приложения и выключение опций для скрытой отправки на сайт статистики пользователя охраняет нелегальных владельцев от разоблачения. Впрочем, сама инфа о владельце (количество и срок лицензий, AMS) компания Conquest автоматически отслеживает только по дате, а не уникальности пользователей, чем пользуются временные сотрудники, забирая домой или в иную организацию купленный ключ. На предоставленные мной факты незаконного использования лицензий CEO никогда не предъявлял претензии пользователям. Так что, как бы ни был лицензионный ключ уникален по времени покупки в рамках данных по продукту и покупателю, и как бы не контролировала MySQL база одновременно-уникальные транзакции собственными средствами, но элементарный вывод компа с продуктом Conquest из локальной сети или перевод даты в рамках триального/арендуемого срока позволяют работать с продуктами многим и долго. Да, ограничение по дате контролируется стартом внутреннего функционала, но при этом не выполняется никакая синхронизация дат. Поскольку триальный ключ входит в инсталлятор, то он никак не зависит от данных пользователя и компа, только операционная система подсказывает дату окончания триала.
Что и на каких этапах обязан проверять тестировщик для подтверждения устойчивости лицензий и сертификатов?
Перечислю стандартный минимум, доступный тестировщику даже без стажа. Пропуск какой-либо нижеописанной проверки ведёт к проблемам с несанкционированным использованием вашего продукта, а иногда к отказу продолжать оплачивать лицензию. Своеобразный cheat-sheet для проверки лицензионного ключа:
- юридическое обоснование лицензионного соглашения, наличие и полнота системных требований для использования продукта в описательном документе, точность описания инструкции пользователя в хелпе и иных подсказках, полнота описания нового функционала и возможных проблем с вариантами решения в Release Notes;
- способы и места ввода персональной информации, влияющей на ключ продукта: sql-инъекции, региональные языки, спец-символы и тэги, размер данных (пустые-нулевые, максимум-минимум, переполнение, граничные,..), формат (текст, число, дата,..) и маска (разделители дробей, времени, имя с большой буквы,..), полнота заполненности и обязательность полей;
- объём и содержание переданной информации для генерации ключа: необходимые и достаточные данные, поддержка региональных языков на сервере генерации ключа;
- объём и содержание переданного ключа пользователю: соответствие функционального набора оплаченным/заявленным опциям и полнота функционирования ограничений, защищённость передачи (файл прикреплён к e-mail письму, заархивирован с паролем, скачан с сайта производителя, код продиктован по телефону,..), поддержка в системе пользователя;
- техподдержка лицензии: автоматическая, регулярная, скрытая, ручной режим, оплата, база клиентов.
Как часто проводить тестирование лицензии?
- смена версии платной части (мажор, минор, релиз,..);
- смена условий оплаты всего продукта, его части или обслуживания;
- появление нового функционала, ограничиваемого ключом;
- изменение функционала, позволяющее несанкционированное использование;
- при обнаружении хакерских атак, подозрений на несанкционированное использование по результатам анализа обращений в техподдержку вашего и чужих продуктов.
Давайте рассмотрим несколько приложений, являющихся платными для постоянного использования тестировщиком. Но поскольку "бизнес по-русски" любит халяву, то любой из ниже перечисленных продуктов можно применять бесплатно неограниченное количество времени или раз, если взглянуть на них глазами истого тестировщика. Да, профессия обязывает нас обладать способностями хакера, и именно это качество помогает выявить злостные негативные тесты. Не буду вдаваться в юридические тонкости лицензионных соглашений, пусть эти тексты останутся на совести владельцев продукта. Нашей технической направленности вполне достаточно, чтобы показать несовершенство функционала, а значит и возможные пути потери прибыли.
WINDOWS
Операционная система, наиболее популярная у тестировщиков десктопных продуктов, вполне может обойтись без Интернета. И это является основополагающей причиной "украсть" лицензию.
Подтверждение серийного ключа происходит обычно в автоматическом режиме или индивидуальном через интернет, телефон. Да, лицензия ставится на одну машину, но может быть и переставлена на другую, более (менее) новую с точки зрения оборудования. Этот обходной манёвр чаще всего используют завхозы (сисадмины, девопсеры). Степень защиты, завязанная на "железо", в век быстро меняющихся технологий нельзя считать высокой. Компания Microsoft, понимая тенденции рынка компьютеров, сама отказалась от некоторой части прибыли, видимо посчитав её незначительной. Конечно, обновить такую версию можно только на одной из машин, но для отдела тестирования парк устройств чаще всего выстраивается именно в стиле разнообразия и надолго.
TestComplete
Среда тестирования десктопных, web- и мобильных приложений имеет пробный бесплатный период, длиною в месяц. Цена продукта самая низкая в линейке ему подобных, но и это не всегда по карману стартапам. Поэтому основные пользователи TestComplete чаще вынуждены извращаться и ограничиваться триалом. Даже триальный ключ имеет три стадии защиты: временной, привязка к оборудованию и операционной системе, генерация ключа на сайте компании. Но все эти уровни тоже можно обойти. Персональная информация для триального ключа не завязана на факте существования e-mail - хотя поле и обязательное для заполнения, но вводить можно не существующий адрес, например "aa@aa.aa". Персональную инфу собирают только для статистики, а не в целях уникального использования ключа. Наличие доступа в интернет на компе тоже не обязательное, ключ можно получить через соседнюю машину, да и существующий коннект не контролирует триальщика. Поскольку операционная система позволяет не закрывать сеанс годами, то это позволяет работать в одной запущенной сессии приложения более одного месяца. На моей памяти 7 месяцев на виртуальной машине без перезагрузки, поскольку однажды запущенное приложение не замечает регулярной смены дат. Но когда виртуальную машину пришлось перезапустить, а не остановить с открытым TestComplete, то только переустановка виртуалки и приложения позволила продолжить тестирование. Опасно, конечно, переводить дату на компах виртуальном и основном, это "сжигает" триал, даже если вы не вышли за рамки периода. Моим выходом из ситуации стало следующее: на основной машине ставилась чистая виртуальная машина, копия файла виртуальной машины откладывалась в запасник, на виртуалку ставился TestComplete, запускалась среда тестирования и по возможности не закрывалась (если тесты не валили среду) длительное время, виртуальная машина тоже не гасилась, а только сеанс с самой виртуалкой закрывался. Поскольку запуск тестов никогда не проверял триальный период, то работать можно бесконечно долго, если тесты не требуют ручного перевода дат на компе.
Продукты компании Atlassian (Jira, Confuence,..)
Почему из двух вариаций (облачной и серверной) русские бизнесмены выбирают серверную? Думаете, чтобы сохранить конфиденциальность разработок? Отнюдь нет. В серверном варианте доступно мелкое перепрограммирование, и минимальная версия на 10 пользователей вырастает в безлимитную. А ведь для небольших команд в 15-20 человек вполне достаточно работать в двух честно купленных 10-пользовательских приложениях, потому что работает импорт-экспорт задач, а команда тестировщиков вполне может пользоваться отдельной системой трекинга задач. Тестировщик не имеет права менять техзадание, нам достаточно только описания задачи. И программистам не важны шаги тестов, кроме новых локализованных багов и утверждённых лидом на правку. Халявщики-бизнесмены даже из фичи синхронизации могут извлечь собственную выгоду.
TOAD
Самая популярная среда разработки и тестирования базы данных Oracle хоть и имеет бесплатный триальный период, но его давно научились переводить в бесконечный и неограниченный. Не могу придумать причину, почему такой большой спектр пользователей-халявщиков не принимается во внимание. Программулька генерит ключ на персональной машине, как минимум до 12 версии. Запуск TOAD и весь его функционал не проверяет лицензию через сайт компании Quest ни в прямом, ни в скрытом режимах. Ключ теоретически имеет лишь две ступени защиты: реестр и файловая система. На мой взгляд - это слишком слабая охрана для столь распространённого приложения, которая не приносит прибыли ни Quest, ни альтернативным компаниям. Зачем создавать новый клон и пытаться на нём заработать, если оригинал в свободном доступе знают и используют давно?
Продукты компании Conquest Software Solutions
Излишество наворотов лицензионных ключей SQLDetective, ClearSQL и ClearDB не спасает от утечек. Любой из уровней защиты имеет способ обхода. Двойной щит из реестра и файловой системы сам себя обходит единым IP-адресом машины с несколькими внутренними пользователями и подвиртуалками. Отключение интернета на момент старта приложения и выключение опций для скрытой отправки на сайт статистики пользователя охраняет нелегальных владельцев от разоблачения. Впрочем, сама инфа о владельце (количество и срок лицензий, AMS) компания Conquest автоматически отслеживает только по дате, а не уникальности пользователей, чем пользуются временные сотрудники, забирая домой или в иную организацию купленный ключ. На предоставленные мной факты незаконного использования лицензий CEO никогда не предъявлял претензии пользователям. Так что, как бы ни был лицензионный ключ уникален по времени покупки в рамках данных по продукту и покупателю, и как бы не контролировала MySQL база одновременно-уникальные транзакции собственными средствами, но элементарный вывод компа с продуктом Conquest из локальной сети или перевод даты в рамках триального/арендуемого срока позволяют работать с продуктами многим и долго. Да, ограничение по дате контролируется стартом внутреннего функционала, но при этом не выполняется никакая синхронизация дат. Поскольку триальный ключ входит в инсталлятор, то он никак не зависит от данных пользователя и компа, только операционная система подсказывает дату окончания триала.
Что и на каких этапах обязан проверять тестировщик для подтверждения устойчивости лицензий и сертификатов?
Перечислю стандартный минимум, доступный тестировщику даже без стажа. Пропуск какой-либо нижеописанной проверки ведёт к проблемам с несанкционированным использованием вашего продукта, а иногда к отказу продолжать оплачивать лицензию. Своеобразный cheat-sheet для проверки лицензионного ключа:
- юридическое обоснование лицензионного соглашения, наличие и полнота системных требований для использования продукта в описательном документе, точность описания инструкции пользователя в хелпе и иных подсказках, полнота описания нового функционала и возможных проблем с вариантами решения в Release Notes;
- способы и места ввода персональной информации, влияющей на ключ продукта: sql-инъекции, региональные языки, спец-символы и тэги, размер данных (пустые-нулевые, максимум-минимум, переполнение, граничные,..), формат (текст, число, дата,..) и маска (разделители дробей, времени, имя с большой буквы,..), полнота заполненности и обязательность полей;
- объём и содержание переданной информации для генерации ключа: необходимые и достаточные данные, поддержка региональных языков на сервере генерации ключа;
- объём и содержание переданного ключа пользователю: соответствие функционального набора оплаченным/заявленным опциям и полнота функционирования ограничений, защищённость передачи (файл прикреплён к e-mail письму, заархивирован с паролем, скачан с сайта производителя, код продиктован по телефону,..), поддержка в системе пользователя;
- техподдержка лицензии: автоматическая, регулярная, скрытая, ручной режим, оплата, база клиентов.
Как часто проводить тестирование лицензии?
- смена версии платной части (мажор, минор, релиз,..);
- смена условий оплаты всего продукта, его части или обслуживания;
- появление нового функционала, ограничиваемого ключом;
- изменение функционала, позволяющее несанкционированное использование;
- при обнаружении хакерских атак, подозрений на несанкционированное использование по результатам анализа обращений в техподдержку вашего и чужих продуктов.
понедельник, 19 ноября 2018 г.
ТО о CS 8.0.1.121
Отчёт тестирования первого билда (#121) новой мажорной версии (#8.0.1) продукта ClearSQL (далее - CS) от компании ConquestSS, опубликованного 12 ноября 2018 года. Последний билд предыдущей версии был выпущен пару месяцев назад, но это не значит, что текущую новую версию группа разработки сделала за столь короткий период. Обычно новшества следующей версии готовятся параллельно с фиксами багов в текущей. Проверки будут осуществляться по пунктам Release Notes новой версии с учётом аналогичных фиксов за полгода в предыдущей версии. Также, в самом приложении текст доступен в главном меню "Help / Release Notes". Оценка готовности билда производится в процентных баллах с учётом выявленных проблем.
NEW FEATURES 0.5+0.5+0.5+0.5=2 из 4 возможных
NEW: Metered License. A new license that provides a monthly subscription including 100.000 lines of code.
Новшество: Мерная лицензия. Новая лицензия допускает месячную подписку на 100000 строк кода.
Здесь стоит пояснить недочёт составителя RNs. Ежемесячная лицензия очень дешёвая (10$) и ограниченная не только по периоду использования, но и по количеству строк кода, которые можно переанализировать в рамках такой лицензии. Шестизначное число сначала кажется большим, но если разобраться, то этого количества вам может не хватить даже на один день работы. Из многолетнего опыта сотрудника тех.поддержки всех продуктов ConquestSS могу вас заверить, что средний пакет с телом в продуктах банковской или любой иной серьёзной сферы состоит из 2-3 тысяч строк, а в схеме таких пакетов обычно несколько тысяч. Так что, мерная лицензия никак не сопоставима с серьёзными организациями. Она может лишь заменить триальную версию. Весьма накладно доплачивать за каждый последующий десяток тысяч строк кода для анализа. Могу лишь согласиться с той мыслью, что такой тип лицензирования приучит программистов писать более короткий код. В плане функционального тестирования этого новшества ничего не могу предоставить из-за отсутствия у меня соответствующих прав. Но, зная систему программирования в ConquestSS, могу предположить, что баг с переводом дат (возврат назад до истечения периода) по-прежнему существует. Скорее всего и с подсчётом строк имеются проблемы, когда алгоритм неожиданно требует подключение к Интернету, а потом не может согласовать смену компьютера и передачу ключа соседу, или простенько обнуляется удалением особого ключа из реестра и файлика. Для вытягивания денег из пользователей CS такая новинка вполне вписывается в стиль ConquestSS-бизнесменов, а если посмотреть на нужды юзеров, то глубоко сомневаюсь, что мерная лицензия с подобными ограничениями станет популярной. Но если я ошибаюсь в понимании функционала, в чём виновато скудное его описание, то может случиться так, что на самом деле ограничение поставлено на каждый из анализируемых скриптов, подобно триальному в 300 строк, а не на общее количество строк во всех анализируемых скриптах. Тогда CS можно считать условно бесплатным приложением, что врядли позволят себе всегда жаждущие халявно наживиться владельцы CS. Кстати, действительно ли мерная лицензия считает строки кода со специальным символом в конце, а не строки файла с обычным переводом каретки в каждой? Поэтому даю лишь 0.5 балла. Если подтвердите мои догадки о багах, то снимайте баллы и за них. В частности, тестом на регрессию будет кейс утери файла ключа и возврат на триал или перевыбор лицензии.
Год назад со мной общался новый маркетолог компании и одним из моих предложений по раскручиванию продуктов был возврат к лицензиям аренды на месяц-квартал-полгода. Немного переиначив старый функционал разработчики ввели понятие мерной лицензии. Мне же, как идейному вдохновителю, ничего от этого не перепало. Вот и верь после этого в "честность бизнеса", которой постоянно бахвалится финдиректор.
NEW: Technical Debt. A new code metric to calculated an assumed cost of fixing structural imperfections in code.
Новшество: Технический долг. Новая метрика кода подсчитывает стоимость структурных изменений кода.
Новшество: Избегать дублирование кода. Новое правило проверки кода выявляет похожие строки кода или целые блоки, а также скрипты в проекта продукта.
Ранее, при импорте скриптов в проект CS дублирование скриптов проверялось лишь по его имени, либо во время синхронизации скрипта проекта с линкованным файлом или объектом БД. Теперь в число правил проверки кода добавили сравнение всех строк анализируемого кода на повторимость во всех скриптах, анализируемых в текущей сессии анализатора. Настройка правила имеет "точность" сравнения от 1 до 1000 строк. Лимиты сразу вызывают подозрение, поскольку не имеют значения "unlimited" для полного сравнения скриптов целиком (о фактических размерах которых уже говорилось выше). В начале 2017 года во время подготовки доклада для SQADays-21 у меня возникла идея, что хорошо было бы усовершенствовать диаграммы Flowchart поиском дубликатов, а в результате это предложение смогли сделать лишь в виде правила проверки кода. Хоть и не графически, но всё-таки помощь юзерам CS сделали. Конечно, с отображением и навигацией пока есть проблемы: из списка дубликатов сложно понять с каким конкретно скриптом и строкой имеются дублирования, а также при клике по этим строкам в результатах анализа перенос курсора работает не только в неописанном в хелпе способом, но и логически не понятном. Так что, новшество получает лишь 0.5 балла.
NEW: Quality Trend. A graphical chart representing a trend of issues detected during code analyses.
Новшество: Направление качества. График отображает скачки проблем, выявленных во время анализа кода.
Опять же, мне придётся доделать работу тех.писательницы и пояснить где и что конкретно появилось. В интерфейсе и отчёте по проекту добавлен график в число General, который формируется в трёх разрезах (скрипт, папка, проект), по фактическим датам анализа и показывает четыре линии (количество критичных и важных срабатываний проверок правил кодирования, количество красно-флаговых метрик кода, объёмы технического долга, количество ошибок парсера). Цветовая гамма и стиль графиков не имеют пользовательской настройки, а значения по-умолчанию далеки от логики и ассоциативного ряда. Также нет никакой возможности добавить или изменить графики чарта, поскольку у разных команд разработки качество может определяться и по иным параметрам. Демо-проект, поставляемый с инсталлятором CS показывает пустоту, хоть в истории проекта и скриптов имеются 1-2 анализа. Это признак того, что билд не проверялся даже в такой элементарности, как smoke-test for trial user. С большой натяжкой даю 0.5 балла.
IMPROVEMENTS 1.5+2.5+2.5+0+1.5+0+0+0+1+0+1+1+0+0.5=11.5 из 4+3+4+3+4+1+1+1+1+1+1+1+1+1=27 возможных, -0.5-6-0.5-1-0.5=-8.5 баллов за баги
Core 0.7+0+0.3+0.5=1.5 из 4 возможных, -0.5 за баг
• The new trial version of ClearSQL is now available without feature limitations and is active for 5 days.
Новая триальная версия CS теперь доступна без ограничения функционала и работает 5 дней.
Это значит, что триал сократился с 30 до 5 дней. Но с ограничениями функционала есть проблема: на самом деле только 300 строк кода каждого анализируемого скрипта могут быть отражены в результатах анализатора, то есть если вы надумаете перепроверить имеющийся скрипт "PACKAGE BODY ET_DEBUG" в демо-проекте, то результат Code Review и Structure View триальщику будет доступен лишь наполовину, потому что в скрипте изначально более 600 строк текста, то есть около 500 строк кода. Проверим регрессию. Диаграммы и матрицы визуализации кода все теперь без пустых блоков триала и ограничений в 300 строк. Также можно создать проект с количеством скриптов более 50 штук. А вот "градусник" оставшихся дней вводит в заблуждение, показывая 100% в первый день. Особое смущение юзера очевидно будет в несоответствии "градусника" на обновлённом старт-окне (заполняется то жёлтым, то оранжевым без показа процентов) и во всех иных местах продукта (синий уменьшается с величиной процентов и за два дня до окончания красится в красный). Конечно, ужесточение триала по времени сильное, но ConquestSS параллельно стал предоставлять мерную лицензию за дёшево. Жаждущие быстрых денег бизнесмены из ConquestSS подгоняют потенциальных покупателей коротким сроком триала, за время которого сложно понять надобность продукта. Изменение получает 0.7 балла за неполное описание, сдвиг функционала в отрицательную сторону для юзера.
• The service Annual Maintenance & Support is no longer automatically renewed for another period. Now it will get expired in a year but can be extended for another period upon request.
Сервис технической поддержки теперь больше не обновляется автоматически на следующий период. Теперь он заканчивается через год, но может быть продлён на иной запрашиваемый период.
Странно, что полезная для юзера функциональность отменена. С точки зрения бизнеса мне более разумным была бы смена автопродления при своевременной оплате на год, а не как было ранее - 1 или 2 или 3 года. Если у группы разработки в планах выпускать больше новых платных версий в год, а не пятилетку, то годовое ограничение вполне обосновано. Но отмена автоматизации, когда весь мир к ней бежит семимильными шагами, рисуется мне просто глупым шагом разработчиков. Антиполезное изменение не могу проверить функционально, так как не имею соответствующих лицензий и доступа к внутренней базе покупателей. Не могу дать ни балла за подобное вредительство в сфере всеобщей цифровизации.
• The usage of lines of code in a subscription is shown as a graph in the Startup and Analyzer Progress windows.
Использование строк кода по подписке показано графически в окнах старта CS и процесса анализа.
В рамках CS 8 существует два понятия о строках кода: функциональное количество по каждой подпрограмме и суммарное количество проанализированных строк всех проектов и скриптов. Скорее всего в этом пункте RNs речь идёт о втором варианте. Поскольку окно старта приложения и окно процесса анализа можно настроить невидимыми (выключить показ при запуске CS, а анализ запускать мгновенно и закрывать сразу по окончании), то информацию о параметрах мерной лицензии необходимо отображать в более привычных местах - "Options / Preferences / License Key" и "Help / About". Полагаю, в качестве графики имеется ввиду интерфейсный элемент "градусник", работающий аналогично с измерением оставшихся дней триала. Для проверки этого элемента стоит брать классы эквивалентности по дням лицензии (триал=0, 1, 2-27, 28-31, 32 и более) и количеству проанализированных строк (0, 1-99999, 100000, 100001 и более) по отдельности и в технике pairwise - совмещением периодов и количеств. К граничным значениям стоит приглядеться очень внимательно, потому что программисты в ConquestSS страдают проблемой знаков больше-меньше-равно. Функционально рекомендую проверить это изменение при отсутствии подключения к Интернету, поскольку сильно подразумеваю, что мерность лицензии контролируется на сервере ConquestSS. А в качестве перекрёстных тестов стоит перепроверить отображение количества проанализированных строк запуском модулей "OSD Check Messages and Updates". Не смотря на то, что у меня нет в наличии соответствующей лицензии, из-за неполноценного описания и реализации изменение получает лишь 0.3 балла.
• New startup window:
** Added the ability to buy a subscription plan from the application.
** Added a graph representing the status of the subscription plan.
** Redesigned the look&feel of the window.
Новое окно старта:
- Добавлена возможность покупать приложение по плану подписки.
- Добавлен графический показ статуса плана подписки.
- Изменён внешний вид окна.
По-моему, третий подпункт более информативен и по праву должен быть первым, поскольку окно кардинально сменило интерфейс с информативного на функциональный. Теперь в окно старта состоит из двух последовательно появляющихся и в них можно не только выбрать рабочий проект, но и лицензию. Не смогу вас заверить, что окно соответствует по UI и функционалу всем типам лицензий, поскольку не имею их в наличии. Но если у вас появится такая возможность (кроме встроенного триала купите мерную и постоянную лицензии и пакет AMS), то проведите комплекс тестов внешнего вида (UI-, usability-tests), полноты информации (access-test), точности и своевременности данных (function-test), скорости отклика и прорисовки (performance-, load-, stress-tests), вкупе с тестами предыдущего пункта изменений. Поскольку из приложения напрямую теперь можно докупать лицензию, то проверьте этот функционал при отсутствии и наличии подключения к Интернету. Цена на продукт ConquestSS обычно состоит из двух частей - лицензия и техподдержка, но обновлённое окно не доделано, потому что об AMS информации и обновлении забыли разработчики. Функционал кнопки "Open recent" не в состоянии позиционировать на нужном выборе, список моргает и курсор автоматически кликает без ведома юзера по ближайшему к нему проекту. Из всего вышеперечисленного могу дать за изменение только 0.5 балла и сниму -0.5 за баг.
Analyzer View 1+0.5+1=2.5 из 3 возможных
• Identification numbers of code review rules are now shown in the rationale panel on the Code Review tab.
Идентификационные номера правил проверки кода теперь показаны на панели с пояснениями к правилу на закладке результатов проверки правил кодирования.
Поскольку список контролируемых правил кодирования значительно увеличился в одной из прошлых версий и появилась возможность исключать проверку правил кодирования в конкретном скрипте по его номеру, то моим предложением было отобразить в списке выявленных проблем или в пояснениях к ним номер правила, который проще найти в общем списке, нежели полное наименование правила. Да и для исключения правила из скрипта важен лишь номер, а не наименование, который вписывается в специальный комментарий. Для проверки изменения откройте в интерфейсе CS панели "Script: Editor and Analyzer Info / Code Review" и "Summary / Code Review / Top Violated Code Review Rules", разверните их правые подпанели, переходите по таблице с результатами анализа слева и наблюдайте за изменением "Rule ID" справа. Для убедительности в корректности инфы сравните содержимое правой подпанели со списком правил кодирования в "Options / Code Analyzer Options / Code Review Options / General / Rule ID" сопоставляя их Title. Изменение полезное и выполнено, поэтому получает полный балл.
Поскольку однажды выданные номера встроенным правилам были распределены случайным образом, а пользовательские правила хоть и имеют нумерацию свыше 1000, но также сгруппированы по важности и назначению. Поэтому номера правил в самой таблице результатов анализатора не нужны. Для настройки исключений достаточно информации в панели Rationale.
• When a folder is selected, the Analyzer View tabs are now hidden as irrelevant. The tabs are shown only when a script is selected.
Когда выбрана папка закладки результатов анализа теперь скрываются как неуместные. Закладки показываются только для выбранного скрипта.
Поясню, что папки и скрипты выбирает юзер в дереве проекта, а закладки никуда не исчезают, а лишь очищают содержимое и выводят предупреждение о необходимости выбрать скрипт. На самом деле панели аналогично функционировали и ранее, а изменению подверглись лишь сообщения в пустых окнах. Поэтому пункт RNs получает лишь 0.5 балла.
• Added the section “Anonymous blocks” to “Structure View > Module Analysis”.
Добавлена секция анонимных блоков в структуру по анализированным модулям.
Для тестирования новшества понадобится скрипт с анонимными блоками. К сожалению, в демо-проекте нет соответствующего скрипта, поэтому сделайте его самостоятельно, скопировав в него любые несколько блоков BEGIN-END. После анализа такого срипта можно проверить результат на информативность и локализацию по клику. Не забудьте некоторые блоки префиксовать декларативной частью. Дополненный функционал получает балл.
Summary Info 0.3+1+0.7+0.5=2.5 из 4 возможных, за баги -6 баллов
• Thousands, millions, etc., in the summary results are now shown with the multiplier suffix, e.g. 100k, 2m.
Тысячи, миллионы и т.д. в суммарных результатах теперь показываются с мульти-суффиксом, например, 100к, 2м.
Указатели на частях чартов теперь показывают подсказки с соответствующими величинами.
Это изменение только интерфейсное, поскольку интерактивность панелей с чартами работает по клику на легенде диаграммы. Описанное сделано и билд получает балл.
• Moved the toolbar to the top of the Summary tab.
Тулбар закладки перемещён наверх.
Значительное изменение интерфейса - замена панели с подписанными кнопками на тулбар иконок - чуть добавили высоты этой закладке. Функционально изменилось лишь то, что теперь тулбар можно перенастроить, а кнопки печати по-умолчанию не видно. Поскольку эти подробности не описаны, то пункт RNs получает лишь 0.7 балла.
• Information about duplicate code is now shown on the Summary tab.
Информация о дубляжах кода теперь показывается на закладке суммарных итогов.
Подробнее - диаграммы на подзакладке General пополнились ещё одной Duplicates, показывающей количество повторяющихся строк, блоков и скриптов в проекте. Но понять эти цифры довольно сложно на примере демо-проекта, потому что срабатывающий фильтр на 6 скриптов отсеивает только три, тогда как в списке "Summary / Code Review / Top Violated Code Review Rules / Avoid duplicate code" для не фильтрованного дерева проекта перечислены 6 скриптов. Считаю это приобретённым багом. Изменение приносит лишь 0.5 балла.
SQL*Plus 0+0+0=0 из 3 возможных
• Optimized work of SQL*Plus.
Оптимизирована работа SQL*Plus.
Чем-то похоже на то, что это и следующее изменения были лишь копией программирования в предыдущей версии CS, поэтому в текущей версии о них не стоило упоминать. Но здесь формулировка весьма амбициозна, поскольку CS всего лишь отдаёт текстовый файл на исполнение в рамках стороннего!!! приложения. Неужели программисты ConquestSS вмешались в разработку от крупного вендора Oracle? Но, скорее всего, это всего лишь непонимание тех.писательницей того, что рассказал программист. Если бы вместо "of" было "with" в тексте RNs, то подобной претензии не было бы. Примечание: синхронизация линкованных объектов базы не использует SQL*Plus. Поскольку не указано, что именно изменилось (ускорено обращение с большими файлами, заменены или добавляются служебные символы [@/;], добавлена кодировка unicode или что-то иное подобное), то и проверять нечего. Двойная (опечатка, нет конкретики) проблема от тех.писательницы не даёт ни балла.
По-хорошему, давно пора отдать на волю юзера CS настройку для выбора стороннего приложения компиляции скриптов: SQL*Plus, sqldeveloper, SQLDetective.
• Improved messages related to the SQL*Plus feature.
Усовершенствованы сообщения, касающиеся фичи SQL*Plus.
Этот пункт был уже реализован в рамках последнего билда предыдущей версии, поэтому не получает ни балла.
• SQL*Plus options are now available on the Code Editor pop-up menu.
Опции SQL*Plus теперь доступны из контекстного меню редактора кода.
В данном случае тех.писательница допустила ошибку, выбрав термин options, а не features, потому что из контекстного меню редактора кода невозможно открыть страницу "Options / Preferences / SQL*Plus", но допустимо, как и в прошлом билде, запустить или закрыть SQL*Plus. Поэтому не дам ни балла.
Import Wizard 1+0.5+0+0=1.5 из 4 возможных, -0.5 за баг
• Accelerated the work of the options that hide/show system and sample schemas.
Ускорена работа опций, которые прячут/отображают системные схемы и примеры.
Опять тех.писательница "функционал" обзывает "настройками", поэтому ей в назидание сниму -0.5 за баг, путающий восприятие пользователя. Текущее изменение можно проверить нагрузочным тестом производительности, замерив скорости заполнения (перепостроения) дерева объектов при различных фильтрах на множество схем базы Oracle. Для полноты тестов и выявления регресса их необходимо сделать на всех поддерживаемых версиях БД (Oracle 9i и выше). Технически, такая правка заключается в сокращении ресурсов, необходимых для исполнения запроса к базе и в усовершенствовании интерфейсного элемента Delphi, отрисовывающего результаты этого запроса. Замеры времени можно выполнять тестами статики, беря у программиста напрямую тексты запросов или перехватывая их спец.утилитами, например, "SQLDetective / Session Navigator / Current Statement". К сожалению, у тестировщиков нет утилиты для измерения времени полной прорисовки и формирования интерфейсного элемента, поэтому нагрузку интерфейса проверять можно только собственными глазами и секундомером. На моих тестовых данных разницы в обращении к базе с прошлым билдом не замечено, а визуально подмечено лишь отсутствие лишних прорисовок для каждой ноды. Поэтому дам балл.
• Added the ability to search for files and objects in the file system and database.
Добавлена возможность искать файлы и объекты в файловой системе и базе данных.
Во-первых, поиск объектов и файлов появился не только в мастере импорта, но и в мастере для формирования нового проекта. Во-вторых, окно поиска имеет статус "поверх всех", за счёт чего перекрывает сторонние приложения. Поиск в файловой системе непонятно работает с деревом, отфильтрованным по расширению файлов, и не находит файлы по символам-заменителям (звёздочка, знак вопроса). Аналогичные проблемы и в дереве объектов базы. Новшество хоть и добавлено, но оно такое корявое, что от него никакой пользы. Поэтому даю лишь 0.5 балла.
• File extensions used in the filter are now shown on the status bar of the wizard.
Расширения файлов, использованные в фильтре, теперь показаны на строке состояния мастера.
Это абсолютно не является ни новшеством, ни правкой бага. Отображение расширений файлов, как фильтр существовало с самого начала. Пункт RNs - приписка, поэтому не дам ни балла.
• Updated the messages shown on trying to import scripts that already exist in the project.
Обновлено сообщение, показываемое при попытке импортнуть скрипты, которые уже есть в проекте.
Поскольку с предыдущим билдом нет никакой разницы, то этот пункт является дубликатом от параллельной разработки текущей и будущей версий CS. В этой версии не стоило включать его в RNs, поэтому ни балла.
Project Manager 0 из 1 возможного
• Html tags no longer appear in the captions of the Code Review filter.
HTML тэги больше не появляются в заголовках фильтра правил кодирования.
На самом деле это не нововведение и неисправление бага. Для воспроизведения бага откройте закладку Project Manager у дерева проекта, включите чекеры "Filter Enabled" и "OK Alert", выберите одно правило кодирования в комбобоксе блока "By Code Review", примените фильтр нажатием кнопки Apply. Затем перейдите в дерево проекта и наведите курсор на его строку статусов в области подписи "Filter:". В появившемся хинте отобразится лишний тэг. Пункт не прибавляет билду ни балла, являясь припиской.
Analyzer Progress 0 из 1 возможного
• Updated the information message shown before running a project analysis.
Обновлено информационное сообщение перед запуском анализа проекта.
Перед началом анализа может появиться несколько предупреждений в зависимости от выбранных параметров анализа (с форматированием или без, быстро или обычно, с диаграммами или без и тому подобные), но ни одно из них не изменило текст после предыдущего билда. Поэтому за приписку к RNs не могу дать ни балла.
Project Tree 0 из 1 возможного, -1 за старый баг
• On trying to save a project to another file, the user is now prompted to save changes to the current project.
При попытке сохранить проект в другой файл пользователя теперь просят сохранить изменения в текущем проекте.
Поскольку проект CS это не один файл, а целая композиция папок и файлов, то текст RNs не корректен: либо речь о переименовании проекта, либо о создании копии проекта с иным именем, либо о создании копии проекта в другом месте. Кстати, до сих пор невозможно сохранить проект с тем же именем, но в иной папке. За этот забытый баг имею право снять с билда балл. В предыдущем билде при наличии каких-либо изменений в проекте перед переименованием и сохранением копии проекта предлагается предварительно сохранить их. В текущем билде предупреждения работают аналогично, из чего заключаю, что пункт RNs - приписка, за которую нельзя дать ни балла.
Project Report Assistant 1 из 1 возможного
• When the project is filtered, the option to select the whole project for a report is now called “Include whole project (filtered)”.
Когда проект отфильтрован, опция выбора всего проекта для отчёта теперь называется "Включить весь проект (отфильтрованный)".
Примечание: переименована только опция в мастере генерации отчёта, а пункт главного меню не переименовывается. Это не баг, а логичное поведение приложения. Дополнение полезное и исполнено. Даю балл.
Project Report 0 из 1 возможного
• Removed group names from the Observations pages.
Удалены наименования групп из страниц замечаний.
К сожалению, мне - знатоку продукта с первых его дней - абсолютно не понятно о чём речь. Никаких наименований групп на страницах замечаний в отчёте по проекту никогда не было. За приписку баллов не даю.
Code Analyzer 1 из 1 возможного
• Package body variables are now included in Instrumented Code.
Переменные тела пакета теперь включены в инструментированный код.
Для исследования новшества можно воспользоваться "PACKAGE BODY ET_DEBUG" из демо-проекта, у которого есть переменные всего пакета, а не только у отдельных его подпрограмм. Для проанализированного скрипта откройте закладку "Script: Editor and Analyzer Info / Instrumented Code" и найдите в дереве ноду "Package Bodies / [ObjectName] / Assigns" и сверьте все её ветки со списком переменных, объявленных в теле пакета. Дополнение имеется и повышает готовность билда на балл.
Export Wizard 1 из 1 возможного, -0.5 за баг
• The image export format is now shown on the wizard’s status bar.
Формат экспорта картинок теперь показан на статусной строке мастера.
Стоит подсказать, что речь идёт только об экспорте диаграмм, возможном для Flowchart и Call Tree в разрезе скриптов и проекта, но не для чартов Summary. По-умолчанию, формат экспорта берётся из четырёх настроек для генерации диаграмм "Options / Code Analyzer Options / Diagram Options / Output Diagram Format", но при экспорте выбранных диаграмм формат можно поменять в мастере экспорта на закладке "Diagram Settings" - из пяти для Flowcharts или шести для Call Trees. Если в мастере экспорта диаграмм был изменён выходной формат, то эта опция не сохраняется/восстанавливается после переоткрытия окна/приложения. Это давнишняя недоработка после изменения интерфейса мастера добавлением настроек экспорта. Старая проблема снимает -0.5 балла с текущего билда. А полезное дополнение своим внедрением добавляет билду балл.
Code Editor 0 из 1 возможного
• The object owner is now added to default comments generated by ClearSQL on object import.
Владелец объекта теперь добавляется к дефолтным комментариям, генерируемым CS при импорте объекта.
В предыдущем билде в комментариях к импортируемому объекту имеются две строки без значений об имени объекта и его владельце. Такие же пустые комментарии добавляются и в текущем билде. Поэтому пункт RNs считаю припиской и балла не даю.
Project Analysis Report 0.5 из 1 возможного
• Added a new total value: the number of times a project has been analyzed.
Добавлена новая итоговая величина: количество анализов проекта.
Общее количество анализов проекта или некоторых его скриптов существовало давно в "Project Analysis History Report" отчёте, доступном из главного меню "Analyze / Analysis History Report". Но в текущей версии эта информация в конце таблицы обзавелась более подробной подписью. За такое несоответствие описания исполнению дам только 0.5 балла.
BUGS FIXED 0-1+0.5+1.3+0+1.8+0+0+0+0.7+0.7+0.7+0+0+0+0=4.7 из 2+2+5+4+2+2+1+2+2+1+1+1+1+1+1+1=29 возможных, -0.5-1.6-1-0.3=-3.4 за дополнительно выявленные баги
Core 0+0=0 из 2 возможных
• An access violation error no longer occurs when an application with a long title is running in Windows.
Ошибка доступа больше не случается, когда приложение с длинным заголовком запускается в окнах.
Копия проекта теперь сохраняется с новым именем, оканчивающимся словом "копия".
В одном из предыдущих тестов уже говорилось, что CS не позволяет делать копии проектов с тем же именем в любом месте (текущая папка или любая иная, в том числе и на ином диске). Дело в том, что внутренняя база приложения уникальность поддерживает лишь по имени проекта, а не его расположению. И пока этот архитектурный механизм будет оставаться глупым легаси, программисты из ConquestSS будут вынуждены "костылить". Видимо поэтому пункт RNs не в числе новшеств, а в группе багов, хотя по тексту явно тянет на усовершенствование, тем более, что исполнено было в одном из фикс-билдов предыдущей версии. Поэтому за дубляж не даю балл.
Call Trees -1+0=-1 из 2 возможных, -0.5 за баг
• Fixed generation of Call Trees for standalone procedures imported to a ClearSQL Project including their object owners.
Исправлена генерация деревьев вызовов для самостоятельных процедур, импортированных в проект CS с включенной опцией владельца объекта.
Из текста RNs не очень понятен смысл фикса. Будем разбираться через исследования. Для теста нам понадобятся не пакетные процедуры, обращающиеся к объектам БД (таблицы, подпрограммы), префиксованные именем владельца. Не обязательно импортировать такую процедуру из базы, достаточно написать пару вызовов вручную. Хотя в рамках комплексного тестирования можно перепроверить работу Мастера Импорта и его опции про владельца объекта. Предлагаю в качестве примеров следующие скрипты:
-------скрипт 1 с указанием владельцев объектов
create or replace procedure my_owner.my_proc
as
begin
insert into my_owner.my_table (num, prm) values (1, 'yes');
my_owner.my_func(5);
end;
-------скрипт 2 без владельцев объектов
create or replace procedure my_proc
as
begin
insert into my_table (num, prm) values (1, 'yes');
my_func(5);
end;
------скрипт 3 вызываемый объект с именем владельца
create or replace function my_owner.my_func (val1 in number) return varchar2
as
begin
return ('ok');
end;
------скрипт 4 вызываемый объект без имени владельца
create or replace function my_func (val1 in number) return varchar2
as
begin
return ('ok');
end;
Исправлена подсветка диаграмм вызовов в формате SVG.
Если сгенерить диаграммы кода в формате SVG, то при изменении позиции курсора доступна функция смены цвета связанных блоков. Для теста нам пригодятся скрипты, созданные ранее. Для проверки текущего фикса надо включить опцию "On mouse over: highlight connected elements (SVG type only!)" на странице "Options / Code Analyzer Optuons / Diagram Options / Call Tree", проверить выбранность формата SVG на странице "Options / Code Analyzer Optuons / Diagram Options", для применения глобальных установок выключить опцию "Options / Preferences / Project Analysis / Keep diagram/matrix local settings" и перегенерить диаграммы. Но поскольку тех.писательница не пояснила частность случая, то никаких перемен заметить не получится. Поэтому билд теряет балл за приписку.
Import Wizard 0+0+0-0.5+1=0.5 из 5 возможных
• Enabling “Hide system schemas” now removes all relevant nodes from the tree.
Включение опции "Спрятать системные схемы" теперь убирает все соответствующие ноды из дерева.
Правильнее было бы разместить этот пункт в числе усовершенствований и перечислить схемы, которые в определённых версиях базы расширили список системных объектов. Результаты тестов одного из предыдущих пунктов могло быть достаточно, если они проводились в разрезе поддерживаемых версий базы. К сожалению, у меня нет всех версий баз и исследовать подробности фикса мне не на чем. И поскольку тех.писательница не потрудилась описать подробности изменения функционала, то билд недополучает балл.
• Importing package specs with their package bodies no longer raises the warning message that such objects already exist.
Импортируемые спецификации пакета с пакетными телами больше не вызывают предупреждения о существовании такого же объекта.
Абсурд, что подобный баг мог быть. При импорте из базы скриптам со спецификацией и телом пакета даются различные расширения файлов и они получаются разноимёнными, даже если выключена опция "Options / Preferences / Main Window / Project Tree / Show file name with extension", распространяющая своё действие и на правое дерево в Мастере Импорта. Естественно, баг не воспроизводится в предыдущем билде и не приносит текущему балл.
• Scripts that have comments defined between the object type and object name are now imported correctly.
Скрипты с комментариями между объявлением объектного типа и именем объекта теперь импортируются корректно.
Поскольку импорт скиптов из файловой системы может лишь добавить комментарии в заголовок, то скорее всего этот фикс про импорт из базы данных. Зная, что содержимое (DDL) хранимых подпрограмм хранится в базе (смотрите системные вьювера SYS.ALL[DBA/USER]_SOURCES) построчно, начиная со служебного слова о типе объекта. Создать объект с комментариями между его объявлением и именем можно в Stored Program Editor продукта SQLDetective, но последующее переоткрытие такого объекта в этом редакторе может уничтожить добавленные комментарии. Создайте два объектных типа с однострочным и многострочным комментариями непосредственно перед именем и после служебного слова TYPE. Импорт из базы портит такие скрипты удалением многострочного комментария и недобавлением служебных слов CREATE OR REPLACE в скрипт с однострочным комментарием в одном из билдов предыдущей версии. А поскольку последний билд предыдущей версии импортит объектные типы с комментариями без порчи функциональности DDL, то текущий билд недополучает балл.
• Objects with similar names but different owners are now imported correctly.
Объекты с одинаковыми именами, но разными владельцами, теперь импортятся корректно.
Вопрос сразу к термину "корректно" - в чём может быть правильность и глючность такого процесса? Они попадали в единую папку или проверка источника не учитывала отдельные параметры? Тех.писательница прикрыла свою малограмотность запретным термином, при этом не раскрыла причины проблемы, что могло служить обходным путём на время существования бага. В предыдущем билде пытаемся воспроизвести ошибку для уточнения RNs. Мои тесты показали, что в процесс импорта одноимённых объектов от разных владельцев добавлена излишняя проверка на совпадение имён объектов, импортируемых в разные папки проекта. Ни о какой корректности речи не может быть. Балл дать за лишние проверки не могу, даже надо снять за такое -0.5.
• The option “Uncheck All” on the “From Database” tab is no longer available when nothing is selected in the tree.
Опция "Выключить Все" на закладке "Из Базы" больше не доступна, когда ничего не выбрано в дереве.
Интерфейсное изменение-подсказка о том, что ни одна из нод дерева не выбрана, могла бы вполне дополнить группу усовершенствований. Но если посмотреть на проблему с точки зрения стандартов интерфейса, то это исправлен баг контекстного меню, как элемента экрана. Фикс сделан и приносит балл.
Preferences 0+0+0.5+0.8=1.3 из 4 возможных
• Sorting of the summary code metrics is now reset to default correctly.
Сортировка итоговых метрик кода теперь возвращается к исходной корректно.
Интерфейс продукта показывает итоговые результаты анализа на закладке Summary, настройка сортировки, фильтров и группировок которой устанавливается на странице "Options / Preferences / Main Window / Summary". Текущий баг касается последней опции на этой странице, для управления которой необходимо проскроллировать в самый низ страницы и в блоке "Code Metrics" найдёте таблицу колонок для установки сортировки. Поскольку в Preferences устанавливаются опции глобально, то и они имеют некоторые свои исходные значения, которые можно восстановить тремя способами: удалить ветку реестра и файлы с настройками, либо выполнить "Reset / Reset All Pages to Default", либо "Reset / Reset Current Page to Default" в Preferences. Если пользователь CS сменит сортировку в таблице "Summary / Code Metrics - Details / Code Metrics", то она синхронизируется с Preferences. Примечание: настройки страницы "Options / Preferences / Main Window / Summary" никак не влияют на отображение итогов анализа по скрипту на дочерних закладках "Script: Editor and Analyzer Info". Тесты исправления проводить бесполезно, так как эта же правка числится в последнем билде предыдущей версии. Это значит, что тех.писательница не актуализировала RNs перед выпуском текущего билда, за что билд теряет балл.
• Default sorting of the summary code metrics in Preferences is set to Cyclomatic Complexity, descending and it no longer differs from the sorting on the Summary tab.
Сортировка суммарных метрик кода по-умолчанию в настройках приложения устанавливается по Cyclomatic Complexity в обратном порядке и она больше не отличается от сортировки на закладке Summary.
Аналогично с предыдущим пунктом RNs, это является дубликатом из последнего билда предыдущей версии CS, поэтому текущий билд также теряет балл из-за неактуализированных RNs.
• The eye icon now works correctly in the “Password” field of the Internet Connection page.
Иконка глаза теперь корректно работает в поле пароля на странице настроек подключения к Интернету.
Этот баг был обнаружен мной в результате проверок RNs двух предпоследних билдов CS 7.1.2. Но в моём ТО, кроме упомянутой страницы, речь шла и о поле пароля при подключении к базе данных. В обоих полях, открытых с имеющимся значением, при начале правки не стирались имеющиеся символы и не рисовалась иконка-глаз, а на странице настроек Интернета иконка-глаз вообще никогда не появлялась. Вторая проблема (регрессия) касалась сохранения введённого значения на странице настроек, когда оно не должно было запоминаться (окно закрывалось по крестику или кнопке Cancel) и её решение будем проверять в следующем пункте RNs. Текущий же фикс выполнен не полностью, то есть термин "корректно" здесь не уместен, потому что переключение со звёздочек на реальные символы возможно лишь при вводе значения в чистое поле. А редактирование имеющегося значения не отображает иконку-глаз и не стирает предыдущее значение, как это работает в окне подключения к базе данных и является наиболее правильным с точки зрения безопасности. За неполноценность правки даю лишь 0.5 балла. Но более логичнее было бы разместить это в блоке усовершенствований, как "добавление индикатора переключения кодировки вводимого пароля при настройке интернет-подключения".
• Unsaved preferences are no longer restored after restarting ClearSQL.
Несохранённые настройки больше не восстанавливаются после перезагрузки CS.
В данном случае формулировка понятна лишь мне, как репортеру бага регрессии, выявленного в одном из предыдущих билдов. Для воспроизведения бага лишнего сохранения опций на перезагрузке приложения придётся иметь лишь один-два предпоследних билда предыдущей версии, в котором изменить (дописать) имеющееся значение пароля на странице настроек интернет-подключения, закрыть окно настроек по крестику или кнопке Cancel, перезагрузить приложение без переоткрытия окна настроек и убедиться, что исправление в поле пароля сохранилось вне зависимости от того, что никакие данные не должны сохраняться при закрытии окна по нажатию на крестик или кнопку Cancel. В текущем билде значения не восстанавливаются ни после перезагрузки приложения, ни после переоткрытия окна (перепроверили регрессию), если до этого их не подразумевалось сохранять (окно закрывалось по крестику в правом верхнем углу или по кнопке Cancel). Примечание: окно настроек приложения не имеет отдельной кнопки Apply для применения и сохранения опций. Поскольку описание бага не конкретизировано для всех пользователей CS, то даю лишь 0.8 балла.
Code Analyzer Options 0+0=0 из 2 возможных, -1-0.1-0.5=-1.6 за баги
• The filter on the Code Review Options page is no longer hidden when DPI 125% and higher is applied.
Фильтр на странице опций правил кодирования больше не прячется при разрешении экрана в 125% и более.
Страница настроек анализатора со списком правил кодирования имеет множество интерфейсных элементов, часть из которых не масштабируются при смене разрешения экрана. Примечание: изменить настройки монитора без перезагрузки компа вы можете в операционной системе, каждая версия которой имеет свой путь к параметрам экрана. Изменять параметры экрана более корректно не при запущенном приложении. Поскольку опций на тестируемой странице стало много, то и минимальные размеры окна увеличились, но даже это не спасает страницу от пропадающих элементов. Кстати, минимальная ширина окна такова, что даже при 100%-ном разрешении экрана комбобокс фильтров всё-равно пропадает, если правая панель деталей развёрнута до малой видимости значений или левое дерево списка опций раздвинуто более необходимой ширины. Но эти вариации не стоит проверять, так как они не учтены программистом. Тестировать будем минимальный случай: левое дерево со списком страниц имеет минимальную ширину или всё свёрнуто, правая панель деталей свёрнута, всё окно имеет минимальные высоту и ширину. Откроем в предыдущем билде страницу настроек, сделаем снимок экрана, откроем эту же страницу в текущем билде и визуально сравним размеры видимых элементов. Они окажутся одинаковыми. Закроем CS, сменим разрешение экрана и проделаем те же вышеописанные шаги. Поскольку у моего компа максимальная высота экрана 768 пикселей, то весь низ окна, включая кнопки панели фильтров и тем более кнопки основного функционала всего окна, оказывается невидим без возможности скроллирования или изменения высоты окна. Это факт того, что блокирующий баг не позволяет мне протестировать текущий фикс. Поэтому билд недополучает балл за пункт RNs и теряет балл за блокер. А документацию продукта в области системных требований стоит расширить, введя минимальные размеры экрана, на котором пользователь смог бы работать в CS полноценно. При мне было введено ограничение по максимальной высоте окон, допустимое для поддерживаемых на тот момент операционных систем и популярных мониторов. В данном случае это ограничение либо забыто разработчиками, либо изменено по каким-то аналитическим данным, но не отражено в документации для пользователей.
• Clicking “Uncheck All” on the Code Review Options page and in the Rule Suppression Template Editor when a filter is applied now unchecks only filtered items.
Клик "Отключить все" на странице опций правил кодирования и в редакторе шаблонов скрываемых правил при применённом фильтре теперь отключает только фильтрованные позиции.
Функцию снятия выбора будем проверять раздельно и в пересечении (заодно перепроверим достаточно новый функционал на регрессию) на двух страницах настроек анализатора "Options / Code Analyzer Options / Code Review Options" и "Options / Code Analyzer Options / Code Review Options / Rule Violation Suppresion / Rule Supression Template Editor - Template [TemplateName]". Кстати, выявлена опечатка в имени страницы опций: есть - "Rule Violation Suppresion", надо - "Rule Violation Suppression". За такое сниму -0.1 балла. Страницу "Options / Code Analyzer Options / Code Review Options / Rule Violation Suppresion" также стоит проверить на аналогичный функционал, потому что конкретное действие выключения и включения всех подсвеченных позиций на ней предусмотрено пунктами контекстного меню "Enable/Disable Selected Rules". Стоит пояснить некоторые термины. Строки в этих таблицах подсвечиваются по экшену Select All контекстного меню (или кликом мыши при нажатых клавишах Ctrl или Shift), а чекеры в поле Enabled выставляются экшеном "Enable/Disable Selected Rules" или "Check/Uncheck All/Selection". По результатам моих тестов ни установка, ни сброс чекеров ничем не отличаются в предыдущем и текущем билдах при наличии и отсутствии фильтрации на всех трёх страницах. Это говорит о том, что баг в его конкретной формулировке не существовал. А за приписки RNs баллов не даю. Но также тесты выявили проблему с сохранением подсветки строк после смены условий фильтрации. Например, при нулевом фильтре подсветите несколько (10-20) первых строк, выберите фильтр с отсеиванием некоторых подсвеченных строк (Severity = Major). Как промежуточный результат теста вы заметите, что несколько первых отфильтрованных строк подсвечены. Далее выключите все подсвеченные правила (Disable All Selected), верните фильтр в нулевое состояние (Any = Enter filter criteria). Как подтверждение моей гипотезы о баге, некоторые первые строки, не вошедшие в предыдущий фильтр, не подсвечены и включены, а выключенные группой в предыдущем фильтре всё ещё подсвечены. Выявленные подробности тянут на интерфейсное несоответствие общепринятым правилам и вычитание -0.5 балла.
Summary Info 1+0.8=1.8 из 2 возможных, -1 за баг
• The maximize button is now available on all panels.
Кнопка максимизации теперь доступна на всех панелях.
Четыре панели с чартами из группы General закладки Summary с графическими результатами анализа не имели возможности разворачивания на всю рабочую область в предыдущем билде. Фикс сделан и приносит балл билду. Дефект был интерфейсный, поэтому смежный функционал в Project Report тестировать не имеет смысла. Но в то же время пришлось в очередной раз помучаться от бага на всех интерфейсных закладках Summary, не позволяющего просмотреть все имеющиеся данные. Дело в том, что при первом открытии в каждой сессии приложения на всех закладках Summary отсутствует вертикальный скроллер, а чтобы его активировать приходится максимизировать какую-нибудь из панелей закладки. За старый неправленный интерфейсный баг сниму балл.
• Script statuses now correctly fit in the “Folder, Scripts, Script Statuses” panel.
Статусы скриптов теперь корректно размещены на панели папок, скриптов и статусов.
В прошлом билде легенда чарта могла не полностью умещаться в минимальном размере панели. Но этот глюк можно приметить лишь на проектах со всеми возможными статусами скриптов. Эта конкретика не была прописана тех.писательницей, что приводит пользователя к недопониманию. Из-за такого наплевательского отношения кюзерам правка приносит билду не полный балл.
Project Tree 0 из 1 возможного, -0.3 за баг
• Clicking “Select None” now leaves one node selected, and the status of the “Analyze” and “Syntax check” options is now validated depending on the type of selection.
Выключения всех выборов теперь оставляет выбранной одну ноду и статусы опций для анализа и проверки синтаксиса теперь валидируются согласно типу выбора.
• Added explanation hints to the links on the Report Summary page.
Добавлены поясняющие хинты к линкам на странице итогов отчёта.
В отчёте по проекту первая страница состоит из итогов интерактивного отчёта. В нескольких таблицах собраны суммарные значения, к почти каждому из которых имеется линк, фильтрующий дерево отчёта. Если вы получите два отчёта по одинаковым демо-проектам, хоть и в разных версиях CS, но никакой разницы в наличии хинтов или их текстов обнаружить не получится. Так что, билд недополучает балл.
• Invalid or outdated diagrams and matrices in a project report are now marked with a red warning message.
Инвалидные или устаревшие диаграммы и матрицы в отчёте проекта теперь отмечены красным предупреждающим сообщением.
Странно, что это дополнение к отчёту проекта расположено в числе багов. Поясню два термина. Устаревшими диаграммы и матрицы становятся при внесении изменений в текст скрипта без последующей его компиляции. А инвалидными становятся при валидации имевшихся диаграмм и матриц без их генерации во время анализа изменённого кода. Устаревшие визуализаторы кода никак не отмечены в интерфейсе. Но если включена опция "Options / Preferences / Main Window / Visibility of Instant Help for Analyzer View Panels / Miscellaneous / Modified script warning", то в интерфейсе выдвигается целая панель с предупреждением, но в отчёте так ничего и не появилось. А инвалидные визуализаторы кода стали помечаться в отчёте ещё в начальных билдах предыдущей версии. Факт, но ничего описанного не сделано. Поэтому ноль баллов.
Split/Rename Project Script 0+0=0 из 2 возможных
• Fixed the error that is shown on trying to rename a non-txt script.
Исправлена ошибка, которая показывается при попытке переименовать нетекстовый скрипт.
Мастер переименования скрипта не доступен для нетекстовых скриптов, которыми могут быть canvases из числа Oracle Forms. Если же скрипт имеет любое не txt расширение, то это не мешает работе мастера по переименованию. Возможно более конкретное описание фикса или его причин позволили бы мне поглядеть на текст ошибки, но тех.писательница поскупилась на пояснения, из-за чего билд недополучает балл.
• Fixed the error message shown on trying to rename a script according to its object type.
Зафиксировано сообщение об ошибке, показываемое при попытке переименовать скрипт, согласно его объектного типа.
Скорее здесь имеется ввиду не имя самого скрипта, а в большей степени - расширение файла, которое настраивается в двух местах: 1) для импорта объектов из базы "Options / Preferences / New Project, Import and Link Manager / Database Source / Database Object File Extension Assigment"; 2) "Options / Code Analyzer Options / Code Review Options / File Extensions" - для сверки правила кодирования "78 - The object type doesn't correspond to the file extension". Переименовать скрипт можно вручную по двойному клику по ноде скрипта в дереве проекта или через контекстное меню "Rename", либо по правилу кодирования через мастер переименования, доступный из контекстного меню "Rename Script by Object Name and Type". О чём может быть сообщение при ошибочном переименовании? К сожалению, тех.писательница не уточнила, а наша тестерская фантазия и опыт может накидать безумное множество вариантов. Попробуем пару из них: присвоить имя или расширение, которое не соответствует правилу; переименуем в одноимённый, уже имеющийся в проекте или папке. Мастер переименований по правилу кодирования жёстко не ограничивает вручную введённое имя и расширение, а значит никаких сообщений об ошибке получить не сможем, кроме проверки на полное совпадение по имени и расширению с другим скриптом в этой же папке. Также сожалею, но никакой разницы в тексте этой ошибки в прошлой версии CS и текущей нет. Поэтому считаю пункт RNs припиской и балла не даю.
Project Manager 0.7 из 1 возможного
• Fixed the order of code review rules in the “By Code Review” filter.
Исправлен порядок правил кодирования в фильтре по ним.
Фикс является дубликатом из последнего билда прошлой версии. Для воспроизведения отсутствия сортировки правил по-алфавиту внутри каждой группы воспользуйтесь предпоследним билдом предыдущей версии приложения. За дубликат фикса и не конкретное описание могу дать лишь 0.7 балла. Примечание: для просмотра списка правил при настройке фильтра дерева проекта включите две галки "Project Manager / Filter / Filter Enabled" и "Project Manager / Filter / OK Alert", а потом сможете развернуть комбобокс в блоке "Project Manager / Filter / OK Alert / By Code Review".
Analysis History 0.7 из 1 возможного
• Summary charts are no longer duplicated.
Суммарные чарты больше не дублируются.
История анализов с отображением чартов интерфейсно имеется в двух разрезах - скриптовом и проектном. О какой из закладок анализатора речь - тех.писательница поленилась уточнить. Поэтому нам придётся искать баг в обеих. Полагаю, что это был какой-то частный случай, поскольку функционал довольно старый и в нём давно ничего не менялось. Поэтому вполне можем высказать тех.писательнице своё "фи-и-и" за отсутствие подробностей или причин бага. Ещё один минус этого пункта RNs в том, что сам фикс является дубликатом из последнего билда прошлой версии CS. По результатам моих исследований текст фикса должен был звучать иначе: "Легенды суммарного чарта больше не дублируются, а перерисовка всей панели графиков скриптового и проектного анализа больше не оставляет выключенные графики". Баг появился при переходе на два компилятора разной разрядности операционной системы. Почему его так долго не правили? Скорее всего никто из тестировщиков его не успел выявить, поскольку РМ понятия не имеет о правилах и объёмах регрессионного тестирования, но задачи отделу тестирования распределяет ежедневно сам. Полный балл дать никак не могу.
Analyzer View 0.7 из 1 возможного
• Fixed handling of the toolbar visibility, so the Analyzer View tabs no longer blink while a new license key is applied in Preferences.
Исправлена поддержка видимости тулбара, теперь закладки просмотра результатов анализа больше не моргают пока применяется лицензионный ключ в настройках приложения.
• The option “Revert Modifications” now works correctly.
Опция возврата редактирования теперь работает корректно.
Контекстное меню списка правил кодирования на странице "Options / Code Analyzer Options / Code Review Options" имеет функцию возврата изменений. Что именно имелось ввиду под термином "корректно", мне не удалось выяснить. Даже элементарный тест - выбрать одно включенное правило, сменить его важность, вернуть изменения - привело не только к возврату важности, но и зачем-то выключило его. Аналогичный результат теста в предыдущем и текущем билдах дают мне право считать пункт RNs припиской и не давать балл билду.
Toolbar 0 из 1 возможного
• The options “Unlink all scripts from the linked sources” and “Unlink selected items from the linked sources” no longer appear in the list of options that can be added to the Project Tree toolbar.
Опции "Отвязать все скрипты от источников привязки" и "Отвязать выбранные единицы от источников привязки" больше не появляются в списке опций, которые могли быть добавлены в тулбар дерева проекта.
Какая-то бурная фантазия тех.писательницы придумала этот текст, потому что настройка тулбара дерева проекта никогда не позволяла отобразить кнопки для массовой отлинковки. К тому же, она допустила ошибку, назвав функциональное действие опцией (настройкой). Да, перевод слова option подразумевает синоним действия, но в IT-документациях, как и в любых юридических документах, синонимами стоит оперировать очень аккуратно, чтобы не исказить смысл. За голимую приписку баллов не даю.
GUI 0 из 1 возможного
• Captions on the Code Review tab are now shown correctly when the Splash window is open.
Заголовки на закладке правил кодирования теперь показываются корректно, когда открыто временное окно.
Закладка по правилам кодирования имеется в двух местах: результаты анализа в разрезе скрипта, суммарные результаты анализа. Splash-окном в CS всегда считалось окно старта приложения, управляемое опцией "Options / Preferences / General / Application Startup (Launch) / Show splash (startup) window". В прошлой версии CS при открытии приложения всегда активной была закладка скрипта, то есть проблему никак не могли зарегистрировать на таблицу правил кодирования в рамках панели Summary. Текущий билд, как и предыдущий, при открытии CS отображает пустые панели результатов анализа скрипта, так как в любом открываемом проекте первоначально активна верхняя нода, равная папке. Никаких заголовков на пустой закладке не было и нет. Нечёткое описание фикса лишает билд балла.
Autofixes 0 из 1 возможного
• Autofixes are no longer lost when a new script version is created.
Автофиксы больше не теряются при создании новой версии скрипта.
Версия скрипта может добавиться в трёх случаях: вручную на закладке "Script: Editor and Analyzer Info / Versions", после инструментирования кода на закладке "Script: Editor and Analyzer Info / Instrumented Code", после синхронизации линкованного скрипта с его источником в файловой системе или базе данных. Для получения списка автофиксов скрипта достаточно проанализировать хранимую подпрограмму без указания её имени после служебного слова END в конце кода. Первый вариант никуда не девает автофиксы и оставляет статус скрипта. Второй вариант оставляет автофиксы и меняет статус скрипта в изменённый. Третий вариант обнуляет список автофиксов и меняет статус скрипта в изменённый. Все три варианта одинаковы в предыдущей и текущей версиях CS. Вывод: баг не исправлен, описание не конкретизировано. Баллы давать не за что.
Итого по билду: набрано 2+11.5+4.7=18.2 баллов из 4+27+29=60 возможных, что даёт 18.2/60~30% готовности, но при этом за баги билд теряет -8.5-3.4=-11.9 баллов.
NEW FEATURES 0.5+0.5+0.5+0.5=2 из 4 возможных
NEW: Metered License. A new license that provides a monthly subscription including 100.000 lines of code.
Новшество: Мерная лицензия. Новая лицензия допускает месячную подписку на 100000 строк кода.
Здесь стоит пояснить недочёт составителя RNs. Ежемесячная лицензия очень дешёвая (10$) и ограниченная не только по периоду использования, но и по количеству строк кода, которые можно переанализировать в рамках такой лицензии. Шестизначное число сначала кажется большим, но если разобраться, то этого количества вам может не хватить даже на один день работы. Из многолетнего опыта сотрудника тех.поддержки всех продуктов ConquestSS могу вас заверить, что средний пакет с телом в продуктах банковской или любой иной серьёзной сферы состоит из 2-3 тысяч строк, а в схеме таких пакетов обычно несколько тысяч. Так что, мерная лицензия никак не сопоставима с серьёзными организациями. Она может лишь заменить триальную версию. Весьма накладно доплачивать за каждый последующий десяток тысяч строк кода для анализа. Могу лишь согласиться с той мыслью, что такой тип лицензирования приучит программистов писать более короткий код. В плане функционального тестирования этого новшества ничего не могу предоставить из-за отсутствия у меня соответствующих прав. Но, зная систему программирования в ConquestSS, могу предположить, что баг с переводом дат (возврат назад до истечения периода) по-прежнему существует. Скорее всего и с подсчётом строк имеются проблемы, когда алгоритм неожиданно требует подключение к Интернету, а потом не может согласовать смену компьютера и передачу ключа соседу, или простенько обнуляется удалением особого ключа из реестра и файлика. Для вытягивания денег из пользователей CS такая новинка вполне вписывается в стиль ConquestSS-бизнесменов, а если посмотреть на нужды юзеров, то глубоко сомневаюсь, что мерная лицензия с подобными ограничениями станет популярной. Но если я ошибаюсь в понимании функционала, в чём виновато скудное его описание, то может случиться так, что на самом деле ограничение поставлено на каждый из анализируемых скриптов, подобно триальному в 300 строк, а не на общее количество строк во всех анализируемых скриптах. Тогда CS можно считать условно бесплатным приложением, что врядли позволят себе всегда жаждущие халявно наживиться владельцы CS. Кстати, действительно ли мерная лицензия считает строки кода со специальным символом в конце, а не строки файла с обычным переводом каретки в каждой? Поэтому даю лишь 0.5 балла. Если подтвердите мои догадки о багах, то снимайте баллы и за них. В частности, тестом на регрессию будет кейс утери файла ключа и возврат на триал или перевыбор лицензии.
Год назад со мной общался новый маркетолог компании и одним из моих предложений по раскручиванию продуктов был возврат к лицензиям аренды на месяц-квартал-полгода. Немного переиначив старый функционал разработчики ввели понятие мерной лицензии. Мне же, как идейному вдохновителю, ничего от этого не перепало. Вот и верь после этого в "честность бизнеса", которой постоянно бахвалится финдиректор.
NEW: Technical Debt. A new code metric to calculated an assumed cost of fixing structural imperfections in code.
Новшество: Технический долг. Новая метрика кода подсчитывает стоимость структурных изменений кода.
В результатах анализа кода в таблицу с метриками кода и в некоторые графики добавлен показатель, просчитывающий так называемый технический долг разработчика PL/SQL кода. Формула и параметры расчёта описаны во встроенной справке для страницы "Options / Code Analyzer Options / Code Metrics Options / Technical Debt", но, как видите сами, тех.писательница поленилась упомянуть всё это в RNs. В справке сразу бросаются в глаза двойные символы процента.
![]() |
| Проблемный текст помощника |
Нигде не сказано, на какие исследования ссылается вывод об избранной формуле для расчёта технического долга. Также нет возможности корректировать формулу, даже изменяемые в опциях параметры не отображают своего фактического значения в формуле, что даёт повод подозревать применимость лишь дефолтных значений. Все иные метрики, изменяемые на странице выше "Options / Code Analyzer Options / Code Metrics Options", моментально отображаются во встроенной справке и имеют ссылки на официальные документы и исследования. Выявленные недоработки позволяют мне дать лишь 0.5 балла за новшество.
NEW: “Avoid duplicate code.” A new code review rule detecting similar lines of code, blocks, and scripts in a ClearSQL project.Новшество: Избегать дублирование кода. Новое правило проверки кода выявляет похожие строки кода или целые блоки, а также скрипты в проекта продукта.
Ранее, при импорте скриптов в проект CS дублирование скриптов проверялось лишь по его имени, либо во время синхронизации скрипта проекта с линкованным файлом или объектом БД. Теперь в число правил проверки кода добавили сравнение всех строк анализируемого кода на повторимость во всех скриптах, анализируемых в текущей сессии анализатора. Настройка правила имеет "точность" сравнения от 1 до 1000 строк. Лимиты сразу вызывают подозрение, поскольку не имеют значения "unlimited" для полного сравнения скриптов целиком (о фактических размерах которых уже говорилось выше). В начале 2017 года во время подготовки доклада для SQADays-21 у меня возникла идея, что хорошо было бы усовершенствовать диаграммы Flowchart поиском дубликатов, а в результате это предложение смогли сделать лишь в виде правила проверки кода. Хоть и не графически, но всё-таки помощь юзерам CS сделали. Конечно, с отображением и навигацией пока есть проблемы: из списка дубликатов сложно понять с каким конкретно скриптом и строкой имеются дублирования, а также при клике по этим строкам в результатах анализа перенос курсора работает не только в неописанном в хелпе способом, но и логически не понятном. Так что, новшество получает лишь 0.5 балла.
NEW: Quality Trend. A graphical chart representing a trend of issues detected during code analyses.
Новшество: Направление качества. График отображает скачки проблем, выявленных во время анализа кода.
Опять же, мне придётся доделать работу тех.писательницы и пояснить где и что конкретно появилось. В интерфейсе и отчёте по проекту добавлен график в число General, который формируется в трёх разрезах (скрипт, папка, проект), по фактическим датам анализа и показывает четыре линии (количество критичных и важных срабатываний проверок правил кодирования, количество красно-флаговых метрик кода, объёмы технического долга, количество ошибок парсера). Цветовая гамма и стиль графиков не имеют пользовательской настройки, а значения по-умолчанию далеки от логики и ассоциативного ряда. Также нет никакой возможности добавить или изменить графики чарта, поскольку у разных команд разработки качество может определяться и по иным параметрам. Демо-проект, поставляемый с инсталлятором CS показывает пустоту, хоть в истории проекта и скриптов имеются 1-2 анализа. Это признак того, что билд не проверялся даже в такой элементарности, как smoke-test for trial user. С большой натяжкой даю 0.5 балла.
IMPROVEMENTS 1.5+2.5+2.5+0+1.5+0+0+0+1+0+1+1+0+0.5=11.5 из 4+3+4+3+4+1+1+1+1+1+1+1+1+1=27 возможных, -0.5-6-0.5-1-0.5=-8.5 баллов за баги
Core 0.7+0+0.3+0.5=1.5 из 4 возможных, -0.5 за баг
• The new trial version of ClearSQL is now available without feature limitations and is active for 5 days.
Новая триальная версия CS теперь доступна без ограничения функционала и работает 5 дней.
Это значит, что триал сократился с 30 до 5 дней. Но с ограничениями функционала есть проблема: на самом деле только 300 строк кода каждого анализируемого скрипта могут быть отражены в результатах анализатора, то есть если вы надумаете перепроверить имеющийся скрипт "PACKAGE BODY ET_DEBUG" в демо-проекте, то результат Code Review и Structure View триальщику будет доступен лишь наполовину, потому что в скрипте изначально более 600 строк текста, то есть около 500 строк кода. Проверим регрессию. Диаграммы и матрицы визуализации кода все теперь без пустых блоков триала и ограничений в 300 строк. Также можно создать проект с количеством скриптов более 50 штук. А вот "градусник" оставшихся дней вводит в заблуждение, показывая 100% в первый день. Особое смущение юзера очевидно будет в несоответствии "градусника" на обновлённом старт-окне (заполняется то жёлтым, то оранжевым без показа процентов) и во всех иных местах продукта (синий уменьшается с величиной процентов и за два дня до окончания красится в красный). Конечно, ужесточение триала по времени сильное, но ConquestSS параллельно стал предоставлять мерную лицензию за дёшево. Жаждущие быстрых денег бизнесмены из ConquestSS подгоняют потенциальных покупателей коротким сроком триала, за время которого сложно понять надобность продукта. Изменение получает 0.7 балла за неполное описание, сдвиг функционала в отрицательную сторону для юзера.
• The service Annual Maintenance & Support is no longer automatically renewed for another period. Now it will get expired in a year but can be extended for another period upon request.
Сервис технической поддержки теперь больше не обновляется автоматически на следующий период. Теперь он заканчивается через год, но может быть продлён на иной запрашиваемый период.
Странно, что полезная для юзера функциональность отменена. С точки зрения бизнеса мне более разумным была бы смена автопродления при своевременной оплате на год, а не как было ранее - 1 или 2 или 3 года. Если у группы разработки в планах выпускать больше новых платных версий в год, а не пятилетку, то годовое ограничение вполне обосновано. Но отмена автоматизации, когда весь мир к ней бежит семимильными шагами, рисуется мне просто глупым шагом разработчиков. Антиполезное изменение не могу проверить функционально, так как не имею соответствующих лицензий и доступа к внутренней базе покупателей. Не могу дать ни балла за подобное вредительство в сфере всеобщей цифровизации.
• The usage of lines of code in a subscription is shown as a graph in the Startup and Analyzer Progress windows.
Использование строк кода по подписке показано графически в окнах старта CS и процесса анализа.
В рамках CS 8 существует два понятия о строках кода: функциональное количество по каждой подпрограмме и суммарное количество проанализированных строк всех проектов и скриптов. Скорее всего в этом пункте RNs речь идёт о втором варианте. Поскольку окно старта приложения и окно процесса анализа можно настроить невидимыми (выключить показ при запуске CS, а анализ запускать мгновенно и закрывать сразу по окончании), то информацию о параметрах мерной лицензии необходимо отображать в более привычных местах - "Options / Preferences / License Key" и "Help / About". Полагаю, в качестве графики имеется ввиду интерфейсный элемент "градусник", работающий аналогично с измерением оставшихся дней триала. Для проверки этого элемента стоит брать классы эквивалентности по дням лицензии (триал=0, 1, 2-27, 28-31, 32 и более) и количеству проанализированных строк (0, 1-99999, 100000, 100001 и более) по отдельности и в технике pairwise - совмещением периодов и количеств. К граничным значениям стоит приглядеться очень внимательно, потому что программисты в ConquestSS страдают проблемой знаков больше-меньше-равно. Функционально рекомендую проверить это изменение при отсутствии подключения к Интернету, поскольку сильно подразумеваю, что мерность лицензии контролируется на сервере ConquestSS. А в качестве перекрёстных тестов стоит перепроверить отображение количества проанализированных строк запуском модулей "OSD Check Messages and Updates". Не смотря на то, что у меня нет в наличии соответствующей лицензии, из-за неполноценного описания и реализации изменение получает лишь 0.3 балла.
• New startup window:
** Added the ability to buy a subscription plan from the application.
** Added a graph representing the status of the subscription plan.
** Redesigned the look&feel of the window.
Новое окно старта:
- Добавлена возможность покупать приложение по плану подписки.
- Добавлен графический показ статуса плана подписки.
- Изменён внешний вид окна.
По-моему, третий подпункт более информативен и по праву должен быть первым, поскольку окно кардинально сменило интерфейс с информативного на функциональный. Теперь в окно старта состоит из двух последовательно появляющихся и в них можно не только выбрать рабочий проект, но и лицензию. Не смогу вас заверить, что окно соответствует по UI и функционалу всем типам лицензий, поскольку не имею их в наличии. Но если у вас появится такая возможность (кроме встроенного триала купите мерную и постоянную лицензии и пакет AMS), то проведите комплекс тестов внешнего вида (UI-, usability-tests), полноты информации (access-test), точности и своевременности данных (function-test), скорости отклика и прорисовки (performance-, load-, stress-tests), вкупе с тестами предыдущего пункта изменений. Поскольку из приложения напрямую теперь можно докупать лицензию, то проверьте этот функционал при отсутствии и наличии подключения к Интернету. Цена на продукт ConquestSS обычно состоит из двух частей - лицензия и техподдержка, но обновлённое окно не доделано, потому что об AMS информации и обновлении забыли разработчики. Функционал кнопки "Open recent" не в состоянии позиционировать на нужном выборе, список моргает и курсор автоматически кликает без ведома юзера по ближайшему к нему проекту. Из всего вышеперечисленного могу дать за изменение только 0.5 балла и сниму -0.5 за баг.
Analyzer View 1+0.5+1=2.5 из 3 возможных
• Identification numbers of code review rules are now shown in the rationale panel on the Code Review tab.
Идентификационные номера правил проверки кода теперь показаны на панели с пояснениями к правилу на закладке результатов проверки правил кодирования.
Поскольку список контролируемых правил кодирования значительно увеличился в одной из прошлых версий и появилась возможность исключать проверку правил кодирования в конкретном скрипте по его номеру, то моим предложением было отобразить в списке выявленных проблем или в пояснениях к ним номер правила, который проще найти в общем списке, нежели полное наименование правила. Да и для исключения правила из скрипта важен лишь номер, а не наименование, который вписывается в специальный комментарий. Для проверки изменения откройте в интерфейсе CS панели "Script: Editor and Analyzer Info / Code Review" и "Summary / Code Review / Top Violated Code Review Rules", разверните их правые подпанели, переходите по таблице с результатами анализа слева и наблюдайте за изменением "Rule ID" справа. Для убедительности в корректности инфы сравните содержимое правой подпанели со списком правил кодирования в "Options / Code Analyzer Options / Code Review Options / General / Rule ID" сопоставляя их Title. Изменение полезное и выполнено, поэтому получает полный балл.
Поскольку однажды выданные номера встроенным правилам были распределены случайным образом, а пользовательские правила хоть и имеют нумерацию свыше 1000, но также сгруппированы по важности и назначению. Поэтому номера правил в самой таблице результатов анализатора не нужны. Для настройки исключений достаточно информации в панели Rationale.
• When a folder is selected, the Analyzer View tabs are now hidden as irrelevant. The tabs are shown only when a script is selected.
Когда выбрана папка закладки результатов анализа теперь скрываются как неуместные. Закладки показываются только для выбранного скрипта.
Поясню, что папки и скрипты выбирает юзер в дереве проекта, а закладки никуда не исчезают, а лишь очищают содержимое и выводят предупреждение о необходимости выбрать скрипт. На самом деле панели аналогично функционировали и ранее, а изменению подверглись лишь сообщения в пустых окнах. Поэтому пункт RNs получает лишь 0.5 балла.
• Added the section “Anonymous blocks” to “Structure View > Module Analysis”.
Добавлена секция анонимных блоков в структуру по анализированным модулям.
Для тестирования новшества понадобится скрипт с анонимными блоками. К сожалению, в демо-проекте нет соответствующего скрипта, поэтому сделайте его самостоятельно, скопировав в него любые несколько блоков BEGIN-END. После анализа такого срипта можно проверить результат на информативность и локализацию по клику. Не забудьте некоторые блоки префиксовать декларативной частью. Дополненный функционал получает балл.
Summary Info 0.3+1+0.7+0.5=2.5 из 4 возможных, за баги -6 баллов
• Thousands, millions, etc., in the summary results are now shown with the multiplier suffix, e.g. 100k, 2m.
Тысячи, миллионы и т.д. в суммарных результатах теперь показываются с мульти-суффиксом, например, 100к, 2м.
Суммарные данные по проекту CS вполне могут быть более четырёх знаков, поскольку рабочие скрипты обычно намного больше ста строк и проекты могут состоять из сотен тысяч подпрограмм. Поскольку триал теперь ограничивается лишь 300 строками кода в каждом скрипте, то попробуем создать проект с количеством скриптов, более 50, а лучше несколько тысяч. Для генерации данных нагрузочного теста можно экспортнуть ("Tools / Export / Export Scripts" с включенной опцией "Keep project folder structure in the target folder") все скрипты (60 штук) демо-проекта в файловую систему, там сделать двадцать копий головной папки (~1200 скриптов и 380 папок) и уже эту кучу папок и файлов импортнуть ("Tools / Import / Import Files" с включенной опцией "Folders and files" и выключенной опцией "Ignore wrapped") в новый проект. Тут подметим сопутствующий баг в мастере импорта скриптов, который перестал отслеживать одноимённые файлы скриптов. После полного анализа такого монстр-проекта обследуем результаты в окне Analyzer Progress, на закладках CRUD2, All Flowcharts, All Call Trees, Project Analysis History, Summary, Project Report и экспортированные таблицы и диаграммы. Этот список намного превышает единственную закладку итогов анализа, потому что данные во всём приложении должны отображаться консистентно, иначе это приложение нельзя считать единым продуктом, а лишь набором различных утилит. В окнах Analyzer Progress, Project Analysis History и экспортируемых таблицах никакие цифры не округляются суффиксом, да и понятно почему - в этих случаях важны точные данные. Но попутно выявился интерфейсный баг выравнивания числовых данных не по правому краю, а по левому, что не соответствует общепринятым правилам.
![]() |
Желтым отмечены числа без новых постфиксов, сиреневым - неудобное выравнивание цифровых величин |
CRUD2 результаты получились сильно урезанными из-за неучтённых копий скриптов, а линки на объекты из матрицы ведут лишь на первый в дереве проекта объект. Деревья диаграмм и матриц так и продолжают показывать количества без мульти-суффикса, причём одноимённые объекты расширены нумерацией лишь в списке All Flowcharts. Из всех чартов и таблиц на закладке Summary только пять ("Folders, Scripts, Script Statuses", Code", "Diagrams", "Duplicates" кроме тех.долга, "Synchronizatuon") приобрели вышеозначенные суффиксы. Идентично данные показаны и в Project Report, который странным образом подвисает при стопроцентной готовности. Вроде бы изменение сделано, но при этом утеряна точность данных, которые можно было бы показать полностью в хинте либо добавить настройку в приложение для отображения больших чисел в диаграммах на манер с суффиксом или полностью с определённой точностью. В очередной раз не вижу исправления на закладке Summary, все подзакладки которой открываются без вертикального скроллинга. Выход из положения есть - максимизировать и вернуть размер какой-нибудь диаграммы, но это приходится выполнять после каждого открытия программы и об этом нигде не сказано. Как пользователь, не вижу приобретённых удобств в приложении, заведующем качеством кода. Не полноценное описание пункта RNs и фактически бесполезное изменение продукта добавляет билду лишь 0.3 балла, а из-за выявленных багов билд теряет 6 баллов.
• Pointing on the parts of a pie chart now shows hints with the corresponding values.Указатели на частях чартов теперь показывают подсказки с соответствующими величинами.
Это изменение только интерфейсное, поскольку интерактивность панелей с чартами работает по клику на легенде диаграммы. Описанное сделано и билд получает балл.
• Moved the toolbar to the top of the Summary tab.
Тулбар закладки перемещён наверх.
Значительное изменение интерфейса - замена панели с подписанными кнопками на тулбар иконок - чуть добавили высоты этой закладке. Функционально изменилось лишь то, что теперь тулбар можно перенастроить, а кнопки печати по-умолчанию не видно. Поскольку эти подробности не описаны, то пункт RNs получает лишь 0.7 балла.
• Information about duplicate code is now shown on the Summary tab.
Информация о дубляжах кода теперь показывается на закладке суммарных итогов.
Подробнее - диаграммы на подзакладке General пополнились ещё одной Duplicates, показывающей количество повторяющихся строк, блоков и скриптов в проекте. Но понять эти цифры довольно сложно на примере демо-проекта, потому что срабатывающий фильтр на 6 скриптов отсеивает только три, тогда как в списке "Summary / Code Review / Top Violated Code Review Rules / Avoid duplicate code" для не фильтрованного дерева проекта перечислены 6 скриптов. Считаю это приобретённым багом. Изменение приносит лишь 0.5 балла.
SQL*Plus 0+0+0=0 из 3 возможных
• Optimized work of SQL*Plus.
Оптимизирована работа SQL*Plus.
Чем-то похоже на то, что это и следующее изменения были лишь копией программирования в предыдущей версии CS, поэтому в текущей версии о них не стоило упоминать. Но здесь формулировка весьма амбициозна, поскольку CS всего лишь отдаёт текстовый файл на исполнение в рамках стороннего!!! приложения. Неужели программисты ConquestSS вмешались в разработку от крупного вендора Oracle? Но, скорее всего, это всего лишь непонимание тех.писательницей того, что рассказал программист. Если бы вместо "of" было "with" в тексте RNs, то подобной претензии не было бы. Примечание: синхронизация линкованных объектов базы не использует SQL*Plus. Поскольку не указано, что именно изменилось (ускорено обращение с большими файлами, заменены или добавляются служебные символы [@/;], добавлена кодировка unicode или что-то иное подобное), то и проверять нечего. Двойная (опечатка, нет конкретики) проблема от тех.писательницы не даёт ни балла.
По-хорошему, давно пора отдать на волю юзера CS настройку для выбора стороннего приложения компиляции скриптов: SQL*Plus, sqldeveloper, SQLDetective.
• Improved messages related to the SQL*Plus feature.
Усовершенствованы сообщения, касающиеся фичи SQL*Plus.
Этот пункт был уже реализован в рамках последнего билда предыдущей версии, поэтому не получает ни балла.
• SQL*Plus options are now available on the Code Editor pop-up menu.
Опции SQL*Plus теперь доступны из контекстного меню редактора кода.
В данном случае тех.писательница допустила ошибку, выбрав термин options, а не features, потому что из контекстного меню редактора кода невозможно открыть страницу "Options / Preferences / SQL*Plus", но допустимо, как и в прошлом билде, запустить или закрыть SQL*Plus. Поэтому не дам ни балла.
Import Wizard 1+0.5+0+0=1.5 из 4 возможных, -0.5 за баг
• Accelerated the work of the options that hide/show system and sample schemas.
Ускорена работа опций, которые прячут/отображают системные схемы и примеры.
Опять тех.писательница "функционал" обзывает "настройками", поэтому ей в назидание сниму -0.5 за баг, путающий восприятие пользователя. Текущее изменение можно проверить нагрузочным тестом производительности, замерив скорости заполнения (перепостроения) дерева объектов при различных фильтрах на множество схем базы Oracle. Для полноты тестов и выявления регресса их необходимо сделать на всех поддерживаемых версиях БД (Oracle 9i и выше). Технически, такая правка заключается в сокращении ресурсов, необходимых для исполнения запроса к базе и в усовершенствовании интерфейсного элемента Delphi, отрисовывающего результаты этого запроса. Замеры времени можно выполнять тестами статики, беря у программиста напрямую тексты запросов или перехватывая их спец.утилитами, например, "SQLDetective / Session Navigator / Current Statement". К сожалению, у тестировщиков нет утилиты для измерения времени полной прорисовки и формирования интерфейсного элемента, поэтому нагрузку интерфейса проверять можно только собственными глазами и секундомером. На моих тестовых данных разницы в обращении к базе с прошлым билдом не замечено, а визуально подмечено лишь отсутствие лишних прорисовок для каждой ноды. Поэтому дам балл.
• Added the ability to search for files and objects in the file system and database.
Добавлена возможность искать файлы и объекты в файловой системе и базе данных.
Во-первых, поиск объектов и файлов появился не только в мастере импорта, но и в мастере для формирования нового проекта. Во-вторых, окно поиска имеет статус "поверх всех", за счёт чего перекрывает сторонние приложения. Поиск в файловой системе непонятно работает с деревом, отфильтрованным по расширению файлов, и не находит файлы по символам-заменителям (звёздочка, знак вопроса). Аналогичные проблемы и в дереве объектов базы. Новшество хоть и добавлено, но оно такое корявое, что от него никакой пользы. Поэтому даю лишь 0.5 балла.
• File extensions used in the filter are now shown on the status bar of the wizard.
Расширения файлов, использованные в фильтре, теперь показаны на строке состояния мастера.
Это абсолютно не является ни новшеством, ни правкой бага. Отображение расширений файлов, как фильтр существовало с самого начала. Пункт RNs - приписка, поэтому не дам ни балла.
• Updated the messages shown on trying to import scripts that already exist in the project.
Обновлено сообщение, показываемое при попытке импортнуть скрипты, которые уже есть в проекте.
Поскольку с предыдущим билдом нет никакой разницы, то этот пункт является дубликатом от параллельной разработки текущей и будущей версий CS. В этой версии не стоило включать его в RNs, поэтому ни балла.
Project Manager 0 из 1 возможного
• Html tags no longer appear in the captions of the Code Review filter.
HTML тэги больше не появляются в заголовках фильтра правил кодирования.
На самом деле это не нововведение и неисправление бага. Для воспроизведения бага откройте закладку Project Manager у дерева проекта, включите чекеры "Filter Enabled" и "OK Alert", выберите одно правило кодирования в комбобоксе блока "By Code Review", примените фильтр нажатием кнопки Apply. Затем перейдите в дерево проекта и наведите курсор на его строку статусов в области подписи "Filter:". В появившемся хинте отобразится лишний тэг. Пункт не прибавляет билду ни балла, являясь припиской.
Analyzer Progress 0 из 1 возможного
• Updated the information message shown before running a project analysis.
Обновлено информационное сообщение перед запуском анализа проекта.
Перед началом анализа может появиться несколько предупреждений в зависимости от выбранных параметров анализа (с форматированием или без, быстро или обычно, с диаграммами или без и тому подобные), но ни одно из них не изменило текст после предыдущего билда. Поэтому за приписку к RNs не могу дать ни балла.
Project Tree 0 из 1 возможного, -1 за старый баг
• On trying to save a project to another file, the user is now prompted to save changes to the current project.
При попытке сохранить проект в другой файл пользователя теперь просят сохранить изменения в текущем проекте.
Поскольку проект CS это не один файл, а целая композиция папок и файлов, то текст RNs не корректен: либо речь о переименовании проекта, либо о создании копии проекта с иным именем, либо о создании копии проекта в другом месте. Кстати, до сих пор невозможно сохранить проект с тем же именем, но в иной папке. За этот забытый баг имею право снять с билда балл. В предыдущем билде при наличии каких-либо изменений в проекте перед переименованием и сохранением копии проекта предлагается предварительно сохранить их. В текущем билде предупреждения работают аналогично, из чего заключаю, что пункт RNs - приписка, за которую нельзя дать ни балла.
Project Report Assistant 1 из 1 возможного
• When the project is filtered, the option to select the whole project for a report is now called “Include whole project (filtered)”.
Когда проект отфильтрован, опция выбора всего проекта для отчёта теперь называется "Включить весь проект (отфильтрованный)".
Примечание: переименована только опция в мастере генерации отчёта, а пункт главного меню не переименовывается. Это не баг, а логичное поведение приложения. Дополнение полезное и исполнено. Даю балл.
Project Report 0 из 1 возможного
• Removed group names from the Observations pages.
Удалены наименования групп из страниц замечаний.
К сожалению, мне - знатоку продукта с первых его дней - абсолютно не понятно о чём речь. Никаких наименований групп на страницах замечаний в отчёте по проекту никогда не было. За приписку баллов не даю.
Code Analyzer 1 из 1 возможного
• Package body variables are now included in Instrumented Code.
Переменные тела пакета теперь включены в инструментированный код.
Для исследования новшества можно воспользоваться "PACKAGE BODY ET_DEBUG" из демо-проекта, у которого есть переменные всего пакета, а не только у отдельных его подпрограмм. Для проанализированного скрипта откройте закладку "Script: Editor and Analyzer Info / Instrumented Code" и найдите в дереве ноду "Package Bodies / [ObjectName] / Assigns" и сверьте все её ветки со списком переменных, объявленных в теле пакета. Дополнение имеется и повышает готовность билда на балл.
Export Wizard 1 из 1 возможного, -0.5 за баг
• The image export format is now shown on the wizard’s status bar.
Формат экспорта картинок теперь показан на статусной строке мастера.
Стоит подсказать, что речь идёт только об экспорте диаграмм, возможном для Flowchart и Call Tree в разрезе скриптов и проекта, но не для чартов Summary. По-умолчанию, формат экспорта берётся из четырёх настроек для генерации диаграмм "Options / Code Analyzer Options / Diagram Options / Output Diagram Format", но при экспорте выбранных диаграмм формат можно поменять в мастере экспорта на закладке "Diagram Settings" - из пяти для Flowcharts или шести для Call Trees. Если в мастере экспорта диаграмм был изменён выходной формат, то эта опция не сохраняется/восстанавливается после переоткрытия окна/приложения. Это давнишняя недоработка после изменения интерфейса мастера добавлением настроек экспорта. Старая проблема снимает -0.5 балла с текущего билда. А полезное дополнение своим внедрением добавляет билду балл.
Code Editor 0 из 1 возможного
• The object owner is now added to default comments generated by ClearSQL on object import.
Владелец объекта теперь добавляется к дефолтным комментариям, генерируемым CS при импорте объекта.
В предыдущем билде в комментариях к импортируемому объекту имеются две строки без значений об имени объекта и его владельце. Такие же пустые комментарии добавляются и в текущем билде. Поэтому пункт RNs считаю припиской и балла не даю.
Project Analysis Report 0.5 из 1 возможного
• Added a new total value: the number of times a project has been analyzed.
Добавлена новая итоговая величина: количество анализов проекта.
Общее количество анализов проекта или некоторых его скриптов существовало давно в "Project Analysis History Report" отчёте, доступном из главного меню "Analyze / Analysis History Report". Но в текущей версии эта информация в конце таблицы обзавелась более подробной подписью. За такое несоответствие описания исполнению дам только 0.5 балла.
BUGS FIXED 0-1+0.5+1.3+0+1.8+0+0+0+0.7+0.7+0.7+0+0+0+0=4.7 из 2+2+5+4+2+2+1+2+2+1+1+1+1+1+1+1=29 возможных, -0.5-1.6-1-0.3=-3.4 за дополнительно выявленные баги
Core 0+0=0 из 2 возможных
• An access violation error no longer occurs when an application with a long title is running in Windows.
Ошибка доступа больше не случается, когда приложение с длинным заголовком запускается в окнах.
Во-первых, следовало уточнить, что под термином "Окна" имелась ввиду операционная система OS Windows. Во-вторых, это уточнение излишне, так как CS может работать только в OS Windows, а в иных операционных системах необходимо предварительно запустить эмулятор OS Windows. Но, возможно баг проявлялся лишь в 32-битном или 64-битном приложении, поэтому присмотримся к обоим вариантам. Поскольку заголовок приложения состоит из имён CS и открытого в нём проекта, то для воспроизведения бага создадим проект с одним скриптом (или без них вообще) и очень длинным именем этого проекта в предыдущем билде или версии CS. Но в самом CS создать имя проекта, допустимое для папок и файлов операционной системы не получится, так как имеется обработка (предупреждает о 260 символах, но позволяет меньше). Поэтому для подобного негативного теста придётся в файловой системе вручную переименовать папку и файл рабочего проекта длиной в 259 символов, а в приложении выбрать этот проект. Да, как и предполагалось, 32-битное приложение прошлой версии ругается ошибкой про кодировку, а 64-битное - ошибкой доступа.
| Максимально длинное имя проекта |
Но ошибка на самом деле не в отображении длинной строки в заголовке приложения, а в попытке записать эти предельно большие данные во внутреннюю базу приложения. Так что, при формулировке бага тех.писательница оплошала дважды. Проверяя баг в текущем билде обоих вариаций битности, обнаруживаем полное отсутствие фикса. К тому же, окошко процесса загрузки проекта в приложение не может вместить полное наименование проекта. С полной ответственностью могу заявить, что данный пункт RNs - приписка, поэтому не даю ни балла. А если бы это был тривиальный случай, а не негативный тест, то можно было бы и снять балл.
• A project copy is now saved under a new name with the postfix “copy”.Копия проекта теперь сохраняется с новым именем, оканчивающимся словом "копия".
В одном из предыдущих тестов уже говорилось, что CS не позволяет делать копии проектов с тем же именем в любом месте (текущая папка или любая иная, в том числе и на ином диске). Дело в том, что внутренняя база приложения уникальность поддерживает лишь по имени проекта, а не его расположению. И пока этот архитектурный механизм будет оставаться глупым легаси, программисты из ConquestSS будут вынуждены "костылить". Видимо поэтому пункт RNs не в числе новшеств, а в группе багов, хотя по тексту явно тянет на усовершенствование, тем более, что исполнено было в одном из фикс-билдов предыдущей версии. Поэтому за дубляж не даю балл.
Call Trees -1+0=-1 из 2 возможных, -0.5 за баг
• Fixed generation of Call Trees for standalone procedures imported to a ClearSQL Project including their object owners.
Исправлена генерация деревьев вызовов для самостоятельных процедур, импортированных в проект CS с включенной опцией владельца объекта.
Из текста RNs не очень понятен смысл фикса. Будем разбираться через исследования. Для теста нам понадобятся не пакетные процедуры, обращающиеся к объектам БД (таблицы, подпрограммы), префиксованные именем владельца. Не обязательно импортировать такую процедуру из базы, достаточно написать пару вызовов вручную. Хотя в рамках комплексного тестирования можно перепроверить работу Мастера Импорта и его опции про владельца объекта. Предлагаю в качестве примеров следующие скрипты:
-------скрипт 1 с указанием владельцев объектов
create or replace procedure my_owner.my_proc
as
begin
insert into my_owner.my_table (num, prm) values (1, 'yes');
my_owner.my_func(5);
end;
-------скрипт 2 без владельцев объектов
create or replace procedure my_proc
as
begin
insert into my_table (num, prm) values (1, 'yes');
my_func(5);
end;
------скрипт 3 вызываемый объект с именем владельца
create or replace function my_owner.my_func (val1 in number) return varchar2
as
begin
return ('ok');
end;
------скрипт 4 вызываемый объект без имени владельца
create or replace function my_func (val1 in number) return varchar2
as
begin
return ('ok');
end;
Создаём проект в предыдущей версии CS, анализируем все четыре скрипта и оцениваем все объекты с Деревьями вызовов. Далее открываем текущий билд, анализируем этот же проект дважды - первый с удалением Call Tree диаграмм и второй с их генерацией для полной уверенности, что они переформируются. В предыдущей и текущей версиях самостоятельная (не пакетная) функция оказалась в группе пакетов, где имя владельца функции распозналось как имя пакета.
![]() |
| Разница и одинаковые проблемы в деревьях вызовов |
Это баг парсера и фактически показывает, что в основном-то баг и не исправлен. Для полной убедительности в отсутствии фикса добавим два скрипта вызываемых процедур и допишем в первые два скрипта их вызовы. Самостоятельные функции и процедуры с указанием владельца всегда парсируются как пакетные объекты, вместо самостоятельных. В том виде, как фикс описан в RNs, он абсолютно не исправлен, поэтому не только не дам балл, но и сниму ещё один за некорректную работу парсера. Единственное заметное изменение в дереве вызовов - это добавленные подпапки со списком зависимых объектов. Но такое новшество должно было быть описано в группе усовершенствований. И поскольку этого нет в RNs, то сниму с билда ещё -0.5 балла.
• Fixed highlighting of Call Tree diagrams in SVG format.Исправлена подсветка диаграмм вызовов в формате SVG.
Если сгенерить диаграммы кода в формате SVG, то при изменении позиции курсора доступна функция смены цвета связанных блоков. Для теста нам пригодятся скрипты, созданные ранее. Для проверки текущего фикса надо включить опцию "On mouse over: highlight connected elements (SVG type only!)" на странице "Options / Code Analyzer Optuons / Diagram Options / Call Tree", проверить выбранность формата SVG на странице "Options / Code Analyzer Optuons / Diagram Options", для применения глобальных установок выключить опцию "Options / Preferences / Project Analysis / Keep diagram/matrix local settings" и перегенерить диаграммы. Но поскольку тех.писательница не пояснила частность случая, то никаких перемен заметить не получится. Поэтому билд теряет балл за приписку.
Import Wizard 0+0+0-0.5+1=0.5 из 5 возможных
• Enabling “Hide system schemas” now removes all relevant nodes from the tree.
Включение опции "Спрятать системные схемы" теперь убирает все соответствующие ноды из дерева.
Правильнее было бы разместить этот пункт в числе усовершенствований и перечислить схемы, которые в определённых версиях базы расширили список системных объектов. Результаты тестов одного из предыдущих пунктов могло быть достаточно, если они проводились в разрезе поддерживаемых версий базы. К сожалению, у меня нет всех версий баз и исследовать подробности фикса мне не на чем. И поскольку тех.писательница не потрудилась описать подробности изменения функционала, то билд недополучает балл.
• Importing package specs with their package bodies no longer raises the warning message that such objects already exist.
Импортируемые спецификации пакета с пакетными телами больше не вызывают предупреждения о существовании такого же объекта.
Абсурд, что подобный баг мог быть. При импорте из базы скриптам со спецификацией и телом пакета даются различные расширения файлов и они получаются разноимёнными, даже если выключена опция "Options / Preferences / Main Window / Project Tree / Show file name with extension", распространяющая своё действие и на правое дерево в Мастере Импорта. Естественно, баг не воспроизводится в предыдущем билде и не приносит текущему балл.
• Scripts that have comments defined between the object type and object name are now imported correctly.
Скрипты с комментариями между объявлением объектного типа и именем объекта теперь импортируются корректно.
Поскольку импорт скиптов из файловой системы может лишь добавить комментарии в заголовок, то скорее всего этот фикс про импорт из базы данных. Зная, что содержимое (DDL) хранимых подпрограмм хранится в базе (смотрите системные вьювера SYS.ALL[DBA/USER]_SOURCES) построчно, начиная со служебного слова о типе объекта. Создать объект с комментариями между его объявлением и именем можно в Stored Program Editor продукта SQLDetective, но последующее переоткрытие такого объекта в этом редакторе может уничтожить добавленные комментарии. Создайте два объектных типа с однострочным и многострочным комментариями непосредственно перед именем и после служебного слова TYPE. Импорт из базы портит такие скрипты удалением многострочного комментария и недобавлением служебных слов CREATE OR REPLACE в скрипт с однострочным комментарием в одном из билдов предыдущей версии. А поскольку последний билд предыдущей версии импортит объектные типы с комментариями без порчи функциональности DDL, то текущий билд недополучает балл.
• Objects with similar names but different owners are now imported correctly.
Объекты с одинаковыми именами, но разными владельцами, теперь импортятся корректно.
Вопрос сразу к термину "корректно" - в чём может быть правильность и глючность такого процесса? Они попадали в единую папку или проверка источника не учитывала отдельные параметры? Тех.писательница прикрыла свою малограмотность запретным термином, при этом не раскрыла причины проблемы, что могло служить обходным путём на время существования бага. В предыдущем билде пытаемся воспроизвести ошибку для уточнения RNs. Мои тесты показали, что в процесс импорта одноимённых объектов от разных владельцев добавлена излишняя проверка на совпадение имён объектов, импортируемых в разные папки проекта. Ни о какой корректности речи не может быть. Балл дать за лишние проверки не могу, даже надо снять за такое -0.5.
• The option “Uncheck All” on the “From Database” tab is no longer available when nothing is selected in the tree.
Опция "Выключить Все" на закладке "Из Базы" больше не доступна, когда ничего не выбрано в дереве.
Интерфейсное изменение-подсказка о том, что ни одна из нод дерева не выбрана, могла бы вполне дополнить группу усовершенствований. Но если посмотреть на проблему с точки зрения стандартов интерфейса, то это исправлен баг контекстного меню, как элемента экрана. Фикс сделан и приносит балл.
Preferences 0+0+0.5+0.8=1.3 из 4 возможных
• Sorting of the summary code metrics is now reset to default correctly.
Сортировка итоговых метрик кода теперь возвращается к исходной корректно.
Интерфейс продукта показывает итоговые результаты анализа на закладке Summary, настройка сортировки, фильтров и группировок которой устанавливается на странице "Options / Preferences / Main Window / Summary". Текущий баг касается последней опции на этой странице, для управления которой необходимо проскроллировать в самый низ страницы и в блоке "Code Metrics" найдёте таблицу колонок для установки сортировки. Поскольку в Preferences устанавливаются опции глобально, то и они имеют некоторые свои исходные значения, которые можно восстановить тремя способами: удалить ветку реестра и файлы с настройками, либо выполнить "Reset / Reset All Pages to Default", либо "Reset / Reset Current Page to Default" в Preferences. Если пользователь CS сменит сортировку в таблице "Summary / Code Metrics - Details / Code Metrics", то она синхронизируется с Preferences. Примечание: настройки страницы "Options / Preferences / Main Window / Summary" никак не влияют на отображение итогов анализа по скрипту на дочерних закладках "Script: Editor and Analyzer Info". Тесты исправления проводить бесполезно, так как эта же правка числится в последнем билде предыдущей версии. Это значит, что тех.писательница не актуализировала RNs перед выпуском текущего билда, за что билд теряет балл.
• Default sorting of the summary code metrics in Preferences is set to Cyclomatic Complexity, descending and it no longer differs from the sorting on the Summary tab.
Сортировка суммарных метрик кода по-умолчанию в настройках приложения устанавливается по Cyclomatic Complexity в обратном порядке и она больше не отличается от сортировки на закладке Summary.
Аналогично с предыдущим пунктом RNs, это является дубликатом из последнего билда предыдущей версии CS, поэтому текущий билд также теряет балл из-за неактуализированных RNs.
• The eye icon now works correctly in the “Password” field of the Internet Connection page.
Иконка глаза теперь корректно работает в поле пароля на странице настроек подключения к Интернету.
Этот баг был обнаружен мной в результате проверок RNs двух предпоследних билдов CS 7.1.2. Но в моём ТО, кроме упомянутой страницы, речь шла и о поле пароля при подключении к базе данных. В обоих полях, открытых с имеющимся значением, при начале правки не стирались имеющиеся символы и не рисовалась иконка-глаз, а на странице настроек Интернета иконка-глаз вообще никогда не появлялась. Вторая проблема (регрессия) касалась сохранения введённого значения на странице настроек, когда оно не должно было запоминаться (окно закрывалось по крестику или кнопке Cancel) и её решение будем проверять в следующем пункте RNs. Текущий же фикс выполнен не полностью, то есть термин "корректно" здесь не уместен, потому что переключение со звёздочек на реальные символы возможно лишь при вводе значения в чистое поле. А редактирование имеющегося значения не отображает иконку-глаз и не стирает предыдущее значение, как это работает в окне подключения к базе данных и является наиболее правильным с точки зрения безопасности. За неполноценность правки даю лишь 0.5 балла. Но более логичнее было бы разместить это в блоке усовершенствований, как "добавление индикатора переключения кодировки вводимого пароля при настройке интернет-подключения".
• Unsaved preferences are no longer restored after restarting ClearSQL.
Несохранённые настройки больше не восстанавливаются после перезагрузки CS.
В данном случае формулировка понятна лишь мне, как репортеру бага регрессии, выявленного в одном из предыдущих билдов. Для воспроизведения бага лишнего сохранения опций на перезагрузке приложения придётся иметь лишь один-два предпоследних билда предыдущей версии, в котором изменить (дописать) имеющееся значение пароля на странице настроек интернет-подключения, закрыть окно настроек по крестику или кнопке Cancel, перезагрузить приложение без переоткрытия окна настроек и убедиться, что исправление в поле пароля сохранилось вне зависимости от того, что никакие данные не должны сохраняться при закрытии окна по нажатию на крестик или кнопку Cancel. В текущем билде значения не восстанавливаются ни после перезагрузки приложения, ни после переоткрытия окна (перепроверили регрессию), если до этого их не подразумевалось сохранять (окно закрывалось по крестику в правом верхнем углу или по кнопке Cancel). Примечание: окно настроек приложения не имеет отдельной кнопки Apply для применения и сохранения опций. Поскольку описание бага не конкретизировано для всех пользователей CS, то даю лишь 0.8 балла.
Code Analyzer Options 0+0=0 из 2 возможных, -1-0.1-0.5=-1.6 за баги
• The filter on the Code Review Options page is no longer hidden when DPI 125% and higher is applied.
Фильтр на странице опций правил кодирования больше не прячется при разрешении экрана в 125% и более.
Страница настроек анализатора со списком правил кодирования имеет множество интерфейсных элементов, часть из которых не масштабируются при смене разрешения экрана. Примечание: изменить настройки монитора без перезагрузки компа вы можете в операционной системе, каждая версия которой имеет свой путь к параметрам экрана. Изменять параметры экрана более корректно не при запущенном приложении. Поскольку опций на тестируемой странице стало много, то и минимальные размеры окна увеличились, но даже это не спасает страницу от пропадающих элементов. Кстати, минимальная ширина окна такова, что даже при 100%-ном разрешении экрана комбобокс фильтров всё-равно пропадает, если правая панель деталей развёрнута до малой видимости значений или левое дерево списка опций раздвинуто более необходимой ширины. Но эти вариации не стоит проверять, так как они не учтены программистом. Тестировать будем минимальный случай: левое дерево со списком страниц имеет минимальную ширину или всё свёрнуто, правая панель деталей свёрнута, всё окно имеет минимальные высоту и ширину. Откроем в предыдущем билде страницу настроек, сделаем снимок экрана, откроем эту же страницу в текущем билде и визуально сравним размеры видимых элементов. Они окажутся одинаковыми. Закроем CS, сменим разрешение экрана и проделаем те же вышеописанные шаги. Поскольку у моего компа максимальная высота экрана 768 пикселей, то весь низ окна, включая кнопки панели фильтров и тем более кнопки основного функционала всего окна, оказывается невидим без возможности скроллирования или изменения высоты окна. Это факт того, что блокирующий баг не позволяет мне протестировать текущий фикс. Поэтому билд недополучает балл за пункт RNs и теряет балл за блокер. А документацию продукта в области системных требований стоит расширить, введя минимальные размеры экрана, на котором пользователь смог бы работать в CS полноценно. При мне было введено ограничение по максимальной высоте окон, допустимое для поддерживаемых на тот момент операционных систем и популярных мониторов. В данном случае это ограничение либо забыто разработчиками, либо изменено по каким-то аналитическим данным, но не отражено в документации для пользователей.
• Clicking “Uncheck All” on the Code Review Options page and in the Rule Suppression Template Editor when a filter is applied now unchecks only filtered items.
Клик "Отключить все" на странице опций правил кодирования и в редакторе шаблонов скрываемых правил при применённом фильтре теперь отключает только фильтрованные позиции.
Функцию снятия выбора будем проверять раздельно и в пересечении (заодно перепроверим достаточно новый функционал на регрессию) на двух страницах настроек анализатора "Options / Code Analyzer Options / Code Review Options" и "Options / Code Analyzer Options / Code Review Options / Rule Violation Suppresion / Rule Supression Template Editor - Template [TemplateName]". Кстати, выявлена опечатка в имени страницы опций: есть - "Rule Violation Suppresion", надо - "Rule Violation Suppression". За такое сниму -0.1 балла. Страницу "Options / Code Analyzer Options / Code Review Options / Rule Violation Suppresion" также стоит проверить на аналогичный функционал, потому что конкретное действие выключения и включения всех подсвеченных позиций на ней предусмотрено пунктами контекстного меню "Enable/Disable Selected Rules". Стоит пояснить некоторые термины. Строки в этих таблицах подсвечиваются по экшену Select All контекстного меню (или кликом мыши при нажатых клавишах Ctrl или Shift), а чекеры в поле Enabled выставляются экшеном "Enable/Disable Selected Rules" или "Check/Uncheck All/Selection". По результатам моих тестов ни установка, ни сброс чекеров ничем не отличаются в предыдущем и текущем билдах при наличии и отсутствии фильтрации на всех трёх страницах. Это говорит о том, что баг в его конкретной формулировке не существовал. А за приписки RNs баллов не даю. Но также тесты выявили проблему с сохранением подсветки строк после смены условий фильтрации. Например, при нулевом фильтре подсветите несколько (10-20) первых строк, выберите фильтр с отсеиванием некоторых подсвеченных строк (Severity = Major). Как промежуточный результат теста вы заметите, что несколько первых отфильтрованных строк подсвечены. Далее выключите все подсвеченные правила (Disable All Selected), верните фильтр в нулевое состояние (Any = Enter filter criteria). Как подтверждение моей гипотезы о баге, некоторые первые строки, не вошедшие в предыдущий фильтр, не подсвечены и включены, а выключенные группой в предыдущем фильтре всё ещё подсвечены. Выявленные подробности тянут на интерфейсное несоответствие общепринятым правилам и вычитание -0.5 балла.
Summary Info 1+0.8=1.8 из 2 возможных, -1 за баг
• The maximize button is now available on all panels.
Кнопка максимизации теперь доступна на всех панелях.
Четыре панели с чартами из группы General закладки Summary с графическими результатами анализа не имели возможности разворачивания на всю рабочую область в предыдущем билде. Фикс сделан и приносит балл билду. Дефект был интерфейсный, поэтому смежный функционал в Project Report тестировать не имеет смысла. Но в то же время пришлось в очередной раз помучаться от бага на всех интерфейсных закладках Summary, не позволяющего просмотреть все имеющиеся данные. Дело в том, что при первом открытии в каждой сессии приложения на всех закладках Summary отсутствует вертикальный скроллер, а чтобы его активировать приходится максимизировать какую-нибудь из панелей закладки. За старый неправленный интерфейсный баг сниму балл.
• Script statuses now correctly fit in the “Folder, Scripts, Script Statuses” panel.
Статусы скриптов теперь корректно размещены на панели папок, скриптов и статусов.
В прошлом билде легенда чарта могла не полностью умещаться в минимальном размере панели. Но этот глюк можно приметить лишь на проектах со всеми возможными статусами скриптов. Эта конкретика не была прописана тех.писательницей, что приводит пользователя к недопониманию. Из-за такого наплевательского отношения кюзерам правка приносит билду не полный балл.
Project Tree 0 из 1 возможного, -0.3 за баг
• Clicking “Select None” now leaves one node selected, and the status of the “Analyze” and “Syntax check” options is now validated depending on the type of selection.
Выключения всех выборов теперь оставляет выбранной одну ноду и статусы опций для анализа и проверки синтаксиса теперь валидируются согласно типу выбора.
В дереве проекта существует довольно сложная система подсветки и выбора нод: для анализа скрипта и отображения аналитической информации достаточно на него поставить курсор или подсветить несколько нод (CTRL/SHIFT + MouseClick; удерживая левую кнопку мыши обозначить область выделения - LeftMouseDrag - так можно подсветить ноды скриптов и папок, но без выбора папок), выставление чекера папки выбирает все входящие в неё скрипты и саму папку для последующего анализа или отображения, печати результатов анализа. Подсвечивание папки без включенного чекера не позволяет проанализировать или вывести в отчёт её содержимое, но показывает суммарную информацию в интерфейсах. При выполнении экшена по снятию всех выделений текущий курсор мыши может быть на папке, скрипте, корзине или пустом пространстве дерева. Если подсвечено несколько нод, то текущую визуально можно определить по серо-точечному контуру. К сожалению, все тестовые вариация показали идентичную работу предыдущей и текущей версий дерева проекта. За отсутствие изменений балл дать не могу. К тому же остался интерфейсный баг, когда нода корзины излишне подсвечивается после снятия всех выделений. Ещё одна проблема с выбором нод приводит к казусу, когда корзина никак не подсвечена, но в отчёт почему-то пихают её, а не верхнюю папку.
![]() |
| Отчёт по невыбранной корзине? |
Старые баги снижают билд на -0.3 балла.
Project Report 0+0=0 из 2 возможных• Added explanation hints to the links on the Report Summary page.
Добавлены поясняющие хинты к линкам на странице итогов отчёта.
В отчёте по проекту первая страница состоит из итогов интерактивного отчёта. В нескольких таблицах собраны суммарные значения, к почти каждому из которых имеется линк, фильтрующий дерево отчёта. Если вы получите два отчёта по одинаковым демо-проектам, хоть и в разных версиях CS, но никакой разницы в наличии хинтов или их текстов обнаружить не получится. Так что, билд недополучает балл.
• Invalid or outdated diagrams and matrices in a project report are now marked with a red warning message.
Инвалидные или устаревшие диаграммы и матрицы в отчёте проекта теперь отмечены красным предупреждающим сообщением.
Странно, что это дополнение к отчёту проекта расположено в числе багов. Поясню два термина. Устаревшими диаграммы и матрицы становятся при внесении изменений в текст скрипта без последующей его компиляции. А инвалидными становятся при валидации имевшихся диаграмм и матриц без их генерации во время анализа изменённого кода. Устаревшие визуализаторы кода никак не отмечены в интерфейсе. Но если включена опция "Options / Preferences / Main Window / Visibility of Instant Help for Analyzer View Panels / Miscellaneous / Modified script warning", то в интерфейсе выдвигается целая панель с предупреждением, но в отчёте так ничего и не появилось. А инвалидные визуализаторы кода стали помечаться в отчёте ещё в начальных билдах предыдущей версии. Факт, но ничего описанного не сделано. Поэтому ноль баллов.
Split/Rename Project Script 0+0=0 из 2 возможных
• Fixed the error that is shown on trying to rename a non-txt script.
Исправлена ошибка, которая показывается при попытке переименовать нетекстовый скрипт.
Мастер переименования скрипта не доступен для нетекстовых скриптов, которыми могут быть canvases из числа Oracle Forms. Если же скрипт имеет любое не txt расширение, то это не мешает работе мастера по переименованию. Возможно более конкретное описание фикса или его причин позволили бы мне поглядеть на текст ошибки, но тех.писательница поскупилась на пояснения, из-за чего билд недополучает балл.
• Fixed the error message shown on trying to rename a script according to its object type.
Зафиксировано сообщение об ошибке, показываемое при попытке переименовать скрипт, согласно его объектного типа.
Скорее здесь имеется ввиду не имя самого скрипта, а в большей степени - расширение файла, которое настраивается в двух местах: 1) для импорта объектов из базы "Options / Preferences / New Project, Import and Link Manager / Database Source / Database Object File Extension Assigment"; 2) "Options / Code Analyzer Options / Code Review Options / File Extensions" - для сверки правила кодирования "78 - The object type doesn't correspond to the file extension". Переименовать скрипт можно вручную по двойному клику по ноде скрипта в дереве проекта или через контекстное меню "Rename", либо по правилу кодирования через мастер переименования, доступный из контекстного меню "Rename Script by Object Name and Type". О чём может быть сообщение при ошибочном переименовании? К сожалению, тех.писательница не уточнила, а наша тестерская фантазия и опыт может накидать безумное множество вариантов. Попробуем пару из них: присвоить имя или расширение, которое не соответствует правилу; переименуем в одноимённый, уже имеющийся в проекте или папке. Мастер переименований по правилу кодирования жёстко не ограничивает вручную введённое имя и расширение, а значит никаких сообщений об ошибке получить не сможем, кроме проверки на полное совпадение по имени и расширению с другим скриптом в этой же папке. Также сожалею, но никакой разницы в тексте этой ошибки в прошлой версии CS и текущей нет. Поэтому считаю пункт RNs припиской и балла не даю.
Project Manager 0.7 из 1 возможного
• Fixed the order of code review rules in the “By Code Review” filter.
Исправлен порядок правил кодирования в фильтре по ним.
Фикс является дубликатом из последнего билда прошлой версии. Для воспроизведения отсутствия сортировки правил по-алфавиту внутри каждой группы воспользуйтесь предпоследним билдом предыдущей версии приложения. За дубликат фикса и не конкретное описание могу дать лишь 0.7 балла. Примечание: для просмотра списка правил при настройке фильтра дерева проекта включите две галки "Project Manager / Filter / Filter Enabled" и "Project Manager / Filter / OK Alert", а потом сможете развернуть комбобокс в блоке "Project Manager / Filter / OK Alert / By Code Review".
Analysis History 0.7 из 1 возможного
• Summary charts are no longer duplicated.
Суммарные чарты больше не дублируются.
История анализов с отображением чартов интерфейсно имеется в двух разрезах - скриптовом и проектном. О какой из закладок анализатора речь - тех.писательница поленилась уточнить. Поэтому нам придётся искать баг в обеих. Полагаю, что это был какой-то частный случай, поскольку функционал довольно старый и в нём давно ничего не менялось. Поэтому вполне можем высказать тех.писательнице своё "фи-и-и" за отсутствие подробностей или причин бага. Ещё один минус этого пункта RNs в том, что сам фикс является дубликатом из последнего билда прошлой версии CS. По результатам моих исследований текст фикса должен был звучать иначе: "Легенды суммарного чарта больше не дублируются, а перерисовка всей панели графиков скриптового и проектного анализа больше не оставляет выключенные графики". Баг появился при переходе на два компилятора разной разрядности операционной системы. Почему его так долго не правили? Скорее всего никто из тестировщиков его не успел выявить, поскольку РМ понятия не имеет о правилах и объёмах регрессионного тестирования, но задачи отделу тестирования распределяет ежедневно сам. Полный балл дать никак не могу.
Analyzer View 0.7 из 1 возможного
• Fixed handling of the toolbar visibility, so the Analyzer View tabs no longer blink while a new license key is applied in Preferences.
Исправлена поддержка видимости тулбара, теперь закладки просмотра результатов анализа больше не моргают пока применяется лицензионный ключ в настройках приложения.
К сожалению, не уточнено, о каком конкретно тулбаре речь (главный, дерева проекта, на какой-то из закладок с результатами анализа), поэтому наблюдать будем за главным. Также не конкретизированы закладки с результатами анализатора, поэтому для теста возьмём итоговую Summary. Процесс применения лицензионного ключа можно запустить для любого файла особого наименования, поэтому можем взять файл триального ключа (в рабочих папках CS - "cs_unlck_71.trl" и "cs_unlck_80.trl") и переименовать их в "cs_80_MyLic.lic" для текущего билда и "cs_71_MyLic.lic" для предыдущего. Откроем "Options / Preferences / License Key" так, чтобы видеть главный тулбар и закладки анализатора, в поле "Select License Key File / Manually:" выберем файл лицензии и понаблюдаем за интерфейсом приложения, позади текущего окна. Далее, на странице "OSD Update/Messenger" поправим удобные настройки обновлений (если тестируете CS на машине без Интернета, то переведите в Manual оба типа проверок обновлений). Если не успеваете ничего заметить, то запишите все свои действия над интерфейсом в видео-файл, например, приложением UVScreenCamera или Free Screen Video Recorder. Не знаю зачем, но в прошлом билде перерисовывался главный тулбар и некоторые закладки анализатора (CRUD2, All Call Trees), а в текущем билде осталась перерисовка только главного тулбара. К чему эта излишняя процедура? Похоже, что программист забыл выставить флаги о правах на элементы приложения и проверить их скопом после изменения лицензии, а вместо этого перепроверяет каждый элемент интерфейса для любого выбранного ключа.
| Больше шагов, но быстрее отображает |
| Меньше кода, но дольше работает |
Это тот случай, когда дешёвый код программиста приносит юзеру дорогие проблемы по затрате времени и ресурсов. В итоге, конечно, "костыль" сделан, но полный балл дать не могу.
Code Review Options 0 из 1 возможного• The option “Revert Modifications” now works correctly.
Опция возврата редактирования теперь работает корректно.
Контекстное меню списка правил кодирования на странице "Options / Code Analyzer Options / Code Review Options" имеет функцию возврата изменений. Что именно имелось ввиду под термином "корректно", мне не удалось выяснить. Даже элементарный тест - выбрать одно включенное правило, сменить его важность, вернуть изменения - привело не только к возврату важности, но и зачем-то выключило его. Аналогичный результат теста в предыдущем и текущем билдах дают мне право считать пункт RNs припиской и не давать балл билду.
Toolbar 0 из 1 возможного
• The options “Unlink all scripts from the linked sources” and “Unlink selected items from the linked sources” no longer appear in the list of options that can be added to the Project Tree toolbar.
Опции "Отвязать все скрипты от источников привязки" и "Отвязать выбранные единицы от источников привязки" больше не появляются в списке опций, которые могли быть добавлены в тулбар дерева проекта.
Какая-то бурная фантазия тех.писательницы придумала этот текст, потому что настройка тулбара дерева проекта никогда не позволяла отобразить кнопки для массовой отлинковки. К тому же, она допустила ошибку, назвав функциональное действие опцией (настройкой). Да, перевод слова option подразумевает синоним действия, но в IT-документациях, как и в любых юридических документах, синонимами стоит оперировать очень аккуратно, чтобы не исказить смысл. За голимую приписку баллов не даю.
GUI 0 из 1 возможного
• Captions on the Code Review tab are now shown correctly when the Splash window is open.
Заголовки на закладке правил кодирования теперь показываются корректно, когда открыто временное окно.
Закладка по правилам кодирования имеется в двух местах: результаты анализа в разрезе скрипта, суммарные результаты анализа. Splash-окном в CS всегда считалось окно старта приложения, управляемое опцией "Options / Preferences / General / Application Startup (Launch) / Show splash (startup) window". В прошлой версии CS при открытии приложения всегда активной была закладка скрипта, то есть проблему никак не могли зарегистрировать на таблицу правил кодирования в рамках панели Summary. Текущий билд, как и предыдущий, при открытии CS отображает пустые панели результатов анализа скрипта, так как в любом открываемом проекте первоначально активна верхняя нода, равная папке. Никаких заголовков на пустой закладке не было и нет. Нечёткое описание фикса лишает билд балла.
Autofixes 0 из 1 возможного
• Autofixes are no longer lost when a new script version is created.
Автофиксы больше не теряются при создании новой версии скрипта.
Версия скрипта может добавиться в трёх случаях: вручную на закладке "Script: Editor and Analyzer Info / Versions", после инструментирования кода на закладке "Script: Editor and Analyzer Info / Instrumented Code", после синхронизации линкованного скрипта с его источником в файловой системе или базе данных. Для получения списка автофиксов скрипта достаточно проанализировать хранимую подпрограмму без указания её имени после служебного слова END в конце кода. Первый вариант никуда не девает автофиксы и оставляет статус скрипта. Второй вариант оставляет автофиксы и меняет статус скрипта в изменённый. Третий вариант обнуляет список автофиксов и меняет статус скрипта в изменённый. Все три варианта одинаковы в предыдущей и текущей версиях CS. Вывод: баг не исправлен, описание не конкретизировано. Баллы давать не за что.
Итого по билду: набрано 2+11.5+4.7=18.2 баллов из 4+27+29=60 возможных, что даёт 18.2/60~30% готовности, но при этом за баги билд теряет -8.5-3.4=-11.9 баллов.
Подписаться на:
Сообщения (Atom)




