Monday, June 29, 2009
Major Bugs with Most Notable Consequences
A booster went off course during launch, resulting in the destruction of NASA Mariner 1. This was the result of the failure of a transcriber to notice an overbar in a written specification for the guidance program, resulting in the coding of an incorrect formula in its FORTRAN software. (July 22, 1962).
The Russian Space Research Institute's Phobos 1 deactivated its attitude thrusters and could no longer properly orient its solar arrays or communicate with Earth, eventually depleting its batteries. (September 10, 1988).
The European Space Agency's Ariane 5 Flight 501 was destroyed 40 seconds after takeoff (June 4, 1996). The US$1 billion prototype rocket self-destructed due to a bug in the on-board guidance software.
NASA Mars Polar Lander was destroyed because its flight software mistook vibrations due to atmospheric turbulance for evidence that the vehicle had landed and shut off the engines 40 meters from the Martian surface (December 3, 1999). Its sister spacecraft Mars Climate Orbiter was also destroyed, but due to human error and not, as is sometimes reported, due to a software bug.
A mis-sent command from Earth caused the software of the NASA Mars Global Surveyor to incorrectly assume that a motor had failed, causing it to point one of its batteries at the sun - subsequently overheating it. (November 2, 2006).
Medical
A bug in the code controlling the Therac-25 radiation therapy machine was directly responsible for at least five patient deaths in the 1980s when it administered excessive quantities of X-rays.
A Medtronic heart device was found vulnerable to remote attacks in March 2008
Computing
The year 2000 problem spawned fears of worldwide economic collapse and an industry of consultants providing last-minute fixes.[13] In addition, it is possible the problem could recur in 2038 (the year 2038 problem), as many Unix systems calculate the time in seconds since 1 January 1970, and store this figure as a 32-bit signed integer, for which the maximum possible value is 231 (2,147,483,648).
Electric power transmission
The 2003 North America blackout was triggered by a local outage that went undetected due to a race condition in General Electric Energy's XA/21 monitoring software.
Telecommunications•
AT&T long distance network crash (January 15, 1990), in which the failure of one switching system would cause a message to be sent to nearby switching units to tell them that there was a problem. Unfortunately, the arrival of that message would cause those other systems to fail too - resulting in a 'wave' of failure that rapidly spread across the entire AT&T long distance network.
In January 2009, Google's search engine erroneously notified users that every web site world wide was potentially malicious.
Military
The software error of a MIM-104 Patriot, caused its system clock to drift by one third of a second - resulting in failure to locate and intercept an incoming missile. The scud impacted in a military compound in Dhahran, Saudi Arabia (February 25, 1991), killing 28 Americans.
A Chinook crash on Mull of Kintyre in June 1994. A Royal Air Force Chinook helicopter crashed into the Mull of Kintyre, killing 29. This was initially dismissed as pilot error, but an investigation by Computer Weekly uncovered sufficient evidence to convince a House of Lords inquiry that it may have been caused by a software bug in the aircraft's engine control computer.
Smart ship USS Yorktown was left dead in the water in 1998 for nearly 3 hours after a divide by zero error.
A software glitch in a South African antiaircraft cannon had killed 9 soldiers and seriously injured 14 others in 2007 during a shooting exercise.
Media
Eve Online's deployment of the Trinity patch, which erased the boot.ini file from several thousand users' computers, rendering them unable to boot. This was due to the usage of a legacy system within the game that was also named boot.ini. As such, the deletion had targeted the wrong directory instead of the /eve directory.
In the Sony BMG CD copy prevention scandal (October 2005), Sony BMG produced a Van Zant music CD that employed a copy protection scheme that covertly installed a "rootkit" on any Windows PC that was used to play it. Their intent was to hide the copy protection mechanism to make it harder to circumvent. Unfortunately, the rootkit inadvertently opened a security hole resulting in a wave of successful trojan horse attacks on the computers of those who had innocently played the CD. Sony's subsequent efforts to provide a utility to fix the problem actually exacerbated it.
Encryption
In order to fix a warning issued by Valgrind, a maintainer of Debian patched OpenSSL and broke the random number generator in the process. The patch was uploaded in September 2006 and made its way into the official release; it was not reported until April 2008. Every key generated with the broken version is compromised, as is all data encrypted with it, threatening many applications that rely on encryption such as S/MIME, TOR, SSL or TLS protected connections and SSH.
Monday, June 8, 2009
GUI Testing Checklist
No Login is necessary The main window of the application should have the same caption as the caption of the icon in Program Manager. Closing the application should result in an "Are you Sure" message box Attempt to start application Twice Try to start the application twice as it is loading. On each window, if the application is busy, then the hour glass should be displayed. If there is no hour glass All screens should have a Help button, F1 should work doing the same. 1.2. For Each Window in the Application If Window has a Minimise Button, click it. Double Click the Icon to return the Window to its original size. The window caption for every application should have the name of the application and the window name - Use TAB to move focus around the Window. Use SHIFT+TAB to move focus backwards. Tab order should be left to right, and Up to Down within a group box on the screen. All controls The text in the Micro Help line should change - Check for spelling, clarity and non-updateable etc. If a field is disabled (greyed) then it should not get focus. It should not be possible to select them with either Never updateable fields should be displayed with black text on a grey background with a black label. All text should be left-justified, followed by a colon tight to it. In a field that may or may not be updateable, the label text and contents changes from black to grey depending List boxes are always white background with black text whether they are disabled or not. All others are grey. In general, do not use goto screens, use gosub, i.e. if a button causes another screen to be displayed, the When returning return to the first screen cleanly i.e. no other screens/applications should appear. In general, double-clicking is not essential. In general, everything can be done using both the mouse and All tab buttons should have a distinct letter. Enter text into Box Try to overflow the text by typing to many characters - should be stopped Check the field width with capitals W. Enter invalid characters - Letters in amount fields, try strange characters like + , - * etc. in All fields. SHIFT and Arrow should Select Characters. Selection should also be possible with mouse. Double Click should All Buttons except for OK and Cancel should have a letter Access to them. This is indicated by a letter underlined Click each button once with the mouse - This should activate Tab to another type of control (not a command button). One button on the screen should be default (indicated by If there is a Cancel Button on the screen , then pressing If pressing the Command button results in uncorrectable data e.g. closing an action step, there should be a message Pressing a letter should bring you to the first item in the list with that start with that letter. Pressing ‘Ctrl - F4’ Spacing should be compatible with the existing windows spacing (word etc.). Items should be in alphabetical Drop down with the item selected should be display the list with the selected item on the top. Make sure only one space appears, shouldn't have a blank line at the bottom. Pressing a letter should take you to the first item in the list starting with that letter. If there is a 'View' or 'Open' button beside the list box then double clicking on a line in the List Box, should act in the same way as selecting and item in the list box, then clicking the command button. Force the scroll bar to appear, make sure all the data can be seen in the box. Different Check Box / Radio Box combinations Scroll Lists / Drop Down List Boxes Help Fill Lists and Scroll Tab Tab Sequence Shift Tab Note: The following keys are used in some windows applications, and are included as a guide. 3.3. Control Shortcut Keys GUI Testing Checklist
A checklist to help testers check GUI screens
CONTENTS:
Section 1 - Windows Compliance Standards
1.1. Application
1.2. For Each Window in the Application
1.3. Text Boxes
1.4. Option (Radio Buttons)
1.5. Check Boxes
1.6. Command Buttons
1.7. Drop Down List Boxes
1.8. Combo Boxes
1.9. List BoxesSection 2 - Tester's Screen Validation Checklist
2.1. Aesthetic Conditions
2.2. Validation Conditions
2.3. Navigation Conditions
2.4. Usability Conditions
2.5. Data Integrity Conditions
2.6. Modes (Editable Read-only) Conditions
2.7. General Conditions
2.8. Specific Field Tests
2.8.1. Date Field Checks
2.8.2. Numeric Fields
2.8.3. Alpha Field ChecksSection 3 - Validation Testing - Standard Actions
3.1. On every Screen
3.2. Shortcut keys / Hot Keys
3.3. Control Shortcut KeysSection 4 - Origin & Inspiration
4.1. Document origin
4.2. Sources of Inspiration & information
4.3. Contacting the author. Section 1 - Windows Compliance Testing
1.1. Application
Start Application by Double Clicking on its ICON. The Loading message should show the application name,
version number, and a bigger pictorial representation of the icon (a 'splash' screen).
This should not be allowed - you should be returned to main Window
(e.g. alpha access enquiries) then some enquiry in progress message should be displayed.
This icon should correspond to the Original Icon under Program Manager.
especially the error messages. These should be checked for spelling, English and clarity , especially on the top
of the screen. Check does the title of the window makes sense.
If the screen has an Control menu, then use all ungreyed options.
should get focus - indicated by dotted box, or cursor. Tabbing to an entry field with text in it should highlight
the entire text in the field.
the mouse or by using TAB. Try this for every greyed control.
on the current status.
screen should not hide the first screen, with the exception of tab in 2.0
the keyboard.
1.3. Text Boxes
Move the Mouse Cursor over all Enterable Text Boxes. Cursor should change from arrow to Insert Bar.
If it doesn't then the text in the box should be grey or non-updateable. Refer to previous page.
select all text in box.
1.4. Option (Radio Buttons)
Left and Right arrows should move 'ON' Selection. So should Up and Down.. Select with mouse by clicking.
1.5. Check Boxes
Clicking with the mouse on the box, or on the text should SET/UNSET the box. SPACE should do the same.
1.6. Command Buttons
If Command Button leads to another Screen, and if the user can enter or change details on the other screen then
the Text on the button should be followed by three dots.
in the button text. The button should be activated by pressing ALT+Letter. Make sure there is no duplication.
Tab to each button - Press SPACE - This should activate
Tab to each button - Press RETURN - This should activate
The above are VERY IMPORTANT, and should be done for EVERY command Button.
a thick black border). Pressing Return in ANY no command button control should activate it.
phrased positively with Yes/No answers where Yes results in the completion of the action.
1.7. Drop Down List Boxes
Pressing the Arrow should give list of options. This List may be scrollable. You should not be able to type text
in the box.
should open/drop down the list box.
order with the exception of blank/none which is at the top or the bottom of the list box.
1.8. Combo Boxes
Should allow text to be entered. Clicking Arrow should allow user to choose from list
1.9. List Boxes
Should allow a single selection to be chosen, by clicking with the mouse, or using the Up and Down Arrow keys.Section 2 - Screen Validation Checklist
2.1. Aesthetic Conditions:
user must either enter an alternative valid value or leave the default value intact.2.2. Validation Conditions:
2.3. Navigation Conditions:
2.4. Usability Conditions:
2.5. Data Integrity Conditions:
2.6. Modes (Editable Read-only) Conditions:
2.7. General Conditions:
2.8. Specific Field Tests
2.8.1. Date Field Checks
2.8.2. Numeric Fields
2.8.3. Alpha Field Checks
Section 3 - Validation Testing - Standard Actions
3.1. Examples of Standard Actions - Substitute your specific commands
Add
View
Change
Delete
Continue - (i.e. continue saving changes or additions)Add
View
Change
Delete
Cancel - (i.e. abandon changes or additions)Fill each field - Valid data
3.2. Shortcut keys / Hot Keys
Fill each field - Invalid data
Key No Modifier Shift CTRL ALT F1 Help Enter Help Mode n\a n\a F2 n\a n\a n\a n\a F3 n\a n\a n\a n\a F4 n\a n\a Close Document / Child window. Close Application. F5 n\a n\a n\a n\a F6 n\a n\a n\a n\a F7 n\a n\a n\a n\a F8 Toggle extend mode, if supported. Toggle Add mode, if supported. n\a n\a F9 n\a n\a n\a n\a F10 Toggle menu bar activation. n\a n\a n\a F11, F12 n\a n\a n\a n\a Tab Move to next active/editable field. Move to previous active/editable field. Move to next open Document or Child window. (Adding SHIFT reverses the order of movement). Switch to previously used application. (Holding down the ALT key displays all open applications). Puts focus on first menu command (e.g. 'File'). n\a n\a n\a
* These shortcuts are suggested for text formatting applications, in the context for Key Function CTRL + Z Undo CTRL + X Cut CTRL + C Copy CTRL + V Paste CTRL + N New CTRL + O Open CTRL + P Print CTRL + S Save CTRL + B Bold* CTRL + I Italic* CTRL + U Underline*
which they make sense. Applications may use other modifiers for these operations.