Текстовые редакторы и Юникод
Cheat-sheet для текстовых редакторов включает в себя не мало пунктов, но порою до юникода дело редко доходит. А когда продукт выходит на международный рынок и особенно на азиатский, то наваливаются проблемы для глобальных переделок.Кроме командной строки (cmd, sql*plus и т.п.), которая тоже имеет свои настройки перекодировки отображаемых символов (свойства приложения "cmd.exe", команда "chcp 1251" или "alter session set nls_lang.."), в интерфейсном приложении существует не мало элементов для работы с текстом:
- не редактируемая подпись интерфейсного элемента (label, caption);

- однострочный, одноячеечный редактор (edit);

-- в том числе и масочный, с предварительно зарезервированными символами или отображающий символы в перекодированном виде (mask-edit = calendar, password);

- многострочный, одноячеечный редактор (memo, text-editor);

-- в том числе и нередактируемые списки одной колонки (list, combobox);
-- либо комбинация одноячеечного редактора с отображаемым списком (edit+list, edit+combobox), тестировать которые необходимо в комплексе с родительским элементом;

- многострочный, многоячеечный грид, таблица (grid, table of cells from rows and columns);
-- в том числе и открываемые для каждой ячейки соответсвующие редакторы (cell-edit, cell-memo, cell-mask-edit, cell-list, cell-combobox, cell-grid), тестировать которые необходимо в комплексе с родительским элементом;

- особой проверки заслуживают значения, отправляемые в базу и выбираемые из неё, поскольку настройки юникода при этом рассматриваются как в операционной системе, так и в самой базе, динамично меняемые

либо база изначально создаётся в конкретной кодировке.

Для проверки всевозможных символов достаточно клавиатуры 101-клавишной, вводя не только видимые на клавишах символы, но и через комбинацию функциональной или Alt клавиши и цифрового кода. Некоторые редакторы имеют встроенный выбор символов из зарезервированных списков. Ленивые тестировщики могут взять символы с сайтов стран южно-азиатского региона, не забыв выставить соответствующую настройку файлу при сохранении. Спасибо щедрым соратникам, которые давно уже выложили в сеть разнообразные примеры.
Тест граничных значений актуален для любого элемента, в особенности отправляющего данные в базу.
Для негативных тестов, кроме размера, следует брать различный формат данных - большие тексты, вариации кодировок (байт на символ), видео, картинки и исполняемый код в различной системе исчисления.
Объём и необходимость проверки безопасности будет вытекать из предназначения элемента: визуализация символов, разрешённость правки, замена стандартного текста исполняемым кодом.
Ссылка в тему - http://blog.pointschool.ru/2018/10/25/как-я-использовала-чит-листы/
ОтветитьУдалитьК слову, иногда в текстовом поле выявляется необычное поведение клавиш Del (на горячую клавишу назначено действие со всей формой, а не только в рамках редактора) и Ins (курсор не меняет стиля ввода - поверх или рядом)
Несколько интересных примеров, подтверждающих необходимость тестирования валидации ввода - https://software-testing.ru/library/testing/test-analysis/3153-four-reasons-you-should-test-input (оригинал на английском - http://thethinkingtester.blogspot.com/2019/03/four-reasons-you-should-test-input.html )
ОтветитьУдалить