Page 19 - SOFTWARE TESTING & QUALITY ASSURANCE
P. 19

Software Testing and Quality Assurance





                                      Error in Intel's Pentium Microprocessor


                           A        Mathematics professor at Lynchburg College, USA, Dr.Thomas Nicely,  found a floating

                                    point division error in Intel Pentium microprocessor in the year 1994. He was computing
                                    on his Pentium-based computer to find the sum of the reciprocals of prime numbers.
                           He noticed that the computation result was significantly different from the theoretical values. When
                           the same  computation  was carried out on  another computer with  a different  microprocessor (486
                           CPU) he was able to get the correct values that obey the theoretical values. The worst and well-known
                           case was division of 4195835 by 3145727. The correct value is 1.33382, however the Pentium's floating
                           point unit computed and generated a value 1.33374 (Only 6 places after decimal is mentioned here),
                           which has an error of 0.006.
                           Dr.Thomas Nicely reported the bug to Intel, but Intel ignored it and Nicley did not receive any proper
                           response from Intel. Later, Nicley took the issue to public with the help of the Internet and media.
                           Following these events, Intel publicly announced that "an error is only likely to occur [about] once in
                           nine billion random floating points". They also mentioned in their announcement that "an average
                           spreadsheet user could encounter this subtle flaw once in every 27,000 years of use."  However, it was
                           noted that the Intel Pentium processors output was wrong every time when such division was
                           performed for such values.
                           On  November 28, 1994, Intel publicly admitted  the problem and issued a statement saying that it
                           would replace pentium chips only for those who could explain the need of high accuracy in complex
                           calculations. Industry experts, public, and media criticized this attitude of Intel. Later, in the month of
                           December, Intel announced that it would freely replace the processor for any owner who asked for
                           one.

                           The bug problem made Intel to issue an apology to its customers and the public for the way it handled
                           the bug and issues related to it. It had to spend more than $400 million for replacing bad chips.
                           Learning a lesson from this, Intel now reports all known problems on its official website and it also
                           monitors customer feedbacks carefully and regularly.
                           Questions
                           1.   Is Intel right in their approach to customers?  How did they win customers’ confidence?
                           2.   Explain the kind of bug faced by Intel. What method would you suggest to overcome the bug?
                          Adapted from (http://www.willamette.edu/~mjaneba/pentprob.html)

                          1.4   Summary

                          •   Software testing  demonstrates that a program performs the intended functions correctly.  The
                             ultimate goal of software testing is to ensure that the product is error free.
                          •   Detecting bugs are the most important part of a software testing process. These bugs can be an error
                             in the program or issues that affect the quality of the software.
                          •   Depending on the kind of error or the reason for error the bugs are classified into various types
                             such as, bugs due to conceptual error, math bugs, logical  bugs, resource bugs, co-programming
                             bugs, and team working bugs.
                          •   Bugs in software can occur due to various reasons such as human error, lack of communication,
                             tight time lines, improper design logic, inefficient coding practices, and unskilled testers.
                          •   Bugs can prove to be very costly. They not only take time to resolve affecting the project time lines
                             and project cost, but also result in losses as the company may have to compensate the customer by




                          12                      LOVELY PROFESSIONAL UNIVERSITY
   14   15   16   17   18   19   20   21   22   23   24