Why your team mates are not writing tests and what you can do to fix it
Joydeep Bhattacharjee (~infinite-Joy) |
There is a reason why inspite of the fact that writing tests is universally revered, very few developers write tests with zeal and enthusiasm. Developers are generally worried about the time spent in writing and maintaining the tests. They believe confidence in their software through high test coverage comes at the expense of developer productivity. In large teams we might face with the additional complexity of hundreds of false positives where specific changes and boilerplate needs to be fixed to for every minute code changes just because build will not pass if all the tests are not passing. This results in developer frustration.
This talk will explain why such false positives occur in testing and what can be done to avoid them. This talk with depend heavily on the principals of software architecture and creation.
By the end of this talk, attendees will have a clear understanding of the anti-patterns to avoid which will make their lives easier and help them achieve better and easier test coverage. Attendees will be able to understand how writing tests will increase their productivity and achieve confidence in their code at the same time.
- Introduction to python testing and a simple test. [5 mins]
- A common example of production code and how a common test code is written. [5 mins] [spoiler: this example though "real world" would be loaded]
- The principals of software architecture and how to deal with the issues in the test for the given code. [10 mins]
- Coding a changed example and how the changed example is better. [10 mins]
- Closing notes, summary and how to convince the team mates. [5 mins]
This talk is for anyone who thinks that tests are good in general but has missed out on writing tests more than once either due to deadline pressures or because the next big thing needed to be built yesterday. This talk might also be for developers who have all the time in the world and after achieving 100% test coverage go and enjoy fishing. I will be showing classes and hence atleast some knowledge of writing classes is required.
Slides to the talk: https://docs.google.com/presentation/d/1JjRNCpGC8IqbRLVGVcghn-0uQABE6Ml0_2DBi2Xlsek/edit?usp=sharing
Working on the associated code as well.
Joydeep is a machine learning engineer/python developer and is a Principal Engineer at Nineleaps. 6 years back he saw the Zen of Python, fell in love with Python and has been in love with it since then. His aim in life is to save the world one function at a time.
linkedin: https://www.linkedin.com/in/joydeep-bhattacharjee-934a1157/ Blog: https://medium.com/@joydeepubuntu twitter: https://twitter.com/alt227Joydeep datahack speaking: https://www.analyticsvidhya.com/datahack-summit-2018/sessions/transition-from-pandas-to-spark-dataframe-using-scala/