Software Testing Basics
What is Software Testing?
Functional and Non-Functional Testing
Functional Testing
- Unit Testing
- Smoke Testing
- Integration Testing
- System Testing
Smoke Testing is a software testing process that determines whether the deployed software build is stable or not. Smoke testing is a confirmation for QA team to proceed with further software testing
Integration testing: It focuses on the construction and design of the software. You need to see that the integrated units are working without errors or not.
System testing: In this method, your software is compiled as a whole and then tested as a whole. This testing strategy checks the functionality, security, portability, amongst others.
Non Functional Testing
- Load Testing
- Stress Testing
- Usability Testing
Load Testing: An application which is expected to handle a particular workload is tested for its response time in a real environment depicting a particular workload. It is tested for its ability to function correctly in a stipulated time and is able to handle the load.Below are few Load Testing tools
- JMeter
- WebLoad
- LoadNinja
Stress testing is to check these situations using automation tools to create a real-time situation of workload and find the defects.For Stress Testing we need environments
- BlazeMeter
- AWS Distributed Load Testing Environment
Security Testing:
Security Testing is to check how secure the software is regarding data over the network from malicious attacks. The key areas to be tested in this testing include authorization, authentication of users and their access to data based on roles such as admin, moderator, composer, and user level.
It is very important now a days. Cyber security is another topic to handle below things
Examples:
- Penetration
- Hacking
- Bash Scripting
- Dictionary Attack
Software Testing Techniques
- Boundary value Analysis
Equivalence Class Partitioning
Decision Table
Boundary Value Analysis (BVA)
Boundary value analysis is based on testing at the boundaries between partitions. It includes maximum, minimum, inside or outside boundaries, typical values and error values.
It is generally seen that a large number of errors occur at the boundaries of the defined input values rather than the center. It is also known as BVA and gives a selection of test cases which exercise bounding values.
This black box testing technique complements equivalence partitioning. This software testing technique base on the principle that, if a system works well for these particular values, then it will work perfectly well for all values which comes between the two boundary values.
Example:
Input condition is valid between 1 to 10
Boundary values 0,1,2 and 9,10,11
Equivalent Class Partitioning allows you to divide set of test condition into a partition which should be considered the same. This software testing method divides the input domain of a program into classes of data from which test cases should be designed.
The concept behind this technique is that test case of a representative value of each class is equal to a test of any other value of the same class. It allows you to Identify valid as well as invalid equivalence classes.
Example:
Input conditions are valid between
1 to 10 and 20 to 30
Hence there are five equivalence classes
--- to 0 (invalid)
1 to 10 (valid)
11 to 19 (invalid)
20 to 30 (valid)
31 to --- (invalid)
You select values from each class, i.e.,
-2, 3, 15, 25, 45
Decision Table
The decision table is a software testing technique which is used for testing the system behavior for different input combinations. This is a systematic approach where the different input combinations and their corresponding system behavior are captured in a tabular form.
This table helps you deal with different combination inputs with their associated outputs. Also, it is known as the cause-effect table because of an associated logical diagramming technique called cause-effect graphing that is basically used to derive the decision table.
In the above example,
- T – Correct username/password
- F – Wrong username/password
- E – Error message is displayed
- H – Home screen is displayed
Now let’s understand the interpretation of the above cases:
- Case 1 – Username and password both were wrong. The user is shown an error message.
- Case 2 – Username was correct, but the password was wrong. The user is shown an error message.
- Case 3 – Username was wrong, but the password was correct. The user is shown an error message.
- Case 4 – Username and password both were correct, and the user is navigated to the homepage.
References:
https://www.edureka.co/blog/what-is-software-testing/
https://www.guru99.com/software-testing.html