Blog

Articles to grow your career

Article

Most Important Software Testing Stages

Testing is vital for the development of quality software. It is essential to take seriously the analysis and design of a structured process to ensure the timely and successful release of the project.

You should remember that it is very easy to lose user trust, and it can cost more to fix mistakes than to do full preparation and testing at the very beginning.

Stages of Software Testing

Preparatory stage and study of documentation

This stage of the software testing life cycle includes the analysis of the technical specifications; study of final layouts; test cases; traceability matrix (to validate the coverage of product requirements with tests) and drawing up a testing plan.

software testing stages

Layout Testing

Visual part:

  • incorrect display of the blocks that make up the interface, colors do not match;
  • testing of localized versions (website translation);
  • compliance with the layout (layers in PhotoShop);
  • reducing/increasing the scale (75-150%) without visual flaws;
  • highlighting fields with errors;
  • checking display resolution (+ scrolling);

You can check it like this: Firefox Menu → Tools → Browser Tools → Responsive Design Mode or Resolution Test Plugin in Google Chrome.

Availability and absence of JS errors:

  • whether clickable elements (internal/external links, email links, buttons, icons) work;
  • when you hover over clickable elements, the cursor changes, otherwise – no change;
  • hints on incomprehensible clickable elements;
  • when disabling images, captions should be a little gray (in Web Developer → Images → Replace Image With Alt Attributes);
  • operability when JS is off. Critical functions must be accessible without JS (in Web Developer → Disable → Disable JS → All JS)

Correct work with data, reliable layout:

  • checking the work with data (entering a large and small amount of text into the form; blocks with content are swapped (Firebug (HTML → Edit)));
  • checking styles (input of text with headings, with and without a paragraph, with pictures).

404 requests:

  • whether there are 404 errors (Firefox → Tools → Validate links)

Functional Testing

A type of testing that reveals the incorrect operation of the program functionality.

It is necessary to check:

  • whether the main functions of the website are working;
  • whether following links is working;
  • validation of custom forms (field validation, required/optional fields, error notifications for incorrect input, adding comments to the blog, feedback);
  • Search and purchase of goods, making orders;
  • verification of the content provided by the customer with the content available on the website;
  • checking if authorization/registration is possible;
  • adding, deleting, and editing data of users, goods, and orders.

Ad-hock testing is improvised testing without preparation. It helps to understand whether the purpose of the forms is clear. It also presupposes:

  1. required field validation;
  2. validation of completed forms;
  3. validation of correct contact information input.

The advantages of this testing are:

  1. fairly easy to get used to the system;
  2. specific malfunctions;
  3. a lot of questions and suggestions;
  4. time-saving.

Negative testing

(also known as error path testing or failure testing) is the process of applying as many creative approaches as possible and checking the application for bad data. Its purpose is to check if errors are shown to the user, where they might be, or to handle incorrect values more efficiently. It is carried out to ensure application stability during test case development.

Learn from our Experts at Spin Career Today

Are you ready to launch your Quality Assurance Career. Start learning software quality assurance and quality assurance automation today.

Equivalent tests

Equivalent tests are tests in the software testing life cycle that lead to the same result. A test group is an equivalence class when the following conditions are met:

  • all tests are written to identify one error;
  • if one of the tests reveals an error, then the rest will also reveal it;
  • the opposite is also true.

An equivalent area in the phases of software testing is a part of an input or output data area for which the behavior of components or systems, based on the specification or test environment setup, is considered the same.

Exploratory testing

Exploratory testing, also called intuitive testing, means design, test execution, and product training at the same time during the software testing life cycle.

happy spin career student

Usability Testing (User Experience)

Allows you to check website user-friendliness, how easy it is to find the necessary information or perform the desired actions.

  • Testing website navigation. Presence of all pages, buttons, and fields, whether they are easy to use; access to the main page and menus from all other pages is possible, navigation is simple and intuitive.
  • Content testing. There are no grammatical/spelling errors, the content is informative and well-structured, images, titles, and headings are placed and sized correctly.
  • Testing user-friendliness. Is the structure of the web application clear, what impression does it make, and whether there are unnecessary components on the pages.
  • Testing UI (User Interface). Compliance with standards of graphic interfaces and design elements, the correctness of localized versions, testing with different resolutions, on smartphones and tablets.

Compatibility Testing (Configuration Testing)

This is a type of non-functional software testing that tests whether software can run on other hardware, operating systems, applications, network environments, or mobile devices.

  • Cross-platform website testing. Some functions may have problems with certain operating systems, therefore it is necessary to test the operation of the application on various versions of Windows, Unix, Mac, Linux, Solaris, etc.
  • Cross-browser website testing. The correct work depends on the type of browser. The layout should be cross-browser to ensure the same visuals, accessibility, functionality, and design in all browsers. It is necessary to check scalability, extensibility, frames for elements in focus, absence of JS errors (left bottom corner of the page). It is necessary to check the work in such browsers as Internet Explorer, Firefox, Chrome, Safari, Opera, Edge of different versions.
  • Mobile view. Despite checking the work of web applications in different resolutions on a computer, errors on mobile devices are often left unnoticed. That is why, it is highly recommended to check the correct display and work of your web application on mobile devices of different operating devices, as well as on tablets.
  • Database testing. It is necessary to check the correctness of server communication, the compatibility of the server with software, hardware, database, and network. You also need to test what happens when an action is interrupted when you reconnect to the server during operations.

Performance Testing

It is a non-functional testing technique for measuring system parameters such as response and stability under various loads. It allows you to investigate the site speed and scalability of the application, for example, when adding new users. It is carried out to find out what kind of load the site can withstand. Performance testing measures the scalability, reliability, and resource utilization of a system.

quality assurance

Load testing

Load testing is a performance testing technique that measures the response of a system is under various load conditions. Responsible for the reaction of the web application when the workload increases. Load tests are carried out for normal and peak loads (simultaneous purchase of goods or authorization on the site of a large number of users).

  • Stress testing approach:
  • Evaluate performance characteristics
  • Identify critical scenarios
  • Workload model
  • Determine target load levels
  • Test design
  • Run tests
  • Analyze the results

Load testing tasks: response time, bandwidth, resource utilization, maximum user load, business metrics.

Stress testing tests the system for its robustness and error handling under extremely high load conditions (evaluates how the system performs under extreme conditions, beyond the limits). Stress testing is done to ensure that the system will not crash in critical situations.

Stability/Reliability testing is a type of software testing that verifies whether software can perform a trouble-free operation for a specific period of time in a specific environment.

Volume testing is a type of software testing, that analyzes system performance by increasing the amount of database data.

Parallel testing is a software testing type that checks multiple applications or their subcomponents at the same that radically reduces the testing time.  In parallel testing, the tester runs two different versions of the software at the same time with the same input. The goal is to find out if the old system and the new system behave the same or different.

processes on computer

Security Testing

Aims at optimizing system security in the design, development, use, and maintenance of software systems and their integration with safety-critical hardware systems in a production environment.

Aspects of software safety:

  • Functional software must not create danger (for example, control of a modern aircraft must NOT be directed into the ocean).
  • Monitoring systems should work without failures (for example, the backup computer should start automatically if the primary computer fails).

Security testing Objectives:

  • in complex systems where many interactions are involved, safety-critical functions must be identified and carefully analyzed;
  • errors are identified and eliminated;
  • the number of critical errors is kept low to avoid system malfunction;
  • security attributes should be considered as part of all software testing levels.

Additional information on application security can be found here: CHECK, ISACA, NIST Guideline, OSSTMM, OWASP Guide.

apps on computer

Safety principles:

  1. Confidentiality (restriction or provision of access to information).
  2. Integrity (the ability to restore damaged data fully; access to change information only for a certain category of users).
  3. Accessibility (hierarchy of access levels and their strict adherence).

Error Handling and Regression Testing

After completing the development of the web application, an assessment and analysis of the identified errors should be carried out to further prevent their reoccurrence and also perform regression testing.

Regression Testing

Uses a black box testing technique (re-running tests) that are affected by code changes. These tests should be performed as often as possible during the software development lifecycle within code changes to fix defects or to improve the performance of the web application.

regression testing

 

Some pieces of practical advice

  • Before starting testing, it is necessary to discuss all the important details with the team (BA, PM, developers).
  • Take a broad approach using test analysis techniques and a set of testing design techniques.
  • Determine the types of testing to be performed.
  • Determine the goals and key users of the web application.
  • List all devices, OS, and browsers that require testing.
  • Provide access for different roles of visitors.
  • Prepare documentation.

Remember that the work process is not a routine, but rather a creative process that determines the breadth of your thought. Treat your work as a new challenge, and you will begin to receive not only pleasure but also inspiration and desire to grow. The tasks of a tester are multifaceted: you need to understand the task of a web application, understand how it should work, what tasks to solve, what benefits to bring to users, and then re-check everything several times to release the project to the world. You need to be focused and daring to release projects that the whole team can be proud of.

 

Alex Kara
By Alex Kara on Jul 31, 2021
Manual QA