What is Software Testing?
- Software testing is a process of executing a program or application with the intent of finding the software bugs.
- It can also be stated as the process of validating and verifying that a software program or application or product meets the business and technical requirement that guided its design and development.
- In other word software testing is the process of evaluation a software item to detect differences between given input and expected output.
Why should we Test? or What are the advantages of software testing?
- Software testing is really required to point out the defects and errors that were made during the development phases.
- It’s essential since it makes sure of the customer’s reliability and their satisfaction in the application.
- It is very important to ensure the quality of the product. Quality product deliver to the customers helps in gaining their confidence.
- Testing is necessary in order to provide the facilities to the customers like the delivery of high quality product or software which requires lower maintenance cost and hence results into more accurate, consistent and reliable results.
- Testing is required for an effective performance of software application or product.
- It’s important to ensure that the application should not result into any failures because it can be very expensive in the future or in the later stage of development.
- It is require to stay in the business.
Manual Testing v/s Automated Testing
- Testing can either be done manually or using an automated testing tool:
- Manual Testing
- This testing is performed without taking help of automated testing tools.
- The software tester prepares test cases for different sections and levels of the code, executes the tests and reports the result to the manager.
- Manual testing is time and resource consuming.
- The tester needs to confirm whether or not right test cases are used.
- Major portion of testing involves manual testing.
- Automated Testing
- This testing is a testing procedure done with aid of automated testing tools.
- The limitations with manual testing can be overcome using automated test tools.
- A test needs to check if a webpage can be opened in Internet explorer. This can be easily done with manual testing.
- But to check if the web-server can take the load of 1 million users, it is quite impossible to test manually.
- There are software and hardware tools which helps tester in conducting load testing, stress testing, regression testing.
Static Testing v/s Dynamic Testing
- Under Static Testing code is not executed. Rather it manually checks the code, requirement documents, and design documents to find errors.
- Main objective of this testing is to improve the quality of software products by finding errors in early stages of the development cycle. This testing is also called as Nonexecution technique or verification execution testing.
- Under Dynamic Testing code is executed. It checks for
- functional behavior of software system.
- Main objective of this testing is to confirm that the software product works in conformance with the business requirements.
- This testing is also called as Execution technique or validation testing.
Phases of Software Testing or The levels of testing are
1 Unit testing,
2 Integration testing,
3 System testing,
-- Functionality testing
-- Performance testing
-- Security & Portability
4 Acceptance or Installation testing.
-- Alpha testing
-- Beta testing
The V Model
- The V-model represents a software development model which can be considered an extension of the waterfall model.
- Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape.
- The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing.
- Testing of the product is planned parallel with a corresponding phase of development.
- It is also known as Verification and Validation model.
- The verification phases are requirement analysis, system design, architecture design and module design.
- The validation phases are unit testing, integration testing, system testing and acceptance testing.
Testing Approaches
- Tests can be conducted based on two approaches
Functionality testing
Implementation testing
- When functionality is being tested without taking the actual implementation in concern it is known as black-box testing.
- The other side is known as white-box testing where not only functionality is tested but the way it is implemented is also analyzed.
- White-box testing (also known as clear box testing, glass box testing and transparent box testing) is a method of testing software that tests internal structures or workings of an application, as opposed to its functionality (i.e. black-box testing).
- In white-box testing an internal perspective of the system, as well as programming skills, are used to design test cases. The tester chooses inputs to exercise paths through the code and determine the appropriate outputs.
- White box testing technique is used by both developers as well as testers.
- It helps them understand which line of code is actually executed and which is not.
- This may indicate that there is either missing logic or a typo, which eventually can lead into some negative consequences.
- Black box testing is a software testing techniques in which functionality of the software under test (SUT) is tested without looking at the internal code structure, implementation details and knowledge of internal paths of the software.
- This type of testing is based entirely on the software requirements and specifications.
- In Black Box Testing we just focus on inputs and output of the software system without bothering about internal knowledge of the software program.
- For example: an operating system like Windows, a website like Google ,a database like Oracle or even your own custom application.
- Under Black Box Testing , you can test these applications by just focusing on the inputs and outputs without knowing their internal code implementation.
Download link for more Detail: An overview of Testing
Or follow my blog from the below link
Also, Join my Telegram channel with the below link
Also, join my Whatsapp group with the below link
0 Comments