ST Notes
ST Notes
NOTE:
Therefore, it is the software that has now become the
lifeline of systems.
The total money spent on computer hardware and
software in the world is exceeding in US$ one trillion
every year.
And, as more and more countries and people become
computer savvy, the expenditures on software will go up.
As automation has brought in revolutionary changes in
the quality of life, the demand for more software-driven
services and products is increasing.
Ex. The ubiquitous mobile phone
Two decades ago, the mobile phone was only for the
elite of the society. Today, it is a necessary gadget in
everyone's hand.
Today, mobile phone is a complex technology
gadget with nearly two millions of code residing in
it.
As the users demand more and more services
through their mobile phones, it is expected that the
software will be about 10 million lines of code in the
next few years.
This indicates how the complexity of software is
increasing day by day, as users demand more and more
facilities in their existing services.
Challenges in Software Projects
The complexity of software projects is increasing
tremendously. Organization that have operations in
different locations in different countries need
sophisticated software to manage their operations.
Example:
Bank account holders no longer wants to go to bank
during their working hours to do any transactions.
They need ATMs, internet banking, mobile banking,
etc. making the banking software more and more
complex.
Software Fiascos
Software development is considered more of an art and
less of science or engineering.
To bring software development into the realm of
engineering, a lot of research has been carried out during
the last four decades.
In spite of the research in finding out ways and means of
developing quality software, the history shows that a large
number of projects are executed very badly.
We keep reading in the newspapers about the mobile
phones have been withdrawn from the market because of
a software problem.
And about the credit card fraud, and so on and all these
incidents are known as software fiascos.
NOTE:
There are many stories in the history of software
development that teach us very important lessons.
Here, are some famous stories that the test engineers
need to keep in mind.
1. Ariane 5
On June 4, 1996, European Space Agency launched the
Ariane 5 satellite launch vehicle.
Exactly 40 seconds after lift-off at an altitude of 3700
meters, the launcher exploded and became a ball of fire.
The project, which was uninsured, costed US$
500million.
Reason
In one of the embedded systems, a software exception
caused the problem.
A 64-bit floating-point number was to be converted into a
16-bit signed integer value.
During one calculation, the converted integer value was
more than the value that can be represented by a 16-bit
signed integer.
This caused an operand error. Yes, the software exception
was handled, but badly.
The specification of the exception handling routine was to
indicate the failure on the data bus, to store the context in
the EPROM and to shut down the processor. The
processor was shut down, and this created the chaos.
The mishap can be attributed to lack of enough testing as
well as flaw in the software design, particularly in
exception handling.
This error is known as 500 million dollar software error
in the software
Interestingly, the software used in Ariane 4 was reused in
Ariane 5, but Ariane 4 was a successful launch. The only
difference is that in Ariane 5 this calculation was not at all
required……….
The failure of this project is a lesson for every software
engineer-one line of code can cause irreparable damage.
Ariane 5 project illustrates the dangers associated with
leaving some portions of the untested code in the
software.
The test engineers need to ensure that each and every
line of the code is tested before releasing the software.
2 Patriot Missile.
During the 1991 Gulf war, an Iraqi Scud missile hit an
American army barrack killing many soldiers. An
American Patriot missile could not track and intercept
Scud missile.
The Reason
A software bug in the Patriot missile.
Whenever the tracking system of the Patriot was
switched on, it measured the elapsed time from an
internal clock in tenths of a second.
This value was multiplied by 10 to the time in
seconds. The calculation was performed using 24-bit
fixed-point register.
Hence, the value of 1/10 stored in a register was
truncated to 24 bits, whereas the exact value is
0.000110011001100110011001100.....
When the value is truncated, an error introduced and
this error accumulated over a period of time.
The Patriot missile was switched on for about 100
hours, and so the accumulated error was 0.34 second.
Scud travelled with a speed of 1,676 meters per second,
i.e. or more than half a kilometer in 0.34seconds.
As a result, the Patriot could not intercept the Scud. This
incident indicates the care that needs to be taken, while
designing and testing mission-critical systems.
4. CT Scanner
In a Canadian hospital, suddenly a patient
undergoing the scanning died.
The machine was rechecked thoroughly and then
again the scanning started.
After scanning of a few patients was completed,
another patient died.
Randomly, patients were dying and after the
death of more than 20 patients, the defect was
identified.
Reason:
A glitch in the hardware was resetting the software.
During the short time of that resetting, the patient was
exposed to large amounts of radiation because of lack of
control on the radiation.
As a result, the patient used to die.
NOTE:
A simple trick ,since amount is very small no customer will
complain to the bank.