The Pursuit of Perfection

The Pursuit of Perfection

In software engineering, we test primarily to diminish risks. Errors are costly, and testing serves as a safety net for the full software system.

However, it is not the only purpose of testing. We can also do testing for understanding, just as software engineers should do when writing a program. And racing drivers do when learning a new track or car.

The parallels between racing and software development may not be immediately evident. However, both require the design and implementation of solid processes to secure success.

This article introduces methods, techniques, and tools to ensure clarity of thinking and implementation during development of project processes.

Continuous Integration is Absurd without Unit Testing

Continuous Integration is Absurd without Unit Testing

Continuous integration is absurd without unit testing. Imagine this conversation between colleagues: “We are DevOps pioneers,” my colleague says, swinging his arm towards the Dell Inspiron that hums away on the edge of his desk. On the screen, a mass of red boxes...
Can requirements-based software testing be automated?

Can requirements-based software testing be automated?

Very few people love testing, but technology has come a long way since the days when tests needed to be written manually one by one. Requirements-based testing however, tends to act as a sticking point when teams start to investigate how they can increase their levels...
What is meant by Structural (Code) Coverage?

What is meant by Structural (Code) Coverage?

Put simply structural, or code, coverage is the amount of code that is covered in execution by a single test or collection of tests. For a procedural language like C, you can identify a function of interest, run some test cases on this function, and then measure what...
Have you covered *this* when testing C and C++ Software?

Have you covered *this* when testing C and C++ Software?

The ability to produce reliable technologies that rapidly follow market trends creates a competitive advantage in the digital world. Part of being a technology company is about producing reliable technology at a rapid pace. At the same time, we cannot sacrifice code...