Thursday, 30 May 2013

Top Ten Most famous Software Bugs



1)                 - Mars Climate Orbiter Crashes (1998)

 A sub-contractor who designed the navigation system on the orbiter used imperial units of measurement instead of the metric system that was specified by NASA.
Result - The $125 million dollar space craft attempted to stabilize its orbit too low in the Martian atmosphere, and crashed into the red planet.

2)           - Mariner I space probe (1962)

 While transcribing a handwritten formula into navigation computer code, a programmer missing a single superscript bar. This single omission caused the navigation computer to treat normal variations as serious errors, causing it to wildly overreact with corrections during launch. To be fair to the programmer, the original formula was written in pencil on a single piece notebook paper - not exactly the best system for transcribing mission critical information. Then again, this was 1962…
Result - 237 seconds into the mission that was supposed to send Mariner I to Venus, the space craft was so far off course that Mission Control had to destroy it over the Atlantic. The cost of the spacecraft was $18.2 million in 1962.

3)          - Ariane 5 Flight 501 (1996)

 NASA certainly isn’t alone in its spacecraft destroying software bugs though. In 1996, Europe’s newest unmanned satellite-launching rocket, the Ariane 5, reused working software from its predecessor, the Ariane 4. Unfortunately, the Ariane 5’s faster engines exploited a bug that was not realized in previous models. In essence, the software tried to cram a 64-bit number into a 16-bit space. The resulting overflow conditions crashed both the primary and backup computers (which were both running the exact same software).

Result - 36.7 seconds into its maiden launch, the self-destruct safety mechanism was activated due to the computer failures, and the spacecraft disintegrated in a spectacular fireball. The Ariane 5 had cost nearly $8 billion to develop, and was carrying a $500 million satellite payload when it exploded.

4)                - EDS Fails Child Support (2004)

 In 2004, ED’s software giant introduced a large, complex IT system to the U.K.’s Child Support Agency (CSA). At the exact same time, the Department for Work and Pensions (DWP) decided to restructure the entire agency. The restructure and the new software were completely incompatible, and irreversible errors were introduced as a result. With over 500 bugs still reported as open in the new system, the clash of the two events has crippled the CSA’s network.
Result - The system somehow managed to overpay 1.9 million people, underpay another 700,000, had $7 billion in uncollected child support payments, a backlog of 239,000 cases, 36,000 new cases “stuck” in the system, and has cost the UK taxpayers over $1 billion to date. 

5)                            - Soviet Gas Pipeline Explosion (1982)

 When the CIA (allegedly) discovered that the Soviet Union was (allegedly) trying to steal sensitive U.S. technology for its operation of their trans-Siberian pipeline, CIA operatives (allegedly) introduced a bug into the Canadian built system that would pass Soviet inspection but fail when in operation.
Result - The largest non-nuclear explosion in the planet’s history. And a new-found respect (fear?) of the CIA.

 6)               - Black Monday (1987).

 On October 19, 1987, a long running bull market was halted by a rash of SEC investigations of insider trading. At the time, computer trading models were (and still are) common in the trading market, and most had triggers in place to sell stocks if their value dropped to a certain point. As investors began to dump stocks affected by the investigations, their stocks dropped, causing the computer triggers to kick in. The flood of computer issued stock executions, coupled with investor liquidation, overwhelmed the market and caused multiple systems to crash. This in turn triggered even more automated sell executions, and panic quickly set in. Investors were selling blind world-wide, stocks were virtually liquidated, and market values plummeted.

Result - Technically beginning in Hong Kong (where markets opened first), the crash had world-wide implications. The impact in the US was devastating. The Dow Jones Industrial Average plummeted 508 points, losing 22.6% of its total value. The S&P 500 dropped 20.4%. This was the greatest loss Wall Street ever suffered in a single day.


7)            - Therac-25 Medical Accelerator (1985)

 The Therac-25 was a radiation therapy device built by Atomic Energy of Canada Limited (AECL) and CGR of France. It could deliver two different kinds of radiation therapy: either a low-power electron beam (beta particles) or X-rays. Unfortunately, the operating system used by the Therac-25 was designed and built by a programmer who had no formal training. The OS contained a subtle race condition, and because of it a technician could accidentally configure the Therac-25 so the electron beam would fire in high-power mode without the proper patient shielding.

Result - In at least 6 incidents (with more suspected), patients were accidentally administered lethal or near lethal doses of radiation - approximately 100 times the intended dose. At least five deaths are directly attributed to it, with others seriously injured.


8)             - Multidata Systems (2000)

 Another medical system makes the list, this time at the National Cancer Institute in Panama City. This one is a combination of software bug as well as user error. A U.S. firm, Multi data Systems International, created therapy planning software that was designed to calculate the proper dosage of radiation for patients undergoing radiation therapy. The software allows a radiation specialist to draw on their screen where they would be placing metal shields (called “blocks") on the patient during treatment. These blocks protect healthy tissue from the radiation. The software itself only allows the placement of 4 blocks, but the Panamanian doctors normally used five. To get past the limitation in the software, the doctors decided to trick the software by drawing all five blocks as a single block with a hole in the middle. Unfortunately, a bug in the Multi data software caused it to give different results depending on how the hole was drawn. Draw it one way and the dosage was correct. Draw it in the other direction and the software recommended twice the correct dosage.

Result - At least eight patients die, while another 20 receive overdoses likely to cause significant health problems. The physicians, who were legally required to double-check the computer’s calculations by hand, are indicted for murder.

9)           - Patriot Missile Bug (1991)
 During the first Gulf War, an American Patriot Missile system was deployed to protect US Troops, allies, and Saudi and Israeli civilians from Iraqi SCUD missile attacks. A software rounding error in the one of the early versions of the system incorrectly calculated the time, causing it to ignore some of the incoming targets.
Result - A Patriot Missile Battery in Saudi Arabia fails to intercept an incoming Iraqi SCUD. The missile destroyed an American Army barracks, killing 28 soldiers and injuring around 100 other people. 

10)                - World War III… Almost (1983)

 Have you ever seen the movie War Game? Nobody knew at the time how very close this movie mimicked a real life near-disaster in the same year. In 1983, Soviet early warning satellites picked up sunlight reflections off cloud-tops and mistakenly interpreted them as missile launches in the United States. Software was in place to filter out false missile detections of this very nature, but a bug in the software let the alerts through anyway. The Russian system instantly sent priority messages up saying that the United States had launched five ballistic missiles. Protocol in such an event was to respond decisively, launching the entire soviet nuclear arsenal before any US missile detonations could disable their response capability. The duty officer for the system, one Lt Col Stain’s lave Petro, intercepted the messages and flagged them as faulty, stopping the near-apocalypse. He claimed that he had a “funny feeling in my gut” about the attack, and reasoned if the U.S. was really attacking they would launch more than five missiles.


Result - Thankfully nothing. However, the world was literally minutes away from “Global Thermal Nuclear War”. Any retaliatory missile launched by the Soviets would have triggered a like response from the U.S., eventually leading to a total launch of all systems from both sides. 

Post by :- Hemangini 

Published by :- Pardha Saradhi

History of Software “Bug”



BUG ME NOT




We cannot imagine the world without computers today. But no person or machine is perfect. Everyone make mistakes. That is true for computers also. It is really frustrating when the computer problem does not allow you to do further work. These problems or faults are called as “Computer Bugs”. These are not real bugs but are just the mistakes in computer design or programming causing a failure. So, where did the term “bug” came from?

The term “Bug” is used to describe a defect for many decades. Thomas Edison used it for the first time in 1878 to describe any fault in electrical connections or problem with mechanical devices. Also, the problems with radar electronics during world war II were referred as bugs. Then the phrase “Bug in telephone cable” was used to refer noisy lines. But the term “Computer Bug” and “Debugging” was first used by Grace Hopper (known for inventing COBOL) in 1945. There is an interesting story behind it.
Grace was working on a project at Harvard University where she worked on the world's first large-scale computer, Harvard Mark I. She was fascinated by the huge machine consisting of relays, switches, vacuum tubes etc. After Mark I, she was working on Harvard Mark II – electromechanical computer. One day (9th September, 1945), while she was testing Mark II relay calculator, she found that it was not functioning properly and had some problem. Upon investigation, the team found something unusual between point at relay #70, panel F. They identified that there was a moth (insect/bug) trapped in relay which was causing a problem. The team removed the moth and the detailed report was written about the problem with the explanatory note - “First actual bug being found”. That is the first time anyone used the word bug to describe computer glitch.From then on, if anything goes wrong with computer, we say that it has bugs!! Also, they debugged (removed the bug) the machine to fix the problem and the term “Debugging a computer program” was born.

 This was all about how the words “Bug” and “Debugging” were born. Wasn't it interesting to find about the origin of words and how the various meanings of words are evolved over a time?

Post By :- Anagha 

Published By :- Pardha Saradhi

Tuesday, 28 May 2013

WE ARE SOFTWARE TESTERS...!!!!




Developers make something & we break it…..!!! but we break it because we care. We don’t make software but we make software better…!!! Developers love their model but we say “don’t fall in love with model…” because we are defect finders always…!!
We are testers. As such, most of the time we aren't driving the company. Essential operational decisions are made by someone else (project manager). But if we are not the drivers, our position is certainly close to this of a backseat driver. we have our maps, good knowledge of the area and our experience; and we give advice that is used to take real decisions. So don’t be a drunken backseat driver, it’s dangerous!

Once the Director of a software company proudly announced that a flight software developed by the company was installed in an airplane and the airlines was offering free first flights to the members of the company. “Who are interested?” the Director asked. Nobody came forward. Finally, one person volunteered. The brave Software Tester stated, ‘I will do it. I know that the airplane will not be able to take off.’ !!! that is the confidence…!!! Such  high confidence exists  only in  a software tester..!!!

Testers right attitude: First realize how important testing activity is. No matter how much developing effort has been spent on making a highly desirable product with state of the art technology, if it does not correctly do what it is supposed to do, then it is doomed to death. An improperly tested application reaching customers directly translates to loss of business.
The right attitude of a tester is he/she must find satisfaction or joy in hunting down bugs and vice verse.

What testers can do…???
Testers can “turn the coverage dial” to achieve maximum efficiency with a minimal number of tests)
  • The efficiency and effectiveness benefits of pairwise testing have been demonstrated in testing projects every major industry.
  • Thoroughness – Testers can also “turn the coverage dial” to achieve maximum thoroughness if that is their goal. More coverage of combinations of test inputs.
The job of a tester is to put together a meaningful plan & understand how the software is going to correspond to the business needs and test the main logical paths as well as some optional and failure paths and find out what the software really does as opposed to what people think it should do.
  • A manual tester is concerned with the human experience of your software. Typically there will be a script of the exact actions or the class of actions the manual tester is expected to cover. Some firms roll regression testing and new feature testing into the manual tester’s role, others have a separate user-acceptance testing team who stand between released software and deployment.

We are precious....our place is very valuable in software industries...!!! Proud to be a software tester...!!! Because we always rock...!!!!!

Post by :- Komal Metkar

Published by ;- Pardha Saradhi

Monday, 27 May 2013

Expertusmundus


Testing

Expertus Mundus  (Test World)

Testing : What, How & Why?

What is Testing?
To err is Human, there is a need to check everything produced because things can always go wrong. Testing is necessary as we all make mistakes some are unimportant and some are expensive or dangerous.

Testing is a Process consisting of all Life Cycle Activities, both static and dynamic, concerned with planningpreparation and evaluation of software products and related work products to determine that they satisfy specified requirements, to demonstrate that they are fit for purpose and to detect defects.(ISTQB).

Process - Testing is a process rather than a single activity - there are a series of activities involved.

All Life Cycle Activities - Testing is a process that takes place through out the software development life cycle. Later the bugs are found in the development life cycle, more expensive it is to resolve them.Finding and fixing at each stage would help to build the right software. Design tests early would prevent defects from being introduced into the code.

Static & Dynamic - Testing running code is Dynamic Testing.
Finding Defects without executing code is Static Testing(Review of documents and code). 

Planning - Plan what has to be tested, check the testing progress and status of software under test. 

Preparation - Test Conditions and Designing test cases.

Evaluation - evaluate the software under test and the exit criteria, 

Post by :- James Watkins
Published by :- Pardha Saradhi.