Без заголовка
> Задача тестов - найти ошибки. Я сильно сомневаюсь, что куча мегабайт, нагенерённых из исходного кода, способна в этом помочь.
Зависит от целей. В моем случае, цель была вообще не поиск ощибок, а сертификация :).
Вообще говоря, чем больше тестов тем лучше. Тут имеет значение лишь наличие ресурсов, которые можно/нужно выделить на тестирование.
В моем случае, мегабайты - это были вообще крохи, ибо проект в котором я учавствовал, был самым большим софтовым проектом в мире на то время, да и сейчас думаю тоже (по объему кода по крайней мере). Это было проект по тестирования Java - Java Comaptibility Kit, его гоняют, чтобы просертифицировать того, кто делает альтернативную реализацию Джавы.
Я конечно немного перестарался, потому что мои тесты работали слишком долго - около получаса. При том что полный прогон длился несколько суток. Поэтому я немного тесты подрезал, но сам код вряд ли сократился, просто переменные циклов поменьше стали. Это я к тому, что если бы я циклы развернул, то там даже и не 5 метров кода было бы, а хрен знает сколько, и они бы в Джава машину бы уже не влезли.
Но! Все равно это было поверхностное тестирование. Грубо говоря, мы какие-то баги находили, но которые лежали более-менее на поверхности. Поиском багов занимались отдельные люди. Просто в Джаве на тот момент было пара тысяч классов (публичных) в каждом десяток методов, у каждого несколько параметров. У каждого параметра несколько значений, даже просто перебрать это все хотя бы по разу и проверить результат, уже куча кода получается.
И на самом деле то чем я занимался - это детский лепет. Потому как есть такая компания Боинг, Анатолий Левенчук писал в этом блоге, что она уже софтовая компания, ибо 50% ресурсов уходит на верификацию авионики. Дык вот у них там один тестовый сценарий может несколько мегабайт занимать. Я просто на досуге играюсь с верификацией софта. И там нагенерить пару мегов, это обычное дело. Т.е. чтобы одно утверждение проверифицировать, генерируется файл на несколько мегов, его суешь на вход верификационой системы, а верификционных систем может быть несколько. Ну и на каждый метод, несколько утверждений и т.д. и т.п. Но для авионики это необходимо, иначе самолетик может упасть в ненужный момент.
> А кризисы были, есть и будут. Менеджмент же не меняется. Ещё сам Сименс ругался на своих управляющих за то же самое, за что сейчас их все ругают.
Да это все так. Это есть свойство больших групп. Однако, происходит изменение в метастратегии, т.е. раньше большие батальоны хоть и безмерно тупые, но они массой заваливали. А сейчас, массы уже все чаще и чаще не хватает, потому как и спрос на массу на самом деле раздутый. Поэтому большие батальоны, а с ними и менеджеры будут потихоньку сливаться, придет время профессионалов. Это тот же процесс что и с армиями, вопрос соотношения мобилизационного потенциала и потенциала уничтожения. Рано или поздно появится гений, который сгенерирует операционную систему типа Винды в одиночку. Естественно, используя существующие наработки и код. Просто возьмет к примеру, Линуксовые драйвера и перегенерирует под свои цели. Возьмет Виндовый код запарсит автоматически, сгенерирует к примеру по нему тесты для Вин АПИ. Ну и нагенерирует код, который эти тесты проходит используя Линуксовые открытые драйвера. И он будет выглядеть и работать как Винда в 95% случаев.