Reviews are the greatest indication of the success of apps on the Google Play Store and the App Store. Interpretations and star counts are a measure of the total spent effort and the success/failure of the application. The reason for the majority of these negative comments is, that they are not correctly and well tested and also the testing process is not planned from the very beginning of the software. In this article, I would like to talk about the purpose of the testing and why it is important in the application development process.
Software Development Life Cycle (SDLC)
Software testing is an important part of the SDLC. And that’s why we should first summarize what the SDLC is. I think a test engineer should have information about the whole software process.
In a nutshell, SDLC is a cycle of requirements gathered from customers, analyzed, and then made up of design, development, testing, and publishing. In this cycle, the cost of software differs according to the place of error. The cost of the error caught in the last stages increases according to the early stages. This makes the importance of the test higher.
A good test is to find serious mistakes early!
Testing and Software Testing
Testing is the period in which a system is tried or assessed manually or automatically to determine whether it meets specified requirements or to determine the difference between expected and observed results.
Software testing involves dynamically validating activities to meet the expected behavior of software from an infinite number of work areas, a limited number of tests, and appropriately selected tests.
Why Do Software Testing?
- Ensure product quality before the customer is served,
- Reduce rework and development costs,
- To prevent the spreading of the development process in the early stages by detecting mistakes, thus saving time and cost,
- Made for general purposes like increasing customer satisfaction and preparing the ground for following orders.
Software Testing Techniques
1. Black-Box Test: It is only a test of functionality and needs. They are also known as Closed Box, Functionality Tests, or Opaque. Black-Box tests take into account the choice of input for the function of the operation to be performed and the expected or unexpected output of the operation to be performed.
In the black-box test, the code is not examined and no special application or program is needed.
Tests that the user does not exist:
- Ad-Hoc Test: Used to determine the duration and coverage of other tests.
- Research Test: Used to learn the application before the test phase.
- Regeneration Test: Used to understand how long the application will return to a fault.
- Functionality Test: This is the testing of the functional requirements. If the expected results are obtained, the writing of the tests is continued.
- Usability Test: A test that is performed in applications where the user interface is important.
- Level Test: In the level test where the system end limits are tested, the system is forced to the end limits and this limit is determined.
- Smoke Test: The smoke test determines that the application has successfully passed minor tests and is ready for major tests.
- Stress Test: Monitoring the results of the same process performed many times at the same time. The durability and response of the application are determined.
- Load Test: Used to determine under which conditions and where the system will crash.
Tests that the user exists:
- User Acceptance Test: Examines whether the user has tested the system and met the expectations.
- Alpha Test: A test where the developer calls the application development center to note the developer’s required information according to what they do in practice.
- Beta Test: Tests that users who test the beta version of the deployed application examine the system and report feedback to the developer.
2. White Box Test
The white box test is based on the code of the application and tests the program’s execution and internal construction. In the white box test -also called glass, open box or clear box- the tester is examining the code to find the problematic part.
- Unit Testing: Usually done by software developers. Small blocks of code are tested.
- Static and Dynamic Analysis: Static analysis examines the code sequentially and searches for errors. The dynamic analysis examines the code’s operation and output.
- Scope of Statement: Explanations in the code are tested. The accuracy of all statements is confirmed.
- Security Testing: Testing of system security. Aims to identify system vulnerabilities such as unauthorized access, and close these.
- Change Test: This is a general test made after a problem in the system has been fixed.
Test Automation
Software testing automation has taken place on stage as the software industry has been placed in every sector. In an automation system, the total share of work determines the level of automation. Briefly, manual testing of software is done automatically through a script or a tool.
Although test automation is related to testing, it is actually software development work. In the early stages of software development, it is necessary to start automation work. Successful test automation requires teamwork between test engineers and developers.
Advantages of Test Automation
- Test automation procedures in an organization reduce the human-induced application of manual tests, resulting in better system testing.
- Provides increased efficiency in the software testing process by identifying more errors earlier.
- Automating repeated tests reduces testing costs.
- The test engineer gains extra time to do more detailed testing through automation (Exploratory Testing and Usability Testing).
- Infrastructural change plays an important role in the rapid completion of Regression Testing.
- Facilitates reuse of tests.
- Increase code coverage with tests.
- Tests can run on 7/24.
- Provides increased reporting quality of tests.
- Increases the quality of the product developed.
You can sip your cup of coffee while your tests are running:)
When to Run Test Automation?
It is necessary to start the automation business at an early stage; otherwise, all of the test designs, test strategies, test result format, etc. should be changed, which increases cost and demotivation of the staff at the same time. In order to reduce these effects, automation architecture should be done very well.
Automation should make things easier. Sometimes the most important faults are found with Ad Hoc tests, which means that the test taker puts itself in the customer’s place and tries various scenarios. So it detects important errors.