Whyline
Whyline для Java действительно впечатлил меня, когда я увидел это. Это инструмент динамического анализа, который позволяет задавать вопросы о выходных данных программы, причем не только текста, но и графики. Например, вы можете спросить "почему эта линия была красной?" или "почему метод рисования не вызывается?"
Это работает путем инструментирования вашей программы и записи пробега. Например, предположим, что есть ошибка, которую вы можете воспроизвести. Вы управляете своей программой с помощью Whyline, запускаете программу в Whyline для воспроизведения ошибки, а затем, когда вы выходите из программы, вы можете использовать Whyline для проверки истории выполнения.
Эта запись и воспроизведение не новы, но то, как Whyline реализует это, довольно гладко. Вы можете просматривать историю в соответствии с конкретными событиями (например, фокусируясь только на событиях перетаскивания мышью или только на событиях нажатия клавиш). Он также связывает вывод с тем, какая часть программы напечатала его, поэтому вы можете переходить от вывода к коду.
Для работы он использует программную нарезку, так что вы можете сосредоточиться на тех частях кода, которые действительно актуальны. У CMU теперь есть патент на него, и я не знаю, каковы их планы, но я надеюсь, что мы сможем увидеть больше его в производстве. Это боров памяти, но это скорее всего потому, что это прототип, и он может улучшиться.
Вы должны увидеть демо онлайн, но вы также должны попробовать его сами, чтобы получить полный опыт. Во всяком случае, онлайн-демонстрации недооценивают эту идею.