Difference between revisions of "Testing Introduction"
|Line 14:||Line 14:|
Revision as of 19:52, 2 March 2007
One of the most important task in software development is testing. Without testing developers would not know about certain bugs that they themselves might not be encountering. It is also very important in large projects such as Operating Systems where regresions can often crop up un noticed. It is important to find and quickly deal with regressions as these are easier to fix when their cause is known(ie. a recent commit). Up ahead we'll start of with the basics.
Now I know what most of you are thinking, hardware. Now we don't have anything against hardware, ReactOS should and in most cases(while you cross your fingers) does, but we can't be sure about YOUR hardware. We can't know if you misconfigured your BIOS, or $insert_hardware_manufacturer "tweaked" the hardware somehow. Right now ReactOS is in too early a stage to worry about such things. So we use Virtual Machines to do most of the testing, not only because of the above reason, but it's also more convinient for most people.
- Qemu 0.8.2 (a slight bug might affect video in qemu 0.9.0)feb.28,2007
- Vmware Server
- Vmware Workstation
- Vmware player
Other Virtual Machines are acceptable as long as a developer has access to it.
Testing in hardware is trickier than in a virtual machine. Most people drag out some ancient machine that hasn't seen the light of day in years and just pop in a ReactOS cd, thinking they are helping when they do this. I can tell you from first hand experience this is far from the truth. In order to do any good the machine should be able to accept another, well tested, operating system such as Windows 2000 or a popular linux distrubution. This machine should ofcourse meet the minimum system requirements for ReactOS. Take this moment to use the OS to write down as much hardware information as possible, even what IRQ and DMA channels it is using. You never know when this information will come in handy.
It is important to note that some BIOS have "special" settings for different operating systems. Please disable memory gaps, reserved memory areas and reserved memory caching, it goes without saying that this is not an OS/2 clone. If testing a USB mouse or keyboard you must enable USB compability mode, USB 2.0 is not supported, if possible disable it. Disconnect all non esencial hardware, from experience i can say that ReactOS hanged on bootup because i had a usb camara attached.
ReactOS currently doesn't come with many drivers, just a few basic ones that (hopefully) take advantage of standard hardware. Most important is a VBE 2.0 compatible video card (VESA 1994 standard). For network connectivity you need a RTL 8139 or NE 2000 compatible card. If you really want to make other hardware work, you will need to get a windows 2000 driver for it.
Before you start any test you need to know what is going on, why and how the test is failing. The most important way to get information about an issue or bug is the debug output. When compiled with DBG = 1, and booted in debug mode ReactOS can send text to a file, the screen, or the serial port. For more information on configuring this please refer to http://www.reactos.org/wiki/index.php/Debugging
Getting more information
See building ReactOS...How to enable more debugging. what to debug...
How to Test
ready made tests
wine testing framwork ReactOS Test apps. rosapps.
3rd party apps
about 3rd party apps
Write your own tests
learn how to code. http://www.reactos.org/wiki/index.php/Writing_tests
How to report a Bug
what to do with your debug log. http://www.reactos.org/wiki/index.php/File_Bugs