Software Testing Basics Terminology , Different types of Software Testing Techniques , Different levels of software testing

It is the process of finding the yet undiscovered bugs/errors in the program. The user tests the program, find the error and bugs which could hamper t

 

Software Testing Basics Terminology

It is the process of finding the yet undiscovered bugs/errors in the program. The user tests the program, find the error and bugs which could hamper the normal functioning of the program.

Software testing can be stated as the process of verifying and validating whether a software or application is bug-free, meets the technical requirements as guided by its design and development, and meets the user requirements effectively and efficiently by handling all the exceptional and boundary cases.

Software testing can be divided into two steps: 
1. Verification: it refers to the set of tasks that ensure that the software correctly implements a specific function. 

2. Validation: it refers to a different set of tasks that ensure that the software that has been built is traceable to customer requirements. 

What are different types of software testing? 

Software Testing can be broadly classified into two types: 

1. Manual Testing: Manual testing includes testing software manually, i.e., without using any automation tool or any script. In this type, the tester takes over the role of an end-user and tests the software to identify any unexpected behavior or bug. There are different stages for manual testing such as unit testing, integration testing, system testing, and user acceptance testing. 

Testers use test plans, test cases, or test scenarios to test software to ensure the completeness of testing. Manual testing also includes exploratory testing, as testers explore the software to identify errors in it. 

2. Automation Testing: Automation testing, which is also known as Test Automation, is when the tester writes scripts and uses another software to test the product. This process involves the automation of a manual process. Automation Testing is used to re-run the test scenarios quickly and repeatedly, that were performed manually in manual testing.

Apart from regression testing, automation testing is also used to test the application from a load, performance, and stress point of view. It increases the test coverage, improves accuracy, and saves time and money when compared to manual testing. 

What are the different types of Software Testing Techniques ? 

Software testing techniques can be majorly classified into two categories: 

1. Black Box Testing: The technique of testing in which the tester doesn’t have access to the source code of the software and is conducted at the software interface without any concern with the internal logical structure of the software is known as black-box testing. 

2. White-Box Testing: The technique of testing in which the tester is aware of the internal workings of the product, has access to its source code, and is conducted by making sure that all internal operations are performed according to the specifications is known as white box testing. 

Black Box TestingWhite Box Testing
Internal workings of an application are not required.Knowledge of the internal workings is a must.
Also known as closed box/data-driven testing.Also known as clear box/structural testing.
End users, testers, and developers.Normally done by testers and developers.
This can only be done by a trial and error method.Data domains and internal boundaries can be better tested.

What are different levels of software testing? 

Software level testing can be majorly classified into 4 levels: 

Types of Testing Techniques / Terminologies

  • Unit Testing – It refers to individual units or components of the software that are tested. The purpose of unit testing is to see that each software unit performs as per the expected requirement and functionality. It may be termed as first-level testing.
  • Integration Testing - It refers to testing in which the individual software components or modules are combined together and tested as a group. It is used to see whether there is any fault in the integrated units. It is normally performed after the unit testing.
  • System Testing – The testing is performed on the system as a whole and to see whether the system is working as per the requirements and functionality specified. It takes the components of the integration testing as input and performs the testing.
  • Regression Testing – This testing is performed to check whether the changes to the software do not produce undesirable results. It is used to ensure that the previously developed software components and tested components still perform correctly after the changes. It also depicts that the changes have not broken any functionality.
  • UAT – User Acceptance testing – It is the testing done by the end-user or client to accept the software system before moving the software to the production environment. It is used to check the functionality of the software end to end related to the business flow.

software testing levels

The testers should possess good knowledge of the software or application. There should not any critical bug or error should be left in the application.

  • Black Box Testing  In this type of testing, the emphasis is on the functionality of the application. The code for the tester is like a black box. He concentrates on the functionality rather than the internal structures of the application. It is used to check the application from the user’s perspective and per requirements stated by the customer.
  • White Box Testing - In this type of testing, the emphasis is given on the internal structure of the program in the application/software, code structure, internal design to verify the input and output of the process in the software.
  • Grey Box Testing – This software testing method is a combination of Black Box testing and White Box Testing. It includes the testing of internal coding structure so involves the inputs from both developer and tester to ensure a quality product.
  • Ad-hoc Testing – It is also one of the terms used in Software Testing. The testing is performed without planning and other formal documentation. It is normally intended to run once. This testing is carried out on a random basis to check the functionality of the application.
  • Exploratory Testing – In this testing, the tester explores the application what intends to do, or its purpose. The tester uses his experience and knowledge to check the application and try to find errors/bugs. We can say it learning along with the test execution.
  • Alpha Testing – This testing is performed before the final product is released to the end-users or the customer. This testing is basically performed by the QA Testers internally to the organization or you can say performed at the developer’s site. The Bugs can be addressed by the developer immediately and can be fixed.
  • Beta Testing – This testing is performed by the end-users or at the customer's place who are not part of the organization. It is normally performed at the client’s place. The issues collected from the testing will be implemented for future versions of the product or application. The user inputs are gathered on the product and ensure it is ready for the customers.
  • Automated Testing - In this testing, the Test cases execution takes using an Automation tool. The Test data is prepared, test cases are executed using the required data. Test scripts are created for the testing of the application.

Testing Tools used for Automated Testing

  • Selenium
  • Appium
  • Ranorex Studio
  • QTP
  • Loadrunner
  • RPT – Rational Performance Tester
  • RFT – Rational Functional Tester
  • Watir
  • Apache Jmeter

There are four major automated testing techniques:

  • Record/playback
  • Scripting
  • Data-driven testing
  • Keyword-based

Post a Comment

© Software Engineering. The Best Codder All rights reserved. Distributed by