Тестирование CAD-систем
#1
Отправлено 15 февраля 2010 - 15:27
Если знаете, подскажите литературу в этом направлении или любые ресурсы. Не могу найти нормальной проффесиональной литературы конкретно в этой сфере...
#2
Отправлено 15 февраля 2010 - 21:05
Литература подойдет любая классическая по тестированию.
#3
Отправлено 16 февраля 2010 - 15:37
Спасибо за ответ, ноТестируются они так же, как и любые другие системы. С учетом применяемого в компании подхода.
Литература подойдет любая классическая по тестированию.
В классической литературе, если говорить о функциональном тестировании, рассматриваются в основном функции вычисления чего-либо, либо, там вводятся определенные данные и ожидается определенны результат. С этим, я думаю, мне более менее все понятно.
Но как, например, протестировать такую фичу: при нажатии левой кнопки мыши на 3Д-поверхности наращивается поверхность, при нажатии правой - наоборот. Такой вопрос мне задали на собеседовании. Я, конечно отвечала, путем логических рассуждений, пыталась абстрагироваться . Но это были такие хаотичные идеи. А им нужен был, я так понимаю, структурированный такой ответ. Вот это меня и интересует.
Понимаете я, как новичок, не имею основания из опыта, а только из теории. Поэтому мне слова "Тестируются они так же, как и любые другие системы. " не очень помогают.
Уж очень меня эти CAD-системы привлекают, не дают мне это покоя. Помогите, кто знает! На что обратить внимание? Я так думаю, здесь особую важность имеет тестирование графического интерфейса... А что еще?
#4
Отправлено 16 февраля 2010 - 15:53
В основном ключевую роль играет предметная область. В данном случае - графика. Соответственно, достаточно большой интерес представляет именно качество отображения. Например/. шрифты должны сглаживаться при масштабировании, чертеж не уезжает никуда при смене масштаба. Отдельная тема - различные графические "артефакты", особенно это характерно для 3Д-моделей. Также, импорт/экспорт файлов. Поддержиываемые форматы.
Так что, если речь идет о тестировании, то тут просто нужно уметь работать с подобными системами и понимать, что хорошо, а что плохо.
Если же дело касается автоматизации, то с графической частью будет возня нереальная, хотя отдельные фишки все-таки народ реализует. Но все-равно, подобные системы - не подарок. Полтора года с подобными возился.
#5
Отправлено 16 февраля 2010 - 21:36
Во-первых, не бывает сферических в вакууме CAD-систем. Каждая решает свою задачу. Где-то это графика, где-то - серьезные вычисления. И более интересный вариант - графика, отображающая результаты вычислений.Понимаете я, как новичок, не имею основания из опыта, а только из теории. Поэтому мне слова "Тестируются они так же, как и любые другие системы. " не очень помогают.
Когда мы знаем назначение системы, и область опредения её пользователей, можно строить гипотезы и задавать уточняющие вопросы.
Как протестировать такую фичу: открываем холодильник - загорается лампочка, закрываем холодильник - лампочка гаснет? Так же, как и любую другую: 1) понять, почему лампочка должна вести себя именно так, 2) найти хорошие оракулы и методы контроля, которые позволят не залезать в холодильник, чтобы увидеть гаснущую лампу. Ну и так далее.Но как, например, протестировать такую фичу: при нажатии левой кнопки мыши на 3Д-поверхности наращивается поверхность, при нажатии правой - наоборот.
Вариантов решения задачи, в том числе и в тестировании - бесконечное количество. Основная проблема - правильно идентифицировать саму задачу, а это на абстрактном уровне "какая-нибудь CAD-система" не делается.
#6
Отправлено 16 февраля 2010 - 22:20
Но как, например, протестировать такую фичу: при нажатии левой кнопки мыши на 3Д-поверхности наращивается поверхность, при нажатии правой - наоборот. Такой вопрос мне задали на собеседовании.
Думаю, от Вас ожидали услышать что-то типа
1. Нажать на левую кнопку мыши, убедиться, что поверхность наращивается.
2. Нажать на правую кнопку мыши, убедиться, что поверхность уменьшается.
3. Уменьшить поверхность до нуля, нажать на правую кнопку.
4. Нарастить поверхность до границ экрана, нажать на левую кнопку.
и т.д.
Соглашусь с коллегами, подойдет любая умная книжка по тестированию. Все остальное - специфика, которой не учат нигде, и которую вам предстоит постигать именно в этой компании и именно в этой команде.
PS:
"Как положить слона в холодильник? Открыть дверь, поместить слона в камеру, закрыть дверь."
#7
Отправлено 17 февраля 2010 - 20:58
Ну именно с этого я и начала:Думаю, от Вас ожидали услышать что-то типа
1. Нажать на левую кнопку мыши, убедиться, что поверхность наращивается.
2. Нажать на правую кнопку мыши, убедиться, что поверхность уменьшается.
3. Уменьшить поверхность до нуля, нажать на правую кнопку.
4. Нарастить поверхность до границ экрана, нажать на левую кнопку.
и т.д.
-Нажать левую, правую кнопку - типа проверка в нормальных условиях.
-Проверка граничных значений - максимально нарастить поверхность или уменьшить.
-Проверка в исключительных ситуациях - например нажимать сразу две кнопки либо что-то еще с клавиатуры.
На этом мой интервъювер сказал, что я размышляю не как тестировщик, а как обычный пользователь
Потом я пошла дальше... к нагрузочному тестированию - нагрузить эту программку еще чем-нибудь и выполнять эту функцию, причем с большой интенсивностью.
-потом стресс-тестирование.
-на совместимость с разными ОС.
Много там еще всего было... из чего я сделала вывод, что я возможно не знаю каких-то нюансов, которые обязательно должен знать тестировщик СAD-систем.
Но теперь я поняла, что либо я была не последовательна в моих рассуждениях, либо просто не подходила по каким-то другим параметрам...
Я с этим полностью согласна. Я считаю, что человек, знающий основы тестирования (конечно имеющий желание и способность разобраться и вообще работать тестировщиком) сможет без проблем постигнуть эту специфику. Но тут один момент - мне нужно впечатлить работодателя видимостью практических знаний, что бы потом я смогла их получить.Соглашусь с коллегами, подойдет любая умная книжка по тестированию. Все остальное - специфика, которой не учат нигде, и которую вам предстоит постигать именно в этой компании и именно в этой команде.
Хотя я знакома с CAD-системами (делала чертежи 2D, так сказать), но что бы постигнуть все тонкости и сделать свои выводы мне могут понадобиться годы.Так что, если речь идет о тестировании, то тут просто нужно уметь работать с подобными системами и понимать, что хорошо, а что плохо.
Спасибо вам всем за реально практические советы!
Но вопрос еще открыт... мне интересно, может кто-то еще что-то к этому добавит...
#8
Отправлено 18 февраля 2010 - 12:58
Если же дело касается автоматизации, то с графической частью будет возня нереальная, хотя отдельные фишки все-таки народ реализует. Но все-равно, подобные системы - не подарок. Полтора года с подобными возился.
да уж, автоматизация графики - аццкая хрень..
Несколько лет тестировал приложение, которое генерировало SWF-файлы с анимацией. Если создавались эти файлы в автоматизированном режиме (благо, было серверное приложение с командной строкой), то проверять результат все равно приходилось в ручную, т.к., во-первых, 100%-ной точности с "образцом" при обработке было сложно добиться, во-вторых, как автоматически проверить анимацию - я до сих пор не знаю :)
#9
Отправлено 18 февраля 2010 - 13:16
Так вот, сделано у них всё элементарно:
1. Есть библиотека скриптов, которые занимаются построением моделей, их вращением, ресайзом и так далее.
2. Есть библиотека картинок.
3. Есть сравнивалка картинок.
Тестирование построено так:
1. Берется скрипт, выполняется, полученная модель фотографируется и сравнивается с эталонной.
2. Если разница больше определенного процента (вроде 3%, точно не помню), тест считается пройденным.
3. В сторонку откладывается результат, полученная картинка и картинка с разницей.
4. В результате прогона остается отсмотреть глазами картинки с большой разницей и вынести решение о том, приемлема она или нет.
А вы говорите - анимация, нереальная возня...
#10
Отправлено 18 февраля 2010 - 14:17
Наверняка, как-нибудь можно разбить мувик на кадры и сравнивать как фотки. Ясно дело каждый кадр нам не нужен, а нужен каждый N-ный....как автоматически проверить анимацию - я до сих пор не знаю :)
Сам никогда не делал, чисто теоретическое измышление.
Alexey
#11
Отправлено 18 февраля 2010 - 14:50
во флэшке как таковых кадров не было - структура была слишком нелинейная, чтоб брать просто N-ный фрейм. Вариант - просто делать скрин на i-том моменте времени - но, например, из-за тормозов компа, флэша, тестирующей системы или просто потому, что приложение сгенерировало задержку в полсекунды, получалось не совсем то, что ожидалось. В общем, тут, на мой взгляд, затраты на автоматизацию были бы больше, чем польза от нее, поэтому я углубляться в нее не стал.Наверняка, как-нибудь можно разбить мувик на кадры и сравнивать как фотки. Ясно дело каждый кадр нам не нужен, а нужен каждый N-ный.
Сам никогда не делал, чисто теоретическое измышление.
#12
Отправлено 18 февраля 2010 - 14:54
со статичными файлами у меня проблем не было, автоматизируются они не так уж сложно, но это не более 15% от всего объема тестированияА вы говорите - анимация, нереальная возня...
#13
Отправлено 18 февраля 2010 - 16:42
Это тест графической подсистемы компьютера (железа), а не CAD-системы, как я понимаю.Насчет автоматизации: волею случая имели доступ к некой системе автоматизированного тестирования от Autodesk. Это некоторый внутренний fork их внутренней системы автоматизированного тестирования, предназначенный для сертификации железа на совместимость с продукцией автодосок.
#14
Отправлено 19 февраля 2010 - 11:35
в CAD\CAM системах построение элементов (не только сложных) основано на алгоритмах и функциях. В простых случая- это зашитые алгоритмы (построение прямой линии), а в сложных - этими алгоритмами (их формированием) управляете вы (например, построение криволинейной поверхности). Если взять, к примеру, случай с криволинейной поверхностью- то в начале вы задаете некую траекторию, вдоль которой будет двигаться некоторый контур, для формирования простой криволинейной поверхности. Если в этом случае просто поменять местами начало и конец контура границы полученной поверхности (без изменения его формы, то есть визуально- все так же)- произойдет скручивание поверхности, при этом скручивании формирование поверхности происходит просчетом по алгоритмам и экстраполиция (до определенных границ, конечно)). Простор для ошибок. Это утрированный пример. Обычно в таком случае все в порядке. Но в более серьезных случаях ошибки\погрешности могут доходить даже до визуального (при сильном увеличении) заметного отсутствия самой поверхности там, где, судя по границам, она должна быть.
Или еще пример- вы привязываетесь к какому-либо участку криволинейной границы\линии. При сильном увеличении можно убедиться, что вы привязались к некоторой точке, которая может даже "не лежать" на этой границе. Все приблизительно.
И таких вариантов- масса. На плоскости- вы строите треугольник, прявязывая концы двух сторон к концам третьей. Потом меняете направление этой третьей стороны. На вид- все так же. Фактически- стороны пересекаются. Немного копнуть- и можно найти багов.
Первые варианты, какие на ум пришли...
#15
Отправлено 13 марта 2010 - 22:07
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных

