Week 11, 2019: Testing testing testing

As we are spreading and building up our skills in software testing (particularly unit testing), this week’s issue explores why it matters and how to effectively improve your code’s testability. Let’s start with some gentle introductions before moving to a team-specific discussion at the end.

History of Software Testing (list of facts)

Given the short history of the software development industry, one may think that testing is a recent occurrence. The history of testing actually goes back centuries and is almost as old as computing itself. This is a list of significant events in the field, with a move from theoretical research in the early days to a more practical approach in recent years.

A Brief Essay on Software Testing (very long read)

Timeless and in-depth literature review on software testing. Since each section in this essay is a gem by itself, I decided not to summarise it here. However, if you don’t have time to go through the whole paper (12 pages, double-column, excluding references), have a read of subsection 3.3 “Objectives of testing” (page 4) and the whole section 4 “Test Levels”. They provide a 360° overview of the testing world.

Intro to BDD and TDD (blog post)

Here’s an honorary mention for Behaviour Driven Development (BDD), which will be discussed in a future update.  Meanwhile, I think it is still beneficial to have a broad perspective of testing methodologies and understand their relationships. To recap: BDD safeguard the business requirements whereas TDD ensures that all the gears of the machine work as intended. They work together to facilitate the creation and maintenance of functional and beautifully built software system.

The rest of this week’s update will focus on unit testing, which is used inside our team on a day-to-day basis. Continue reading “Week 11, 2019: Testing testing testing”

Week 10, 2019: AI & Performance

Humans Who Are Not Concentrating Are Not General Intelligences

This is a fun article with a somewhat scary realization. As AI & Machine Learning advances, computers can generate more and more seemingly-realistic content. In this post, the author found that although texts generated from OpenAI’s latest language model look real to people who skim them, they are quite unlogical to those who pay close attention. This reminds me of all the buzzes around fake news & the US election a while back. Also, in case you are not aware, the general IQ of the human race has been going downhill for a while now.

Meanwhile, it’s arguably difficult to judge a person’s IQ via simple daily interactions. Not every job requires one to be smart and neither being clever alone an indicator of success. I guess there are much more to human existence than mind & matter. Continue reading “Week 10, 2019: AI & Performance”

Week 09, 2019: Hello World! Functionally Speaking…

I am a believer of continuous improvement over the ceremonial new year resolutions. However, as my upcoming birthday approaches, it’s time to start my long-delayed writing project. This blog is a collection of my public notes on technical trends, programming paradigms and general software engineering, serving as my platform for sharing ideas and discussing views, especially with my colleagues. There are 2 main types of updates.

  • Lists to external sources on topics of interests, usually with additional notes, to support an offline discussion or tutorial.
  • Long form writings where short conversations don’t cut it, or when/where I may want to refer to the same content again for a future teammate.

There isn’t an “about me” page, as we probably know each other IRL. The usual disclaimer applies, the opinion expressed here are mine and not that of my employer.

Let’s start with the first update.

Continue reading “Week 09, 2019: Hello World! Functionally Speaking…”