BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Banat IT - ECPv4.8.1//NONSGML v1.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:Banat IT
X-ORIGINAL-URL:https://banatit.ro
X-WR-CALDESC:Events for Banat IT
BEGIN:VEVENT
DTSTART;TZID=UTC+2:20180322T093000
DTEND;TZID=UTC+2:20180322T173000
DTSTAMP:20260430T071844
CREATED:20180321T194845Z
LAST-MODIFIED:20180404T201501Z
UID:4274-1521711000-1521739800@banatit.ro
SUMMARY:Masterclass: Effective Testing in Java
DESCRIPTION:\nWe all know that testing is important\, but most of us have had little education about the different approaches to testing and are left to teach ourselves. Unfortunately\, it takes most people years to learn good habits and techniques\, and the mistakes we make when learning are often costly\, frustrating\, and counter-productive. We end up with slow tests\, tests that break for bad reasons\, and tests that are impossible to reason about when they fail.  In other words: useless tests. \nMany people simply return to the well-known technique of our self-taught days: code it\, play with it\, move on. In this workshop we’ll concentrate on helping you create tests that are effective: test that run quickly\, only fail for good reasons\, give you clear information when they break\, and are easy to understand when you have to read them (which should be rarely). \nThis is a hands-on workshop where we’ll actively work through the methods of testing using the Java programming language. If you complete the labs you will have a completely working application that is fully covered\, and demonstrates most of the topics covered in the course. \nParticipants should already know the Java programming language. At least a year of experience is recommend. The course contains material that even senior develops should find useful. Each participant that wishes to participate in the lab should come with a laptop that has their favorite IDE and git already installed and working. Labs will be done as a git fork of a maven-based Java project that participants will push to in order to share work. IntelliJ will be used by the instructor\, but any IDE that can run JUnit tests and load Maven projects is fine. \nCourse Outline \nLecture 1 – The Basics \nDemonstration of an effective test suite\nCriteria of a good test\nIdentifying good tests\nWhy test coverage statistics are nearly useless\nTest “code smells”: spotting bad tests\nA summary of helpful rules \nLab 1 – Covering the Basics \nIn this lab you’ll write some simple unit tests that meet the criteria taught in the lesson.\nSolutions to Lab 1 – Forum for discussion challenges and solutions. \nLecture 2 – The Spectrum of Tests \nCost/benefit analysis of manual vs. automated testing\nTesting in the presence of side-effects\nDealing with I/O\, Databases\, and other “external” systems\nSystem Integration Testing \nLab 2 – Dealing with I/O \nIn this lab you’ll write tests that cover the I/O concerns of the lab project.\nSolutions to Lab 2 – Forum for discussion challenges and solutions. \nLecture 3 – Controlling the Layers \nWriting Testable Code: Techniques that improve your ability to reason\nThe role of mocking and injection\nAn overview of injection techniques\nPros and Cons\nMocking code smells\nDesign patterns that can help\nLanguage-specific workarounds \nLab 3 – Layered Testing \nIn this lab you’ll see how injection and mocking can make otherwise untestable things easy to test.\nSolutions to Lab 3 – Forum for discussion challenges and solutions. \nLecture 4 – Managing Complexity \nDesign and Agile practices\nSeparating real complexity from incidental complexity\nTechniques that leverage testing to enable evolving design over time\nSome Case Studies as Examples \nLab 4 – Complete the Project \nIn this lab participants will complete the lab project.\nFinal Solution – Forum for discussion about the completed project. \nLecture 5 – Verification\, Refactoring\, and Code Hygiene \nSpot-checking the test suite\nWhen/why do you refactor?\nEvolving the specification\nContinuous Integration \nFinal Lab – Spot checking and CI \nGet your tests running in CirclCI\nHave another participant spot-check review your tests \nThe trainer\nVijay is a functional programmer in Clojure/Scala with 15 years of experience with Java and JVM technologies. He is Co-organiser of Dutch Clojure Day and Co-host of defn – a Clojure podcast. \nHe currently works as Lead Dangineer dealing with all things Data Engineering/Analytics/Science at Werkspot\, Amsterdam. \n
URL:https://banatit.ro/event/masterclass-effective-testing-in-java/
CATEGORIES:Meetup
ATTACH;FMTTYPE=image/jpeg:https://banatit.ro/wp-content/uploads/0a2933074508b8da02e90a99b7eb9b65.jpg
END:VEVENT
END:VCALENDAR