EARN 400$ PER WEEK

Custom Search

Friday, June 20, 2008

Black Box Testing Classifications



Classifications of Black Box Testing:


FUNCTIONAL TESTING:
  • FUNCTIONAL testing validates functional requirements of an application.It covers how well the system executes the functions it is supposed to execute including user commands, data manipulation, searches and business processes, user screens, and integrations.
SYSTEM TESTING:
  • SYSTEM testing is done on overall requirements specifications.This testing covers all combined parts of a system.
USABILITY TESTING:
  • USABILITY Testing is done to test User-Friendliness of the system.It is done to uncover the areas where user feels uncomfortable in using the software.It leverage areas of strength for maximum usability.It is done by working the end users to asses how the end users are interacting with the software.User interviews, surveys, video recording of user sessions, and other techniques can be used.
SMOKE TESTING:
  • SMOKE testing is non-exhaustive software testing that deals with major functionalities of the software and testing the most crucial functions of a program,but not bothering with finer details.This is done for every new build and is done only with valid inputs.This testing is also called build verification test.
SANITY TESTING:
  • SANITY testing is done in order to check if the application is ready for further major testing and is working properly without failing up to least expected level.It is an initial testing effort to determine if a new software version is performing well enough to accept it for a major testing effort. For example, if the new software is crashing systems every 5 minutes, bogging down systems to a crawl, or destroying databases, the software may not be in a 'sane' enough condition to warrant further testing in its current state.
REGRESSION TESTING:
  • REGRESSION testing focuses on retesting the software after changes are made for extension or correction to ensure that no defects have been introduced.Some changes done to the software may introduce new bugs or unfix the old bugs,or a change that is done to fix a bug is failed.So to mitigate those risks regression test.Automated testing tools can be especially useful for this type of testing.
RECOVERY TESTING:
  • RECOVERY testing is done to check how well the application can recover from crashes,hardware failures etc. Type or extent of recovery is specified in the requirement specifications .Recovery testing is the forced failure of the software in a variety of ways to verify that recovery is properly performed. For example,While the application running, suddenly restart the computer and after that check the validness of application's data integrity.
EXPLORATORY TESTING:
  • EXPLORATORY testing is done in order to learn/explore the application.It is informal software test that is not based on formal test plans or test cases. Testers may be learning the software as they test it.
AD-HOC TESTING:
  • AD-HOC testing is similar to exploratory testing, but often taken to mean that the testers have significant understanding of the software before testing it. Ad hoc testing can find holes in your test strategy,it helps in deciding the scope and duration of the various other testing and it also helps testers in learning the application prior starting with any other testing. It is the least formal method of testing.

COMPATIBILITY TESTING:

  • COMPATIBILITY testing is done to check how well the software performs in a particular hardware/software/operating system/network environment and different combinations of above.

COMPARISON TESTING:

  • COMPARISON testing is done to compare the software strengths and weaknesses with competing products or previous versions and other similar products.
INSTALL/UNINSTALL TESTING:
  • INSTALL/UNINSTALL testing is done to check full, partial, or upgrade install/uninstall processes on different operating systems under different hardware, software environment.
STRESS TESTING:
  • STRESS testing is done by giving stress to the system beyond its specifications to check how and when it fails. This testing is performed under heavy load like putting large number beyond storage capacity, complex database queries, continuous input to system or database load. Stress testing is subjecting a system to an unreasonable load while denying it the resources (e.g., RAM, disc, mips, interrupts) needed to process that load.
LOAD TESTING:
  • LOAD testing is done to determine the maximum sustainable load the system can handle.It is done in order to find out at what point the web-site/application fails or at what point its performance degrades. Its a performance testing to check system behavior under load. Load testing operates at a predefined load level, usually the highest load that the system can accept while still functioning properly..In load testing,extreme importance should be given of having large datasets available for testing.Automated testing tools can be useful for this type of testing to generate these large data sets.
ALPHA TESTING:
  • ALPHA testing should be done in an in house virtual user environment . This Testing is done at the end of development.Here the users are invited at the development center where they use the application and the developers note every particular input or action carried out by the user.Any type of abnormal behavior of the system is noted and rectified by the developers.Still minor design changes may be made as a result of this testing.
BETA TESTING:
  • BETA testing is done when development and testing are essentially completed and final bugs and problems need to be found before final release. Typically done by end-users or others, not by programmers or testers.Here the software is distributed as a beta version to the users and users test the application at their sites. As the users explore the software, in case if any exception/defect occurs that is reported to the developers.

SECURITY TESTING:
  • SECURITY testing is done to check how well the system protects against unauthorized internal or external access.It checks if system, database is safe from external attacks.It may require sophisticated testing techniques.

Thursday, June 19, 2008

What is Software Testing



Software Testing is the Process of running and executing the software and evaluating the results.It is done to identify error int he software.It is the process used to identify Quality,Correctness,Completeness of the Software product.Testing is done to verify and validate the software.Testing is the measure of Software's Quality and Reliability.

Quality:
A Software is said to be of good quality provided if it is reasonably bug free,developed with in the given date and budget,easily maintainable.
Testing should be done through out the Software Development Life Cycle to bring out quality product.

Life Cycle Testing: It aims at catching defects as early as possible and thus reduces the cost of fixing the bugs.
This can be done by continuously testing the system during all the phases of software development
Software Testing Process:




1.Requirements Analysis Phase:
  • Verify whether the requirements are accurate,complete,meet all user needs.
2.Design Phase:
  • Verify whether design is done to achieve the objectives of the specified requirements and is effective or not.
  • Preparing the Test Plan.
  • Verification is done through Walkthroughs and Inspections.
3.Construction Phase:
  • Verify the code correctness,completeness and consistency.
  • Verify whether the code is done as per standards or not.
  • Preparing the Test Cases.
  • Verification is done through Walkthroughs and Inspections.
  • validation is done through Unit Testing and Integration Testing.
4. Testing Phase:
  • Executing the Test cases.
  • Recording the Defects and Tracking them Using Defect Tracking tools.
5. Operation and Maintenance Phase:
  • After Software moved to Production, any Customizations or enhancements done to the software need to be thoroughly tested and care should be taken not to introduce regression issues.