Kill All Defects - Quality Thoughts - November 2019

I’m starting a trend of writing once a month on trends, libraries, and on future content for Kill All Defects. Like most of my content, this series will focus on software quality and specifically .NET and JavaScript quality.

Each month I’ll talk about:

  • What quality trends I’m observing or discovering
  • New libraries for testing or otherwise improving quality
  • What I’ve been up to this month
  • What articles I’m planning for the near future

New Libraries & Tools

There are a few new or updated libraries out to keep an eye on:

Copycat – Initial Release

Copycat is a new browser extension for recording and replaying web UI tests without relying on scripts or external applications. I’ve yet to look into it in depth, but plan on drilling in more and let you know what I think.

TypeScript – 3.7 Release Candidate

TypeScript 3.7 offers a ton of new improvements to the language and just hit release candidate. I’m really excited about this one and will do an in-depth article on it in the near future.

Snapper – 2.2.0 Release

I’ve written before on Snapper, a .NET library that gives you the same snapshot testing capabilities as Jest unit tests. Recently version 2.2.0 came out which adds support for those using MSTest to power their unit tests.


I know this list is very limited. If you notice something in November that you’d like me to include in my next article, let me know!

Quality Trends

I’ve had the opportunity recently to look over some thesis papers on the topic of defect prediction. This is a really interesting topic.

The basic idea is that metadata about commits or files that include defects are used to predict what files are likely to contain other defects. This algorithm is called bugspots.

Maximillian Scholz took this a step further with his bachelors and masters theses in the concept of linespots. Linespots looks at individual lines which may or may not contain defects.

If you’d like to learn more, a good stepping off point is Maximilian’s talk at the EuroPython conference in 2017.

I don’t have any concrete next steps or detailed thoughts on applying this topic, but it’s something that I’m still thinking over. I’d be curious to hear your own thoughts.

Recent Activities

October saw the launch of www.KillAllDefects.com. While I love dev.to and enjoy Medium, I wanted an easy-to-remember central place to refer people to who wanted to find more thoughts on software quality. Now my articles are posted there, then shared to other sites.

In complete honesty, I do dream of writing a technical book at some point down the road, and having an established audience could help in that endeavor.

In October I published the following articles:

So, I’ve been busy!

When I look at this list, I see a few big articles as well as some smaller one-off articles and as well as an unusual series in F#.

The F# series isn’t as centered on quality, but more of a structured introduction to a variety of .NET programming topics. The series should come to an end in November.

What’s Next?

In October, my focus was largely on meta, C#, and F#. TypeScript and JavaScript were an afterthought and I’m going to change things up.

Going forward, my goal is going to be one larger tutorial or in-depth article each week and two smaller ones. I also want to publish one thing on .NET, one thing on web technologies, and one general article each week

In November, expect me to explore the following topics:

  • .NET Code Analysis with NDepend
  • What’s New in TypeScript 3.7
  • TypeScript linting with ESLint
  • Code Formatting with Prettier
  • Exception Tracking Services and their role in application quality
  • Thoughts on Code Coverage
  • Implementing Genetic Algorithms in .NET with GeneticSharp

I also am aiming to get my slides finished for my talk in January at CodeMash 2020.


That’s it for this time!

I love to adapt my writing to fit the needs of the community. If there’s anything of particular interest to you, please let me know in the comments or contact me on twitter.

Tags:

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.