Форум Сообщества Аналитиков

×


Проверка алгоритма программистом(Прочитано 22961 раз)
На новом месте работы (системным аналитиком) мне говорят, что программист конечно должен проверить работу программы, но я должна ему подготовить тестовый пример. Если результат совпадет с тестовым примером, то считается, что программист выполнил задачу верно.

Получается полная безответственность программиста, и полная ответственность системного аналитика, т.к программист даже не проверяет правильность работы формул.

Может я не права ? Прошу высказать свое мнение...



Re: Проверка алгоритма программистом Ответ #1 : 25 Января 2014, 22:05:26
Все зависит от точки зрения. Следуя V модели, действительно, ставя задачу, вы как аналитик должны понимать и представлять как проверять корректность ее выполнения. Если вы не понимаете, то как это поймет программист. Прием исполнения задачи - важная часть работы аналитика.

Можете подробнее рассказать о предмете разговора, чтобы поставить более точный диагноз?



Re: Проверка алгоритма программистом Ответ #2 : 26 Января 2014, 16:23:44
Например: необходимо выгрузить в текстовый файл данные, удовлетворяющие определенным условиям. Источник данных, условия выборки и перечень выводимых данных задаются.

От меня требуют, чтобы я подготовила текстовый файл, с которым бы программист сверялся.

Я за то, чтобы была 2-х этапная проверка:
1) программист проверяет своими методами соответствие прописанного им алгоритма заданным условиям;
2) системный аналитик проверяет своими методами и готовит контрольные примеры для своей проверки.

В этом случае вероятность обнаружения ошибки увеличивается, т.к. скорее всего у нас будут разные контрольные примеры.
А если я свой контрольный пример буду передавать программисту, мы можем не обнаружить ошибку в программном коде :(




Re: Проверка алгоритма программистом Ответ #3 : 26 Января 2014, 20:43:49
Например: необходимо выгрузить в текстовый файл данные, удовлетворяющие определенным условиям. Источник данных, условия выборки и перечень выводимых данных задаются.

От меня требуют, чтобы я подготовила текстовый файл, с которым бы программист сверялся.

Я за то, чтобы была 2-х этапная проверка:
1) программист проверяет своими методами соответствие прописанного им алгоритма заданным условиям;
2) системный аналитик проверяет своими методами и готовит контрольные примеры для своей проверки.

В этом случае вероятность обнаружения ошибки увеличивается, т.к. скорее всего у нас будут разные контрольные примеры.
А если я свой контрольный пример буду передавать программисту, мы можем не обнаружить ошибку в программном коде :(



Одно не противоречит другому. Вы как СА совершенно не обязаны знать как реализуется ваша задача. Для вас программный код = черный ящик. На вход подается А, на выходе выдается Б.

Вы как СА должны точно понимать ожидаемый из черного ящика результат и готовите свой тестовый кейс, исходя из своих рассуждениях, проверяя их логичность и непротиворечивость.

Программист отлаживая свою программу, должен ориентироваться на ваш тестовый кейс.

Вопрос можно? В вашей команде имеется тестировщик?



Re: Проверка алгоритма программистом Ответ #4 : 27 Января 2014, 08:47:17
А если я свой контрольный пример буду передавать программисту, мы можем не обнаружить ошибку в программном коде :(
Если вы не будете передавать контрольный пример, то пропуск ошибки также может случиться. Нет единственно верного рецепта. Все зависит от конкретного проекта. В каких-то проектах принимают подход, когда тест-кейсы и тестовые данные готовятся до разработки и называют этот подход Test Driven Development. В других проектах начинают это делать вместе с разработкой, чтобы по окончанию разработки можно было провести качественное тестирование. Подготовкой тест-кейсов, данных и тестированием в разных проектах занимаются разные люди. В небольших - аналитики, в больших тестировщики, а в некоторых даже сами разработчики. Все по разному и причин может быть много. Так что ваш случай не уникальный и не самый плохой. Как говортт один очень умный человек: "не смотрите на названия ролей в методологиях. Кого назначат, тот и будет делать."



Re: Проверка алгоритма программистом Ответ #5 : 27 Января 2014, 09:36:45
Наверное, у меня очень непрогрессивный подход, но он заключается в том, что каждый отвечает за свою работу.
И подход из мультика: "и так сойдет"- меня не устраивает !
Иы скатываемся до того, что "я написал код" (неважно как), а твоя задача "найти мои ошибки".
И дело здесь не в способах тестирования, а в ответственности каждого за свою работу !!!
У нас нет тестировщика. В этом случае задачи тестирования должны распределиться на 2 части: одна - за программистом, другая - за системным аналитиком.

Возьмем простой пример: реализовать алгоритм таблицы умножения
A*B=C
Контрольный пример: 2*2=4
А в программном коде ошибка: C=A*B-A+B
Контрольный пример проходит!



Re: Проверка алгоритма программистом Ответ #6 : 27 Января 2014, 10:09:30
программист конечно должен проверить работу программы, но я должна ему подготовить тестовый пример.
...
каждый отвечает за свою работу

По-моему, все верно. С учетом:

У нас нет тестировщика.

Получается, что контрольные примеры готовить Вам. Программист этим не должен заниматься ни в коем случае. Ибо напишет так же, как понял постановку и реализовал ее в коде.



Re: Проверка алгоритма программистом Ответ #7 : 27 Января 2014, 10:27:15
Все зависит от людей. В одной компании в одном проекте бывает, что программист проверяет свой код и требует контрольный пример вместе с ТЗ (идеальный вариант), другой просто "реализует" алгоритм (сойдет и так), не вдаваясь в результат. Всегда стараемся найти компомисс, выходим на руководство, распределяем задачи в зависимости от исполнителя, повышаем зп только ценным кадрам и т.д. Могу сказать что и у аналитиков такая же проблема, кто-то не хочет  принимать функционал у прогеров и сразу передает тестеровщикам, кто-то не отвечает на вопросы программистов и т.д.
Если бы все были ответственными.....



Re: Проверка алгоритма программистом Ответ #8 : 27 Января 2014, 10:35:06
В этом случае задачи тестирования должны распределиться на 2 части: одна - за программистом, другая - за системным аналитиком.
Я не спорю, что каждый должен отвечать за собственную работу. Разработчик должен выдать качественный код. Он может это делать и не тестируя. Хотя если есть печальный опыт, то можно ввести методы повышения качества кода: ревью кода, БЫСТРАЯ проверка тестовым примером, обучение и т.д. Но это не значит, что полномасштабное тестирование это работа именно разработчика. Это должен делать тот, кого назначат.

Я за то, чтобы не разделять полномасштабное тестирование на две части. Тестировать должны те, кто эффективнее это делают. По убыванию эффективности это тестировщик (потому что специализируется на этом) или аналитик (потому что лучше всех из команды разработки знает как ПО должно работать).



Re: Проверка алгоритма программистом Ответ #9 : 27 Января 2014, 10:50:17
Программа и методика испытаний является очень хорошим вариантом записи требований. Передача ее программисту позволяет предотвратить часть ошибок. Предотвращение ошибок является более выгодной стратегией по сравнению с их поиском.

И не пожалейте 45 минут, посмотрите: http://vimeo.com/13803733
Сергей Мартыненко
http://martyinenko-sergey1.moikrug.ru/



Re: Проверка алгоритма программистом Ответ #10 : 27 Января 2014, 11:09:40
Благодарю всех за ответы !
Никого не хочу "обидеть", но понял меня Elf - именно "качественный код".
И сейчас мне предстоит разговор с руководителем и программистами на эту тему.

Я хочу донести еще один момент:
Системный аналитик - дает задание и принимает работу (он не тестировщик).

Тести́рование програ́ммного обеспе́чения — процесс исследования, испытания программного обеспечения (ПО) с целью получения информации о качестве продукта. Тестировщик заведомо считает, что в коде есть ошибки и его задача их обнаружить.

Задача системного аналитика - принять выполненную работу. Системный аналитик заведомо считает, что ему сдается качественный код и проверяет функционал на соответствие поставленной задачи в целом.

Ну вот, как то так ... :)

SALar, я обязательно посмотрю ссылку.



Re: Проверка алгоритма программистом Ответ #11 : 27 Января 2014, 11:12:18
Задача системного аналитика - принять выполненную работу. Системный аналитик заведомо считает, что ему сдается качественный код и проверяет функционал на соответствие поставленной задачи в целом.
Когда глухарь токует, он никого не слышит.



Re: Проверка алгоритма программистом Ответ #12 : 27 Января 2014, 11:19:33
Системный аналитик заведомо считает, что ему сдается качественный код...
Без обид, но по моему это допущение граничащее с наивностью:)
В любом сдаваемом коде заведомо есть ошибки, если это не программа уровня "Hello world!"
Если отталкиваться от такого допущения, то все сразу встанет на свои места. Т.к. тестировщика нет, то кроме как вам, разработчику некому сдавать свой код с ошибками:)

По хорошему, конечно, когда не тестировщика, лучше работать по TDD, но сам я не знаю российских компаний где эта практика хорошо развита, по этому это скорее пожелание чем совет:)



Re: Проверка алгоритма программистом Ответ #13 : 27 Января 2014, 11:21:33
Цитировать
Когда глухарь токует, он никого не слышит.
Мне понравилось это выражение ! Возьму на заметку !

Но кроме "себя", я получила ваши мнения и ссылку  :D
А это для меня важно !



Re: Проверка алгоритма программистом Ответ #14 : 27 Января 2014, 12:13:40
В любом сдаваемом коде заведомо есть ошибки, если это не программа уровня "Hello world!"
И то сделали ошибку :)) Hello, world!




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19