Blog

Articles to grow your career

Article

7 Approaches to Testing

Approach 1. Testing Is Done by the Developer or Manager

It is difficult to single out this stage as a separate approach, since, this is the absence of professional testing. Instead of a specialist with an objective assessment, the project is tested by the developer or manager. This often happens for several reasons: lack of budget, desire to save money, inability to hire a professional tester, or simply not understanding the importance of testing. Of course, this is better than no testing at all, but not much.

The developer checks only those functions that should work as they originally intended, and those scenarios that they implemented. That is, they do not pay attention to all user scenarios. The subjective attitude to the project and the desire to finish faster makes us ignore many of the issues.

The manager, due to their workload, looks superficially whether everything is working, without testing each module separately. This is intuitive testing, which is far from professional. They do not have expertise: they can detect obvious mistakes, but many nuances are overlooked.

As a result, all system bugs are noticed by end users, which reduces the credibility of the company, scares off buyers, and spoils the brand’s reputation.

Approach 2. Testers Are Hired at the Final Stage

A typical method for a waterfall model of software development, when a project is divided into stages. A professional tester who appears only at the stage of project release or each stage is the first stage in the evolution of testing.

The main disadvantages of the method:

  • When testing the system at the very end, significant errors at the architecture level are found too late and you have to rewrite a large piece of code or redo it from the very beginning. This is unprofitable.
  • This is free intuitive testing, which in turn entails ignoring a number of alternative user scenarios.
  • The project underwent changes during development, the initial documentation no longer corresponds to the final result, which complicates the analysis of bug reports.

Bottom line: at first glance, a logical approach to testing does not initially consider the detection of global errors.

Approach 3. Testers Check if the Result Matches the Original Task

This approach allows you to find bugs “as they become available” with an agile development methodology. The tester is integrated into the development team. Each function is tested consistently and repeatedly. In this case, testing is not yet detailed and structured, it is still more intuitive. The main disadvantage: the approach is non-systemic.

The tester gets tired of manually checking typical tasks every time, for example, authorization on the website, and after a while, they start to lose sight of these “little things”. Alternative scenarios can also be overlooked.

Approach 4. Testers Do Test Design

Deliberate professional testing emerges at this stage. That is, this is not random testing based on intuition but a systematic process, supported by the necessary documentation. Attention is paid to the analysis of all requirements. All work is divided into test blocks.

The design and creation of test cases are carried out considering the specifics of the project and the requirements for it according to the previously defined quality criteria and testing objectives. Test documentation is prepared, including test plans, checklists, bug reports, regressions, and requirements specifications.

There are no obvious drawbacks to this approach. With the right approach to testing, this is already the proper level, but it can be better.

Approach 5. Implementation of a Test Management System

This stage already includes test planning: a clear understanding of when to do the regression or smoke testing, there are regulations.

As a company grows, it is necessary to store and organize development products. Test case storage systems and testing tools are being implemented. For example, using TestRail. It is a tool that is used for general test management, storing all requirements and test cases on a project. This tool helps to generate reports on the testing. Improved control over the testing process gives a new level of product quality. The system speeds up the introduction of new participants into the project.

Approach 6. Test Automation

Developers and testers write automated tests: unit tests and UI tests. That is, all regular checks are automated. The human factor is excluded –no such things as I forgot or was too lazy to test the same thing for the hundredth time.

Automated tests are written for the simplest test cases: authorization, registration, posting, etc. Automation engineers work here. The simplest features that most likely will not change are automatically checked each time a release is tested. There are many technologies for automating testing.

You can use the following:

  • Testing framework: TestNG/JUnit.
  • Programming language: Java, Python.
  • The project builder: Maven/Gradle.
  • The libraries for UI tests: Selenide, PyTest.
  • Back-tests: RestAssured library.
  • Generation of reports: Allure.
  • Tool for organizing load testing: Jmeter.

Test automation significantly reduces time costs and improves product quality.

new roles in team

Approach 7. The Hierarchy Becomes More Complex and New Roles Appear in the Testing Team

The top of the evolution of testing can be called the emergence of a hierarchy and narrow specialists: test manager, test lead, test analyst, test designer, and so on. Each person is responsible for their part of work.

  • The test manager possesses all the information on the product, sees the “big picture”, organizes the work, and manages the testing team. Their functions include communication with the client and the development team.
  • The test lead coordinates testing and distributes tasks within the team.
  • The test analyst prepares the requirements specification.
  • The test designer makes checklists and test cases according to specified requirements.
  • Some testers test directly by hand and are integrated into the development team.
  • Automation testers write automated tests for those functions that no longer change.

Conclusion

Not every project requires a large team of testers, somewhere it is enough to integrate 1-2 testers into the project team at the initial stage. In other cases, it is necessary to organize a systematic approach to quality control with the maintenance of all the necessary test documentation.

Alex Kara
By Alex Kara on Aug 30, 2021
Manual QA