The importance of application testing🤖
The task we forget - testing

Search for a command to run...
The task we forget - testing

No comments yet. Be the first to comment.
You may already be familiar with the term "open source" if you have been involved in programming for some time. Open-source software has gained popularity for many reasons, some of which I will attempt to explain below. Introduction To start with, l...
Hey 👋, I'm back with a new blog post after a long break! This past week, I’ve been diving deep into integrating push notifications into a mobile app. If you've ever wondered how they work and why they’re so effective, this post is for you! What Are ...

I'm back again with a new blog post. The idea for this post came very spontaneously. I'm currently investing a lot of time in my new development project, and I came up with how to further secure the application. As a solution to this issue, quite a f...

Node.js is an engine that allows us to run JavaScript outside the browser. Many applications today are powered by Node.js, offering numerous advantages and a few drawbacks. However, my intention today is not to introduce Node.js or JavaScript. Today,...

I have said many times that computer science is a huge field in which everyone can find themselves. Being a computer science student has its advantages and benefits, and one such advantage is what GitHub offers with its GitHub for Education program a...

Open Graph is an Internet protocol created by Facebook to standardize the display of metadata on social networks. What advantages does it bring? Open Graph brings advantages when displaying a website on social networks. Open Graph makes our posts mor...

Back again with a new post👋. This time I went a little deeper into what software testing means and what types of testing exist. Already during my internship as a student, I encountered automatic testing of web applications.
This time I present the advantages and disadvantages of automatic testing and when it pays to introduce automatic testing in the development itself, and what we need to pay attention to when introducing automatic testing.

If you are a developer, then you have already heard that it is necessary to test the application several times before it goes into production. The application can be tested in two different ways, most often it is done manually, but there is also the option of automatic testing (yes, the computer itself can check that everything is working as expected).
Manual testing is the execution of functional tests by “hands”, when we click on the application ourselves, and in this way, we find errors and bugs. Application testing is not only functional testing, if all functions work correctly, but application testing also includes a huge number of other types of testing.
Other types of tests:
Cross-browser Testing – testing the application if it is working in different browsers
Load and stress testing – testing the website's behavior in the event of an increased number of requests or users
UI testing (GUI Testing) – testing the user experience and appearance of the application/website under various conditions
A/B Testing – testing different versions of the application, which works better for the user
Compatibility Testing – compatibility testing with different device configurations or servers
Security Testing – testing the security of the application for any security vulnerabilities
Smoke Testing – testing of the operation of the main functions in accordance with expectations
Acceptance and Compliance Testing – testing if the application complies with the requirements and expectations of the project
As we can see, we can find that testing does not only include testing if all functions work correctly but also a lot of other types of tests.
Manual testing can be very, very time-consuming if we have a complex application with a lot of features. This is why automated testing exists.

Automated testing is testing that takes place without the intervention of a tester. It allows us to run application tests automatically.
Automated testing is most often used in E2E (end-to-end) tests. These are tests that illustrate user behavior in the real world. There are also Unit tests, which are used to test individual functions of the application.
Automated testing usually works together with integration in CI/CD (Continuous Integration/Continuous Delivery).
The power of automated testing is most apparent in larger applications/projects. For this reason, I do not recommend initiating automated testing in smaller projects. In smaller projects, you prefer to use manual testing.
Automated testing brings enormous advantages over manual testing.
Speed – Automated testing is faster than manual testing
More frequent testing – automated tests can be run more frequently than manual tests (for example, after each push to Git).
Higher product quality – frequent testing reduces the chances of errors and bugs in the project and quick detection of these
Reuse of scripts – all automated test code can be used in multiple places
Although automated testing has many advantages over manual software testing, it also has its disadvantages.
UI testing – automated testing is not suitable for UI testing
High initial costs – the initial costs of investing in automated testing can be very high (you need to buy software licenses, find someone who knows how to write tests…)
Constant correction – automatic tests need to be changed every time the program structure changes
Generates false positives and false negatives – many times a test can fail and generate a false result

Automated testing has its pros and cons, it's just a matter of when to decide to initiate automated tests into our development cycle.
The biggest factor in integrating automated tests is the size of the application/project. If we have a smaller project with few functions, manual testing is still the most useful, but if we have several applications or one larger application with many functions, it would be wise to start thinking about automatic testing. Automated testing is easiest to implement on new projects when all members of the development team write tests for features as they are developed.
The next question is how much money we are willing to invest in automated testing. There is no right answer here because we need to know what we want to test and in what way. There are free (open source) and paid solutions. It is also necessary to consider the costs of maintaining the tests when the product will change.
The number of people in the team is also important, a larger team may decide that someone should be responsible for writing tests and the rest should focus on product development.
If we have determined that it would be worthwhile for us to start integrating automated tests, we must start with good planning, because only with a good plan will we achieve higher product quality.
Deciding what we want to test – in the first step, we ask ourselves what we want to test, whether these are the main critical functions or something else
Choosing the appropriate tool for testing – in the next step, we ask ourselves which tool would be the most optimal and best for us, here we also determine the work methodologies
Planning the infrastructure – in the third step, we plan what kind of infrastructure we want to run the tests on, this includes planning the integration in CI/CD and the use of automation tools.
Planning and writing tests – in the fourth step, we start planning the writing of tests for our project. It is essential to test the written tests several times if they work correctly in different situations.
Analysis – in the last fifth step, we must analyze the results of automatic tests and decide about the next steps (update some test scripts or write new tests)
If we follow all these steps and everything else mentioned in the previous paragraphs, we can greatly increase the quality of the product/application.
In a future article, however, I will try to present some frameworks for automated application testing.

As we saw in the course of the article, testing automation can achieve higher product quality and free the tester to focus on other tests. Integrating automated testing requires a lot of planning to make the integration as successful as possible, but it pays off in the long run.
I hope the post helped you, I will be happy about any comments and also likes. See you soon.