Friday, March 11, 2011

Various Levels of SoftwareTesting

Testing can be done on the following levels:
  1. Component or Unit Testing: Unit testing tests the minimal software component, or module. Each unit (basic component) of the software is tested to verify that the detailed design for the unit has been correctly implemented. In an object-oriented environment, this is usually at the class level, and the minimal unit tests include the constructors and destructors.
  2. Integration Testing: Integration testing exposes defects in the interfaces and interaction between integrated components (modules). Progressively larger groups of tested software components corresponding to elements of the architectural design are integrated and tested until the software works as a system
  3. System Testing: System testing tests a completely integrated system to verify that it meets its requirements
  4. Acceptance Testing: Finally, acceptance testing can be conducted by the end-user, customer, or client to validate whether or not to accept the product. Acceptance testing may be performed as part of the hand-off process between any two phases of development

Wednesday, March 2, 2011

Difference between Alpha Testing & Beta Testing

These are the testing done by the users. Once the developers have finished their own testing with the help of other professional developers, the software is ready for release to the public or to the intended users.
The stages usually followed are:

Alpha Testing – Developers usually choose the users who will try out the program. These users can be any potential users/customers or an independent test team who carry out the testing at developer's site. It is often tested on known users or even technology bloggers who can honestly give their opinion of the software. It is also the time where developers try to create scenarios for their software such as:
  • Recovery – Developers will try recovering the software or the program in case it crashes.
  • Security – Like all software, developers have to test the program for possible hacks and virus infections.
  • Performance – Use it extensively by getting more than one users to exhaust all possible options and see if the software will hold up to expectations.
Beta Testing – This type of testing is more open to the public and  is done outside the developer's site. Developers or software companies can accept users sometimes by invitation or openly accepting users. Beta testing is tested in a real environment where there is a bigger possibility of hacks, lack of performance or bugs. The main reason the software is given to the public for testing is to open it for possible hacks and feedback about the software. If something wrong is found, developers can just go back to the software easily. Versions of software that is given for beta testing are known as Beta Versions.

Tuesday, March 1, 2011

Types of Testing: Testing by Developers

Developers will have to test the software themselves extensively. Even though they are also the one who have developed the software, they still have to run it extensively. These are the usual steps developers follow in testing their software:
  1. Checking of Syntax – The software is checked as it is. Developers just run software and look for possible errors. A very basic checking to know if there are major functions and errors that will occur.
  2. Code inspection – After the execution, developers review their codes to look for possible bugs or errors in coding technique.  Even though it has worked in initial checking, the language has to be checked extensively to predict possible problems in some executions.
  3. Desk Checking – In this part of the testing, developers check the code and the software at the same time. Each line of command is tested if the desired output is met. This is done manually as each line is expected to work and one way of making sure it will work is to manually check each line so that developers will know what output the line has created.
  4. Walkthrough – After checking the software themselves, its time to present the software to the experts. Not the upper management but possibly experts on the coding language or other developers of this type of software. The developer will present their work to the pool of professionals who will scrutinize their work. It is also important for the developer to present not only the coding technique but also program itself.   Using simple case studies the software will somehow provide answers faster or with a better result.
  5. Module Testing – After the walk through, developers will again check the software in terms of individual modules.  Each module will be tested extensively for possible errors.This is also known as Unit Testing.
  6. Integration Testing – Once the module has been tested, it is time to test them as being integrated to other modules. In this type of testing, developer checks that interface between the two module is working properly.
  7. System Testing – After the integration, the whole program will again be tested. Case studies will again be applied with integrated software.