Анализ Кода
#1
Отправлено 16 сентября 2003 - 12:18
#2
Отправлено 16 сентября 2003 - 13:05
Если идёт речь о процессе анализа кода на совместимость его с "конвенцией о кодировании", то есть о критических просмотрах кода, которые рекомендуют делать практически все методологии разработки и обеспечения качества, то подобные мероприятия довольно полезны. Полезность скорее не столь осязаемая как даже от обычного "ручного" тестирования, результатом которого является вполне реальный change request (запрос на изменение в программе), сколь хороший вклад в дальнейшую разработку и повышение уровня качества полуемой системы. Код, который пишется согласно правилам принятым в компании впоследствии легче поддерживается и естевственно легче даётся в изучении как разработчику, который будет принмать проект, так и тестировщику.
Главное не перегибать палку, а то разработчики Вас будут мягко говоря не любить, а в дальнейшем просто будут игнорировать ваши рекомендации.
Что до анализа кода и собственного опыта, то могу сказать следующее:
- при передаче мне одного проекта инсталляции был проведён осмотр и разбор кода в результате которого выявлена чисто логическая ошибка (при анинсталляции одного из компонентов системы удалялись настройки в реестре, после чего удалить остатки системы уже нельзя было удалить стандартными средствами). Важность этой "находки" оценивалась просто - если бы этого не нашли мы - программа не прошла бы ВинХП лого тест. Хотя такое разбор ближе к тестированию "белого ящика" скорее чем к анализу кода.
Редактор портала www.it4business.ru
#3
Отправлено 16 сентября 2003 - 13:35
"...сквозной контроль не позволяет обнаруживать значимые ошибки,
особенно на ранних стадиях жизненного цикла. Дефект дефекту рознь.
Вообще говоря, сквозной контроль и другие формы контроля,
производимого человеком, хороши для обнаружения ошибок, лежащих на
поверхности, и проблем, касающихся стиля. При использовании при
разработке специальной системы записи просмотр человеком может
служить первичным механизмом гарантии качества, но он не позволяет
обнаружить проблемы второго, третьего, N-ого порядка, такие как,
конфликты ресурсов, узкие места, связанные с производительностью,
конфликты управления и т.п. Более того, очень немногие люди способны
находить даже семантические ошибки первого порядка в тексте
программы. Скольким программистам удается компилировать свою
собственную программу с первого раза?"
#4
Отправлено 16 сентября 2003 - 14:37
Я наверное не до конца понял суть вопроса - не могли бы вы сформулировать его иначе?
Редактор портала www.it4business.ru
#5
Отправлено 17 сентября 2003 - 06:36
1) В какой ситуации Вы стали бы применять или применяли анализ кода (сквозные просмотры, инспекции)?
2) Для нахождения каких видов ошибок?
3) Стоит ли использовать такой вид тестирования при
- высокой сложности проекта
- большом объеме кода, подлежащего анализу
- если в коллективе тестеров 1-2 человека.
После ознакомления с литературой по данному вопросу и на основе личного опыта у меня складывается впечатление, что наибольшую эффективность метод дает при небольшом объеме кода, и необходимости выявить ошибки реализации алгоритма.
#6
Отправлено 17 сентября 2003 - 07:10
Кстати небольшие составы групп тестировщиков - это распространённая болезнь многих компаний. Насколько я читал, в Майкрососфте на кадого разработчика есть свой аппонент - тестеровщик.
Нам бы задумываться над успехами гигантов.
Редактор портала www.it4business.ru
#7
Отправлено 18 сентября 2003 - 13:39
Т.е. после багфиксинга, когда общая функциональность системы протестирована и можно быть уверенным, что грубые ошибки не вылезут - смотрим те участки программы, в которых найдены ошибки и пытаемся их анализировать вместе с разработчиками. Но это касается только проблемных участков.
Обычно этим не занимаемся.
есть еще один момент, когда это делаем - иногда на этапе разработки, когда система еще не полностью готова и собрана - возникает необходимость оценить качество отдельного блока - тогда в среде разработки непосредственно тестируется этот блок, включая анализ кода.
#8
Отправлено 18 сентября 2003 - 14:09
Если не сложно поделитесь опытом выделения таких блоков?возникает необходимость оценить качество отдельного блока
Думаю будет интересно не только тестировщикам, но и разработчикам.
Редактор портала www.it4business.ru
#9
Отправлено 18 сентября 2003 - 14:23
Чаще всего:
1. После анализа матрицы покрытия выясняем, какие пути не пройдены и почему, а дальше ищем на
уровне кода свзи между блоками и смотрим на их код.
2. На этапе анализа и разработки класс-диаграммы можно увидеть проблемные участки.
3. Когда разработчики сталкиваются с трудностями в реализации конкретных методов, тогда уже идет
совместная работа по разработке и тестированию, очень сходная с экстрим-разработкой.
А в общем, даже не могу четко сказать - просто иногда чуствуешь, что надо глянуть - это, конечно, не объяснение, но и так бывает.
#10
Отправлено 19 сентября 2003 - 07:07
А стали бы Вы проводить анализ блоков, в которых ошибки были найдены, но исправлять их по какой-либо причине не стали?смотрим те участки программы, в которых найдены ошибки и пытаемся их анализировать вместе с разработчиками.
#11
Отправлено 19 сентября 2003 - 07:20
Можно? Спасибо.
У Вас настолько нестандартные вопросы - приходится перечитывать по нескольку раз :D
Чувтсвуется богатый опыт, делитесь, не стесняйтесь.
Ольга, а почему найденную ошибку не исправили? Это и такое теперь бывает?
Редактор портала www.it4business.ru
#12
Отправлено 19 сентября 2003 - 07:27
У нас чаще всего такое случается, когда:
- мы определили проблему системы, как ошибку, но на самом деле она возникла из-за недоработки в
спецификации требований пользователя - и тогда фиксинг ошибки переходит в дополнительный
системный анализ, изменение требований пользователя и доработку системы.
- фиксинг ошибки отложен по каким-либо организационным вопросам (нехватка времени, ресурсов и
т.д). Тогда, если ошибка имеет категорию некритичной, то переводится в состояние "отложено",
фиксируется в "Релиз Ноутс" и ждет своего решения.
- Есть очень сложные ошибки, на фиксинг которых уходит много времени. Вот с этими ошибками и
возимся, но они тоже очень специфичны. В первую очередь выясняем, почему в принципе они вылезли.
И чаще всего получается, что это глобальные ошибки при проектировании всей системы, т.к. просто
грубые ошибки кодирования вылазят уже на первом проходе при выполнении "smoke" теста и быстро
устраняются.
#13
Отправлено 19 сентября 2003 - 07:38
К сожалению, в числе отложенных бывают очень серьезные ошибки. Про ошибки проектирования и не говорю...
#14
Отправлено 19 сентября 2003 - 07:57
Програмист не может в принципе убедить Project менеджера в том, что это фича, до тех пор, пока не убедит в этом меня.
QA менеджер и Project менеждер равносильны в принятии решении, и програмист может говорить сколько угодно, что это фича, что у него все работает - честно говоря, я даже слушать это не буду.
Есть спецификация на систему, есть Assessment спецификация, и в конечном счете есть заказчик.
Выпустить неготовую систему мы не можем в принципе.
Она может быть недоделана, но ровно настолько, чтобы заказчик остался доволен.
Или суеметь убедить заказчика о переносе сроков, вариантов оплаты и т.д. - но неготовая система - "это провал" :-)))
#15
Отправлено 19 сентября 2003 - 08:04
Если такие баги остаются в приницпе - это не верный подход.
Про "у меня всё работает" - кого это интерсует? Это не работает на тестовом окружении. Вот сценарий вопроизведения ошибки. Вот что ожидается при такой последовательности действий - вот что получилось (или не получилось)
Если кто-то прибегает с криками "выпускаем" - нет вопросов. Формальный документ руководству - даже если это он и прибежал :) С пояснениями почему этого делать нельзя, и обьяснением, что дальнейшие претензии к качеству не приимаются.
Если кто-то сумел кого-то убедить в том что это фича, но этой фичи не было в тест планах выхода два:
1) менять требования, тест план, наборы скриптов и сценариев использования. Как следствие откладывать дату выпуска все действия документируются и ставится в известность тот кого переубедили и ваше непосредственное руковоство.
2) формальными методами обьяснять, что фича, которая случайно всплыла и не была запланирована и задокументирована как требование к системе есть баг.
Просто я не до конца могу принять, что ошибка есть и система с ней выходит в жизнь. Отложенное исправление - это реальность, а вот закапывание ошибки в систему - это мина замедленного действия для качества системы в целом, и для самого процесса разработки - как во временном так и в денежном эквиваленте.
Редактор портала www.it4business.ru
#16
Отправлено 19 сентября 2003 - 08:09
Поностью поддерживаю. Я просто уж больно долго писал ответ - но суть таже.
Есть PM, ниже по иерархии идут ведущий программист, постановщик и тестировщик. Мы принимаем решение втроём, если это серьёзные изменения затрагивающие дату выпуска или человеко-ресурсы - тогда РМ принимает решение более концептаульное - по принципу "делаем-не делаем" в этой версии. Он же проводит переговору с заказчиком, согласует сроки, наполнение функциональностью версии системы и так далее.
Разговоры разработчика очень интересны его непосредственному руководителю, но никак не мне или моим сотрудникам, равно как и РМ-у.
Редактор портала www.it4business.ru
#17
Отправлено 19 сентября 2003 - 08:49
#18
Отправлено 19 сентября 2003 - 08:57
Тестер не может быть в чьем-либо подчинении в пределах своей работы. Да, отношение к нам не всегда адекватное, но это издержки как самой специфики работы, так и способности руководства и самого тестера создать приемлемую систему качества.
Конторы, в которых ВСЕ программисты пишут качественно может и есть, но не видел еще ни одной серьезной программы, которая была бы абсолютно безбажной. Хоть что-то, да есть.
#19
Отправлено 19 сентября 2003 - 10:58
А по вопросам подчинения тестировщика руководителю отдела разработки - это практика постенно вымирающая, и если чесно то и хорошо.
Руководство, которое заинтересовано в качестве, должно осознавать необходимость службы качества, само по-себе ничего ниоткуда не возникает. Если же в этом вопросе "у нас программеры супер" - дайте систему в руки тестировщику с опытом чуть более полугода или одним, двумя коммерческими проектами (желательно сделанными за рубеж) буквально на часок.
А потом список ошибок руководителю на стол. Реальный опыт кстати, ребята-разработчики из одной киевской конторы так и поступили - теперь у них есть два тестера. Правда под руководством отдела разработки, но начало положено.
Редактор портала www.it4business.ru
#20
Отправлено 28 сентября 2003 - 09:11
За выпуск версии отвечает ПМ, наша задача сказать работает/не работает с достаточной аргументацией.
Если принято решение выпускать бажную версию - нет проблем - закладная записка+баг лист как аргументация почему это делать нельзя.
Насчет "а у меня все работает" - я нашел очень хорошее решение (по крайней мере это дало очень хорошие результаты) - девелопера за шкирку и за свой комп.
У тебя все работает? Покажи мне как это работает на моей машине.
После пары заходов, как рукой снимает проблему рабочести на девелоперской машине.
(на моей машине проводятся сборки версий, поэтому особых проблем нет)
Правда прийдется выслушать кучу объяснений по типу "ой, а это сорцы какие-то старые",
"ай, а я метки не те/не туда проставил", и тому подобное.
Но аудит в стартиме - рулит форевер. :D
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных