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