[...] Единственное, чем может быть чревато: если поменяется ГУИ приложения (изменятся имена контролов и их иерархия), придется переделывать эти самые Алиасы.[...]
Не совсем так. При правильной настройке, алиасы и, соответственно тестовый код, переделывать не прийдется, а прийдется только подстроить NameMapping.
Дело в том, что архитектура распознавания/работы с тестируемым объектом при использовании NameMapping такова:
-- Есть тестируемый объект (например - F_IDCODE);
-- Этот объект зарегистрирован и может быть идентифицирован в NameMapping-редакторе (например, как элемент по пути NameMapping.FormEngine.frmMain.SUBABasePanel.SUBAForm10.PC_MAIN.TS_Basic.GB_General.F_IDCODE);
-- Для этого-же объекта создан alias (например, как Aliases.FormEngine.frmMain.F_IDCODE).
Теперь, когда вы из кода обращаетесь к объекту Aliases.FormEngine.frmMain.F_IDCODE, TestComplete находит данный alias, по нему находит соответствующий NameMapping элемент и по этому элементу находит реальный объект тестируемого приложения. Т.е. здесь имеют место быть три таблицы ссылок, из которых третья (Aliases) используется тестовым кодом, первая (параметры идентификации объекта в редакторе NameMapping) - runtime-средой TestComplete для работы с объектом, а вторая (NameMapping) - для связи первой и третьей таблиц.
При изменении структуры GUI приложения, требуемый объект не сможет быть найден по параметрам идентификации из таблицы NameMapping и об этом будет выдана ошибка в лог теста. Все, что потребуется сделать в данном случае для восстановления работоспособности теста - это подстроить параметры распознавания объекта в таблице NameMapping. Т.к. строка Aliases по-прежнему будет ссылаться на старую строку из NameMapping, никаких изменений в тестовом коде при этом не потребуется.
Заметьте, что при регистрации объекта в таблице NameMapping, вы можете двигать зарегистрированный объект вверх по иерархии. Т.е., например, при регистрации объекта Sys.Process.FormEngine.frmMain.SUBABasePanel.SUBAForm10.PC_MAIN.TS_Basic.GB_General.F_IDCODE, вы можете поместить его по пути NameMapping.FormEngine.frmMain.SUBABasePanel.F_IDCODE и создать его alias как Aliases.FormEngine.frmMain.F_IDCODE. Это упростит последующую подстройку таблицы NameMapping.