I couldn't find any topic in general discussion regarding Operating System testing and hence I created this new topic.
In general , I would like to know how to find more OS errors while testing any operating system.
If I am testing for compatibility of an application with an OS, how can I capture more OS errors rather than capturing application errors? What kind of test cases should be written to get more OS errors ?
Please let me know if I can get the above information from any web sites. Also, it would be great to get some tips from any of the members who have had the experience of testing any Operating System.
Thanks in advance.....
Re: OS Testing
It depends what you want to test the OS for, what level of testing you are being asked to perform against what requirements. I am not sure from your question whether you are testing an OS that you are developing or testing an application on someone else’s OS. Without some specifics, I can only give you some general pointers.
If you are testing purely for application compatibility with the OS, then you need to know what parts of the OS the application is interfacing with, e.g. if the application is performing a lot of file system activity, then you will need to test that the interfaces for Open a file, Close a file, add to/remove from a file, create a file, delete a file, move a file, rename a file, copy a file, etc. work properly under various conditions: security settings, disk space availability, etc. You will need to have full descriptions of what the possible returns are from the OS interfaces to make sure you can test that your application can handle them. Also, the OS can do some horrible things to you at the low level, so you need to test that your application can cope with them.
If you are testing the OS itself, then you are talking a whole different set of testing. Take the file system again, here you will need not only to test the file system operations of Open, close, create, delete, etc., but you will need to test that data goes into the right place on the disk, links between blocks are maintained, blocks can be re-used, headers and trailers on each file are correct, file attributes (such as date/time created, date/time modified, file type, etc.) are maintained, etc, etc.
There are a number of major differences between testing an OS and testing an application, here are a few examples:
- There is a lot more defensive programming in an OS than in an application. This means that the defensive programming needs to be tested. In turn, this means that you need the ability to be able to create strange and unnatural situations. (When I was developing OS software, you had to think “Well, if xxx happens to me here, then I have to do yyy to recover, but what if zzz happens while I am recovering, then I have to do......”, whereas in an application it is simpler)
- Each OS deals with things like task scheduling completely differently, you need to know how that is dealt with
- You need to write programs to exercise the OS, you can’t rely on the system utilities to do it for you, particularly if you are testing the system utilities as part of your OS testing!
- You need some understanding of how the OS interfaces with the Hardware, how it handles the strange things that hardware does.
- You need to be able to trap OS crashes so that you can hold onto register settings before recovery code and the crash itself obliterates them
- A lot of the OS relies on locks, semaphores, timing. These are notoriously difficult to test and require hooks within the OS to generate the conditions that need to be tested
- Multi-processing, either on a single processor or on multi-processors, can be difficult to test, again hooks are required.
Hopefully, this provides some help
Re: OS Testing
thanks for ur detailed reply abt the OS testing.
Well Harini, which platform r u working? linux?? or windows??
If OS bug is reported who will fix the bug??
I go for the best bcoz. i am the best.
Re: OS Testing
Thanks a lot for the information. Actually, I am testing compatibility of commonly used applications on Win2k. Currently, I am performing all tests that u have mentioned while testing (like, file/open, file/save, renaming files, saving on network etc)...
I also check for importing and exporting objects and this is a feature available in most of the applications.
The main job here is to see whether all major features of applications work properly on Win2k.
I hope you have got a better picuture of my job now. It will be great if you can suggest more test scenarios for this kind of testing.