Re[5]: Test plan
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.04.13 23:57
Оценка: 15 (1) +1
Здравствуйте, McSeem2, Вы писали:

ГВ>>Э... Знаешь, есть такой закон Мерфи: "Настоящие программисты не тестируют"? Ловятся если не все, то почти все, и что характерно, все уверены в том, что вот у них-то всё совершенно нормально. В смысле, я не думаю, что ты непременно поймаешься, но уверенность слегка настораживает.


MS>Но я-то как раз тестирую, причем весьма тщательно, прежде чем сабмитить свой код. Это первая заповедь программиста.


Давай, представим на мгновение, что ты... Скажем, решил организов... Нет. О! Достало тебя всё, ты всё бросил и ушёл в запой. Ну вот, наскучило тебе всё, и ушёл ты в запой. Устал, со всеми бывает — месяц побесишься и очухаешься. А твой чудесный, полностью-полностью оттестированный код тут как раз понадобилось слегка доработать. А где доработать — там и проверить.

MS>Бывают лажи, но в основном по мелочи и всяко меньше, чем у Kenny. Он такой типа рутинщик, но часто мне приходится править его глюки, типа банальной проверки на null-ref при down-cast. Он делает очень много, гораздо больше чем я. Но разгребать после него — это иногда кошмар.


Раз ты смог подобрать сопельки за Kenny, то и другие смогут. К Kenny как раз вопросов нет: если кто-то может исправить его код, это автоматом означает, что в его коде можно разобраться.

MS>И вообще, с возрастом приходит такое понимание — не надо "звездить", делай просто и надежно, даже если это противоречит твоей внутренней философии.


Так вот как раз для фирмы "просто и надёжно" — это когда есть куда отправить нового человека что-то почитать (за исключением одного лишь кода), при этом зная, что чтение не займёт много времени и не потребует решения нетривиальных задач. Короче говоря, что постижение наработанного займёт некое предсказуемое время.

Так что трансформация внутренней философии ещё не окончена — теперь она должна охватить не только твоё персональное "хочу-не хочу", а немного осмотреться в окружающем мире.

ГВ>>Кажется, начинаю понимать... Попробуй сыграть по всем правилам: перечисли в том тест-плане полный список параметров, граничнные значения, ожидающиеся характеристики под нагрузкой (если применимо). Это немного out of scope для тест-плана, но всё-таки. Приведи несколько характерных тест-кейзов для примера и ещё — негативные кейзы, то есть такие, где должны вылететь ошибки. Играть, так играть, чего уж там!


MS>Да блин, тестеры это все уже 256 раз знают. Я собственно и приделал этот митер, чтобы посмотреть, а сколько реально времени занимают мои псевдо-каналы. Чисто сам для себя, потому что в задачу тестеров это не входит. Но я искренне хочу, чтобы наша софта работала хорошо. Оказалось, что практически нисколько по сравнению с мониторингом. А директор был очень сильно озабочен этим вопросом. Потому что прежние программеры вызывали некий скрипт на питоне, и он конечно же работал жутко тормозно. А я просто сделал eval абсолютно классического типа имени Дейкстры, вот и все. Shunting Yard — классика. Это заняло пару дней, чтобы подогнать и отшлифовать под задачу. И в работе занимает не более процента всего времени, даже при очень сложных выражениях. Ну и потом прорвало. А давай сделаем логические выражения, а давай добавим IIR фильтры, а вот если еще каутнеры добавить, то вообще будет круто. Ну, добавляю, что мне не сложно. Но и не интересно.


Поэзия, конечно, даже жалко опошлять, но ты не серчай, ежели чего. Значит, ты сейчас сказал, буквально, следующее: "Появилась тулза, которая всем понравилась и на неё на неё начали пошагово накручивать функционал". Тулза перестала быть твоим ювелирным поделием и стала "производственным объектом", к которому подцеплено много людей, много пожеланий и — много надежд. Подозреваю, что твой шеф, не будь дураком, всё это распрекрасно чувствует, и твою тоску от тривиальных доработок — тоже. И отлично понимает, что за этим может последовать. Ну, не понимает, а скажем так, выделяет несколько вариантов развития ситуации, среди которых будет немало негативных. Чего он в конечном итоге боится? Он боится потери контроля, и правильно делает. Kenny шарашит код, как из пулемёта, но в его коде разберётся даже школьник, так что с ним проблем нет и ещё сто лет не будет. А ты весь такой продвинутый, гуру, но уже начинаешь зримо скучать, и кто тебя знает, что у тебя на уме? И получится, что масса народу зависит от одного тебя и твоего настроения.

MS>Ну и возник вопрос — а зачем изобретать колесо? — а вот зачем, чтобы быть независимым. Ну представьте, 30K кода на C# или пожизненная

MS>зависимость от какой-то там DLL? А вот поэтому и надо. Софта должна легко запускаться и работать, безо всяких внешних условий. И это инженерам нравится. А если еще какой-то Питон надо инсталлировать, да пошли вы со своим питоном, тем более, что в реал-тайме он ну вообще никак не катит.

Инженеры правы, что тут скажешь?

MS>И вот вопрос приоритета — Kenny классный программер, но он рутинщик и очень молодой. А я как старший товарищь должен за ним следить. А мне этого не хочется, я хочу решать нетривиальные инженерные задачи. Ну и как теперь жить, Дядь Мить?


Не льсти себе, тебе нравится не инженерные задачи решать, а в технических головоломках ковыряться и решать сугубо технические ребусы. Сомнений нет, дело благое, сам люблю, но это только малая часть инженерной работы. Инженер — он ещё и организатор. Те, кто не занимается организацией — по сути, простые слесари. Я не против слесарей, не подумай чего, только не называй их работу инженерной. На старом наречии таких называли левшами. Да, левша может сделать из г..на конфетку, но он — левша. Инженер же сделает так, чтобы левша сам по себе мог появиться (т.е. — поставит ему задачу), да ещё не просто появиться, но и не потерять при этом своего достоинства (сиречь — учтёт человеческий фактор).

Так что, вот тебе нетривиальная инженерная задача: сделать так, чтобы знания о способах тестирования легко могли быть переданы другому человеку. Шикарная задача, если разобраться!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.