“Test complete. Preparing to power down and begin diagnostics…” Jarvis, Iron Man
It doesn’t matter if you’re building computer software or a red superhero suit – you have to test it. Testing is investigation done by, or on behalf of, stakeholders to provide information about the quality of the product or service. Thorough testing of your project is going to minimize risks and errors for those customers who use the final result.
In The Flash, we meet the young Barry Allen who doesn’t yet know the full range of his powers. Early on in the show, there are a multitude of tests that his friends from S.T.A.R. Labs put Allen through to understand his capabilities and limitations. Though not exhaustive of all potential tests, we do see some that are commonly used on software projects.
Since his superpower is the ability to move at ‘superhuman’ speed, the first facet S.T.A.R. Labs tests is Barry’s speed – acceleration, top-speed, and stopping-speed – in one test. Measuring the time and effort necessary for the software to execute the task is very close to S.T.A.R. Labs’ measuring Barry’s acceleration. Measurement of the time it takes for the software to execute and complete a task is similar to S.T.A.R. Labs measuring the top-speed of the Flash. Once complete with the task, however long it takes the software to provide the user with a result could be interpreted as the stop-speed test.
In a software project, this series of tests are called Performance tests. Evaluating the acceleration, processing-speed, and time to produce a usable result/output are all Performance tests.
Under the strain of being the fastest man alive, and moving at superhuman speed, Barry’s body needs an incredible amount of fuel to keep up with the performance requirements. S.T.A.R. Labs determines that the Flash requires approximately 850 tacos to keep up with his resource and energy demands.
Resource testing, sometimes called Installation testing, is equally important in software projects. Determining what the needed amount of computing power and space in order for the software to function up to the project scope is extremely important. Understanding whether or not the computing power that has been allocated for the software is adequate is why testing is so important.
With his body physically capable of moving at superhuman speed, the team moves on to evaluate his mental capabilities. Another test conducted by S.T.A.R. Labs on The Flash, is measuring Barry’s ability to multitask. By providing three very different stimuli to Barry simultaneously – a game of Operation, table tennis, and chess – the team measures his ability to multitask.
In a software project, this series of tests would be called Load or Stress testing. During Load and Stress testing, software is put to the test to determine whether the software is capable of handling multiple, varied, and complex requests at the same time.
Of course, being a superhero comes with a certain expectation of damage to the hero. The S.T.A.R. Labs team has more than enough opportunity to measure the rate at which Barry’s body is able to heal itself and regenerate. This is what gives him abs as well as heals his fractured wrist in 3 hours.
This is similar to another key test that must be conducted called Failover testing. This tests for whether the software or process is resilient enough to know that it doesn’t know everything. Anything that falls out of the defined parameters needs to be repaired or at least documented so that those using the software know what they need to manually fix.
While not necessarily conducted in the order that would make the most sense for a software project, these showcase some of the most important aspects to be reviewed. Irrespective of the order, testing provides critical proof-of-concept and proof-of-quality in the software project deliverable.