TDD, Unit Testing, and Debugging
Wednesday, October 11th @ 5:00 pm – 8:00 pmFree
As the computer science industry trucks on, the software we develop becomes increasingly intricate and complex. Testing after writing chunks of code has become a bad practice – we tend to develop a complex solution with dozens of working parts, but by only testing the solution it becomes difficult to isolate the areas which cause bugs and defects. This is where test-driven development (TDD) and unit testing come in.
TDD is a software engineering paradigm where we write code to test the components of our software alongside the writing of the software itself. We do this with unit testing. Using Java and the versatile IntelliJ IDEA, we will explore the uses of unit testing and how to implement unit tests to simplify and streamline the development process.
Please note, that while the tutor will be using a specific IDE for demonstrations, the actual construction of a unit test is not unique to the IDE. If you are using an IDE other than IntelliJ, please consult its documentation for how to set up a unit test. The tutorial will focus on how to write and structure unit tests.
Please make sure to bring a laptop with you.
To be best prepared, come with a JUnit compatable editor, such as Eclipse or IntelliJ. Here are some resources to get set up for the lab.
- Junit with Eclipse: http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2FgettingStarted%2Fqs-junit.htm
- JUnit with JGrasp – http://www.jgrasp.org/tutorials200/jGRASP_11_JUnit.pdf
- JUnit with IntelliJ – http://stackoverflow.com/questions/19330832/setting-up-junit-with-intellij-idea
- IntelliJ for Students – https://www.jetbrains.com/student/
Jonathan is a graduate of Mount Saint Vincent University (MSVU) and Dalhousie University, with degrees in Arts and Computer Science. Having originally studied under Arts to be a teacher, Jonathan has worked in multiple environments as an instructor – as a teacher in South Korea after his Arts degree from MSVU, and as a tutor and teaching assistant during his Computer Science degree from Dalhousie with Dr. Srini Sampalli. He has always had an interest in exploring different development platforms, which has exposed him to a variety of IDEs (IntelliJ IDEA, Webstorm, Netbeans, Visual Studio, among others) and text editors (Atom, Visual Studio Code, Sublime Text, etc.). Though most of his work has been in Java, Jonathan enjoys exploring alternative languages and their accompanying frameworks, such as C# and .NET, the MEAN stack for web development, and the many frameworks associated with mobile development. He also regularly works with GitHub, able to operate both through command line and IDE interfaces (but heavily preferring the latter).