Testing is good, and as developers we should all do more of it. Test-Driven Development (TDD) is a principle and a development discipline that can help immensely to improve the quality of your finished code. But because TDD relies on a rapid development cycle that requires frequently rebuilding, re-deploying and re-running tests, it requires that your tests are able to deploy and run quickly in order to be feasible. If they are not, then the developer will naturally tend to become less disciplined in running the tests regularly and the benefits of TDD will be diminished. This presents a particular hurdle for complex testing scenarios (eg, integration tests), which is unfortunate because these are often the scenarios where TDD could be of the most benefit.
For a long time, the Bndtools project has leveraged OSGi's live code update ability to provide its "Dynamic Debugging" capability (see https://bndtools.org/) - if you launch your application in Eclipse and then make a change to one of your deployed bundles while it is running, then Bndtools will not only rebuild your bundle automatically but will also redeploy it into the running application so you can immediately see if it works. Similarly, Bnd (on which Bndtools is based) has also provided "Continuous Testing", where test bundles that were automatically redeployed would also re-run their tests - however, Bndtools did not fully integrate this feature with the Eclipse IDE. This changed in Bndtools 5.0, and continuous testing has now been fully integrated with the IDE. By leveraging this capability in conjunction with Dynamic Debugging, now more than ever it is feasible to apply TDD principles even to complicated systems - improving testing coverage and code quality.