I´m going to start a Testing blog series where I want to learn more about the different Software Testing methods.
I have an side Project where I want to write Test´s for the RESTApi.
The Problem is I don´t have any knowlegdge about Software Testing itself so I thought why not make an overview about Software Testing and its methods.
Detailed excplaination of the software testing methods is going to be done in serveral blog posts.
What is Software Testing?
Software testing is an activity to check whether the actual results match the expected results and to ensure that the software system is Defect free.
It involves execution of a software component or system component.
Software testing also helps to detect errors, gaps or missing requirements. Testing can be done manually or using automated tools.
Why is Software Testing neccessary?
I assume that we all have mistakes in our work so we need to check our own work.
Idealy someone else should check our because a another person is more likely to find the flaws. There are so many reasons which tell us why Software Testing is important.
- Software testing is really required to point out the defects and errors that were made during the development phases.
- It is very important to ensure the Quality of the product.
- Quality product delivered to the customers helps in gaining their confidence.
- Testing is required for an effective performance of software application or product.
- It’s required to stay in the business.
Basics of software Testing
There are two types of basic Software Testing: blackbox testing and whitebox testing.
Black Box Testing is a software testing method in which the internal structure/ design/ implementation of the item being tested is NOT known to the tester
White Box Testing is a software testing method in which the internal structure/ design/ implementation of the item being tested is known to the tester.
Two of the major categories of tests on the market are functional and non-functional testing. Let´s see the differnces between these two tests.
1. Functional testing
Functional testing involves testing the application against the business requirements. The goal of functional testing is to verify that the application is behaving the way it was designed to.
Functional testing ensures that your software is ready to for release to the public.
1.1 Functional testing types
Unit testing is usually performed by the developer who writes different code units. This type of test involves breaking your programm into pieces, and subjecting each piece to a series of tests.
Integration Testing is used to test individual software components or units of code to verfiy interaction between various software components and detect interface defects.
Regression testing is definedto confirm that a recent program or code change has not adversely affected existing features.
A smoke test is a quick run through of a site; it focuses on critical functionality to ensure the site can perform basic features.
Sanity testing is usually performed when any minor bug is fixed or when there is a small change in the functionality. It is a kind of software testing which is done by the testers to ensure that the functionality is working as expected.
2. Non-Functional testing
While functional testing is concerned about business requirements, non-functional testing is designed to figure out if your product will provide a good user experience.
For example, non-functional tests are used to determine how fast the product responds to a request or how long it takes to do an action.
2.1 Non-functional testing types
Performance testing is the general name for tests that check how the system behaves and performs.
It examines how the system behaves during normal and high loads and determines if a system, piece of software, or computing device can handle high loads given a high demand of end users. This tool is typically applied when a software development project nears completion.
Stress testing is testing that checks the upper limits of your system by testing it under extreme loads.
Volume testing, as the name suggests, is a testing done on high volumes of data. The purpose of volume-testing is to check system performance with increased volume of data in the database.
Testing the ability of a system to minimise outage, or achieve agreed limits of outage, when the primary system fails necessitating transfer to a fallback system.
Security is set of measures to protect an application against unforeseen actions that cause it to stop functioning or being exploited. Unforeseen actions can be either intentional or unintentional.
An application is tested for its coordination with different hardware and software that it is expected to work on.
Usability testing is a way to see how easy to use something is by testing it with real users.
Scalability, a performance testing parameter that investigates a system’s ability to grow by increasing the workload per user, or the number of concurrent users, or the size of a database.
This was an briew Overview about Software Testing Methods and types. I´m trying to write Unit Test for my home project.
After I learned how to do that I definitly should wrtie an blog post about it.
Until that stay focused and keep learning !