SOFTWARE TESTING TYPES


There are two types of testing. They are as follows:

§  Functional Testing

§  Non- Functional Testing

Functional Testing:

§  In functional testing basically the testing of the functions of component or system is done.

§  It refers to activities that verify a specific action or function of the code.

§  Functional test tends to answer the questions like “can the user do this” or “does this particular feature work”.

§  This is typically described in a requirements specification or in a functional specification.

§  The techniques used for functional testing are often specification-based. Testing functionality can be done from two perspective:

·         Requirement-based testing: In this type of testing the requirements are prioritized depending on the risk criteria and accordingly the tests are prioritized. This will ensure that the most important and most critical tests are included in the testing effort.

·         Business-process-based testing: In this type of testing the scenarios involved in the day-to-day business use of the system are described. It uses the knowledge of the business processes. For example, a personal and payroll system may have the business process along the lines of: someone joins the company, employee is paid on the regular basis and employee finally leaves the company.

§  There are several types of Functional Testing. These are:

·         Installation Testing

·         Development Testing

·         Usability Testing

·         Sanity Testing

·         Smoke Testing

·         Regression Testing

·         Destructive Testing

·         Recovery Testing

·         Automated Testing

·         User Acceptance Testing

Installation Testing:

§  Installation Testing focuses on what customers will need to do to install and set up the new software successfully.

§  The Testing Process may involve full, partial or upgrades install / uninstall processes.

§  This Testing is typically done by the software test engineer in conjunction with the configuration manager.

Development Testing:

§  Development Testing is the consistent application of software testing practices across distributed teams and throughout the SDLC.

§  It is performed by the Software Developer or engineer during the construction phase of the Software Development Life Cycle.

§  Development Testing might include static code analysis, data flow analysis, unit testing and other software verification practices.

Usability Testing:

§  Usability Testing is a technique used in user-centered interaction design to evaluate a product by testing it on users.

§  In Usability Testing basically the tester’s tests the ease with which the user interfaces can be used. It tests that whether the application or the product built is user-friendly or not.

§  Usability Testing is a black box testing technique.

§  Usability Testing also reveals whether users feel comfortable with your application or Web site according to different parameters – the flow, navigation and layout, speed and content – especially in comparison to prior or similar applications.

Sanity Testing:

§  Sanity testing, a software testing technique performed by the test team for some basic tests.

§  The aim of basic test is to be conducted whenever a new build is received for testing. Sanity test is usually unscripted, helps to identify the dependent missing functionalities.

§  It is used to determine if the section of the application is still working after a minor change.

§  Sanity testing can be narrow and deep. Sanity test is a narrow regression test that focuses on one or a few areas of functionality.

Smoke Testing:

§  Smoke Testing is a testing technique that is inspired from hardware testing, which checks for the smoke from the hardware components once the hardware’s power is switched on.

§  Similarly in Software testing context, smoke testing refers to testing the basic functionality of the build.

§  If the Test fails, build is declared as unstable and it is NOT tested anymore until the smoke test of the build passes.

Regression Testing:

§  Regression testing is the process of testing changes to computer programs to make sure that the older programming still works with the new changes.

§  Regression testing is nothing but full or partial selection of already executed test cases which are re-executed to ensure existing functionalities work fine.

§  This testing is done to make sure that new code changes should not have side effects on the existing functionalities. It ensures that old code still works once the new code changes are done.

Destructive Testing:

§  Destructive testing, in an IT context, is a software assessment method used to find points of failure in a program.

§  Essentially, the method involves interacting with the software incorrectly, for example entering data that is corrupt or in the wrong format, to determine whether the application would fail were an end user to make that error.

Recovery Testing:

§  Recovery Testing is the activity of testing how well an application is able to recover from crashes, hardware failures and other similar problems.

§  For Example: While an application is receiving data from a network, unplug the connecting cable.

§  After some time, plug the cable back in and analyze the application’s ability to continue receiving data from the point at which the network connection disappeared.

Automated Testing:

§  Software Test automation makes use of specialized tools to control the execution of tests and compares the actual results against the expected result.

§  Usually regression tests, which are repetitive actions, are automated.

§  Testing Tools not only help us to perform regression tests but also helps us to automate data set up generation, product installation, GUI interaction, defect logging, etc.

User Acceptance Testing:

§  User Acceptance Testing, a testing methodology where the clients/end users involved in testing the product to validate the product against their requirements.

§  It is performed at client location at developer’s site.

§  UAT is context dependent and the UAT plans are prepared based on the requirements and NOT mandatory to execute all kinds of user acceptance tests.


Non-Functional Testing:

§  In Non-Functional Testing the quality characteristics of the component or system is tested.

§  Non-Functional refers to aspects of the software that may not be related to a specific function or user action such as scalability or security.

§  For Example: How many people can log in at once? Non-functional testing is also performed at all levels like functional testing.

§  There are several types of Functional Testing. These are:

·         Compatibility Testing

·         Performance Testing

·         Security Testing

·         Accessibility Testing

·         Internationalization and Localization Testing

Compatibility Testing:

§  It is a type of non-functional testing.

§  It is basically the testing of the application or the product built with the computing environment.

§  It tests whether the application or the software product built is compatible with the hardware, operating system, database or other system software or not.

Performance Testing:

§  It is a type of non-functional testing.

§  Performance testing is testing that is performed, to determine how fast some aspect of a system performs under a particular workload.

§  It can serve different purposes like it can demonstrate that the system meets performance criteria.

§  It can compare two systems to find which performs better.

§  This process can involve quantitative tests done in a lab, such as measuring the response time or the number of MIPS (millions of instructions per second) at which a system functions.

Security Testing:

§  It is a type of non-functional testing.

§  Security testing is basically a type of software testing that done to check whether the application or the product is secured or not.

§  It checks to see if the application is vulnerable to attacks, if anyone hack the system or login to the application without any authorization.

§  Software security is about making software behave in the presence of a malicious attack.

§  The six basic security concepts that need to be covered by security testing are:

·         Confidentiality

·         Integrity

·         Authentication

·         Authorization

·         Availability

·         Non-Repudiation

Accessibility Testing:

§  Accessibility is the degree to which a product, device, service or environment is available to as many people as possible.

§  This Testing may include compliance with standards such as World Wide Web Consortium (W3C).

§  Accessibility is not to be confused with usability.

Internationalization and Localization Testing:

§  Internationalization and Localization are means of adapting computer application to different languages, regional differences and technical; requirements of a target market.

§  Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes.

§  Localization is the process of adapting internationalized software for a specific region or language by adding locale – specific components and translating text.

Advertisements

Give A message for us

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s