Lessons Learned in July 2016

This is what I learned in July 2016:

  1. is a mutation testing toolkit. It changes the code under test (not the test themselves!) by applying several mutators. This way, a lot of mutants are generated. These mutants are tested with the existing tests. The goal is that the test fails for every mutant because if someone accidentally changed the implementation, unit tests should turn red. Applying pitest leads to writing more unit test to make the test setup more robust. The number of surviving mutants (i.e. the code that has unsufficient code coverage) is a metric of the quality of your test setup.
  2. One of the most annoying problems I encountered as a software engineer is the refactoring of the names of classes that only change lower- to upper case or vice versa. Committing / pushing that in version control systems (VCS) almost always ends up in a mess because of file systems or ignorance of the VCS. With the version 16.2, IntelliJ IDEA promises to support those case only refactorings. Additionally, in one of the latest versions of the IDE, JUnit 5 support has been built in. This caused me to try to organize the new version for my team. Let’s see how that goes.
  3. Again something about IDEA. One of my coworkers explained IDEAs dependency matrix to me. That was one of the functions I never took the time to look into, and it really doesn’t explain itself. This help page explains this useful tool.
  4. One more thing: Since switching from Eclipse to IDEA, I missed the “show me all methods and attributes in this class”- function. I learned recently, that Ctrl + F12 shows the structure of the class, which basically is the same function. Yeay!
  5. I love podcasts. There is always one of those knowledge-spending voices in my ear when I’m commuting to work or cleaning the house. Recently, I learned about, a collection of (German-speaking) science podcasts.
  6. Because we recently had some problems with this issue, I added the following to my article about remote working: “Especially while Desktop Sharing, it’s highly recommended that all team members have the same keyboard layout and shortcuts in their IDEs. It’s just overhead to change the layout or shortcuts in the middle of a debugging session and loose time and concentration.”
  7. I published one of my project drafts, “ITMentorHub”, so it can be implemented by someone else.
  8. Here is an interesting talk from Angelika Langer about API-Design with Lambdas. I extracted some thoughts to my Java 8 workshop.

(Photo: adrian825,