STLH:

"THE BEST WAY TO MAKE YOUR DREAMS COME TRUE IS TO WAKE UP..."

Search This Blog

Introduction & Importance of Testing:

Software testing is critical element of software quality assurance and represents the ultimate process to ensure the correctness of the product. The quality product always enhances the customer confidence in using the product nearby increases the business economics. In other words, a good quality product means zero defects, which is derived from a better quality process in testing.

Software systems are an increasing part of life, from business applications (e.g. banking) to consumer products (e.g. cars). Most people have had an experience with software that did not work as expected. Software that does not work correctly can lead to many problems, including loss of money, time or business reputation, and could even cause injury or death.
 
Some of the case studies:  
Software errors have caused spectacular failures, some with dire consequences, such as following examples.

Millennium Bug 
The Millennium Bug, or Y2K, is the best known bug on this list and the one that many of us remember hearing about at the time. Basically, this bug was a result of the combined short-shortsightedness of computer professionals in the decades leading up to the year 2000. 

In many computer systems, two digits were used to show the date, e.g. 98 instead of 1998, a practice that seemed reasonable and which pre-dated computers by some time.

Many didn’t anticipate, however, that there may be a problem when the date went past the year 2000. Using current systems, the year 2000 could only be represented as ’00', which might confuse computers into thinking it meant the year 1900. Such a thing would break any calculations involving ranges of years that crossed the millennium. For example, it might show somebody born in 1920 and dying in 2001 as being minus 19 years old.

In response to the problem, software companies rapidly updated their products, which already controlled just about everything from banking and payrolls to hospital computers and train ticket systems. Also, in recognition of its worldwide nature, the International Y2K Cooperation Center was created in February 1999 to help coordinate the work required to prepare for the new millennium between governments and organizations, where needed. In the end, the New Year passed without too much incident, besides the universal mother-of-all-hangovers.

It’s hard to say how much of this success was a result of the work carried out to alleviate the problem, or whether the problem had been exaggerated in the media in the first place – probably a mix of both.??

World of War craft “Corrupted-Blood” Glitch
The hugely successful World of Warcraft (WoW), an online computer game created by Blizzard Entertainment, suffered an embarrassing glitch following an update to their game on September 13, 2005 – causing mass (fictional) death. 

Following an update to the game content, a new enemy character, Hakkar, was introduced who had the ability to inflict a disease, called Corrupted Blood, upon the playing characters that would drain their health over a period of time. This disease could be passed from player to player, just as in the real world, and had the potential to kill any character contracting it. This effect was meant to be strictly localized to the area of the game that Hakkar inhabited.

However, one thing was overlooked: players were able to teleport to other areas of the game while still infected and pass the disease onto others – which is exactly what happened. I can’t find any figures on the body count, but entire cities within the game world were no-go areas, with dead player’s corpses littering the streets. Fortunately, player death is not permanent in WoW and the event was soon over when the administrators of the game reset the servers and applied further software updates. Particularly interesting is the way players reactions in the game could closely reflect their reactions to a similar real-life incident.

Northeast Blackout
NEW YORK (AP) - A programming error has been identified as the cause of alarm failures that might have contributed to the scope of last summer's Northeast blackout, industry officials said.

The failures occurred when multiple systems trying to access the same information at once got the equivalent of busy signals, he said. The software should have given one system precedent.

With the software not functioning properly at that point, data that should have been deleted were instead retained, slowing performance, he said. Similar troubles affected the backup systems.

Denver Airport Baggage-handling System
(Scientific America) -- Scheduled for takeoff by last Halloween (1993), the airport's grand opening was postponed until December to allow BAE Automated Systems time to flush the gremlins out of its $193-million system. December yielded to March. March slipped to May. In June the airport's planners, their bond rating demoted to junk and their budget hemorrhaging red ink at the rate of $1.1 million a day in interest and operating costs, conceded that they could not predict when the baggage system would stabilize enough for the airport to open.

On 31st March 1986, a Mexicans Airlines Boeing 727 Airliner crashed into a mountain because the software system did not correctly negotiate the mountain position.

Between March – June 1986 massive Therac 25 radiation therapy machines in Marietta, Georgia, Boston, Massachusetts and Texas, overdosed cancer patients due to flaws in the software program controlling the highly automated devices

On 10 December 1990, Space Shuttle Columbia was forced to land early due to software problems.




Now to answer, “What is testing?” we can go by the famous definition of Myers, which says, “Testing is the process of executing a program with the intent of finding errors”.

OR

"Testing an application to detect differences between existing and the required condition and evaluate the features of the software application."

OR

"It is a process of verifying are we developing the right product or not and also validating does the developed product is right or not."




What is a Defect & its significance?
A mismatch in the application and its specification is a defect. A software error is present when the program does not do what its end user expects it to do.

A Defect is a product anomaly or flaw. Defects include such things as omissions and imperfections found during testing phases. Symptoms (flaws) of faults contained in software that is sufficiently mature for production will be considered as defects. A deviation from expectation that is to be tracked and resolved is also termed a defect.

Rigorous evaluation uses assumptions about the arrival or discovery rates of defects during the testing process. The actual data about defect rates are then fit to the model. Such an evaluation estimates the current system reliability and predicts how the reliability will grow if testing and defect removal continue. This evaluation is described as system reliability growth modeling.

Defect Classification
The severity of bugs will be classified as follows:

Critical: The problem prevents further processing and testing. The development team must be informed immediately and they need to take corrective action immediately.

High: The problem affects selected processing to a significant degree, making it inoperable, Cause data loss, or could cause a user to make an incorrect decision or entry. The development team must be informed that day, and need to take corrective action within 0 to 24 hours.

Medium: The problem affects selected processing, but has a work-around that allows continued processing and testing. No data loss is suffered. These may be cosmetic problems that hamper usability or divulge client specific information. The development team must be informed within 24 hours, and they need to take corrective action within day or two.

Low: The problem is cosmetic, and does not affect further processing and testing. The Development team must be informed within 48 hours, and they need to take corrective action within 48-96 hours.

Cost of Defect
Cost of Defect or an evaluation of defects discovered during testing and provides the best indication of software quality. Quality is the indication of how well the system meets the requirements. So in this context defects are identified as any failure to meet the system requirements. Defect evaluation is based on methods that range from simple number count to rigorous statistical modeling.

Cost of defects would be very high if defect uncover at the later stage of the software development life cycle.


What is Software Quality Assurance?
Quality Assurance ensures all parties concerned with the project adhere to the process and procedures, standards and templates and test readiness reviews. QA service depends on the customers and projects. A lot will depend on team leads or managers, feedback to developers and communications among customers, managers, developers' test engineers and testers.

Software Quality Assurance (SWQA) relate its oriented to *prevention*. It involves the entire software development process. Prevention is monitoring and improving the process, making sure any agreed-upon standards and procedures are followed and ensuring problems are found and dealt with Software Testing, when performed, it is also oriented to *detection*. Testing involves the operation of a system or application under controlled conditions and evaluating the results. 

Organizations vary considerably in how they assign responsibility for QA and testing. Sometimes they are the combined responsibility of one group or individual. Also common are project teams, which include a mix of test engineers, testers and developers who work closely together, with overall QA processes monitored by project managers. It depends on what best fits your organization's size and business structure.

What we learnt summary...
• Testing is the process of executing a program with the intent of finding errors
• Software Testing basics
• The Testing process and life-cycle.
• Defect and its significance.


Test your Understandings-

1. The primary objective of testing is
a) to show that the program works
b) to provide a detailed indication of quality
c) to find errors
d) to protect the end –user

2. Which of the following will be the best definition for Testing?
a) The goal / purpose of testing is to demonstrate that the program works
b) The purpose of testing is to demonstrate that the program is defect free
c) The purpose of testing is to demonstrate that the program does what it is supposed to do
d) Testing is executing Software for the purpose of finding defects

4 comments: