Scandiweb Learning Culture: TESTING 101, how to perform software tests?

Every Friday Scandiweb team ends working day at 3 PM to….LEARN, LEARN, LEARN. Colleagues organising workshops for each other on every topic you could imagine: Docker, VueJS, AWS architecture, Software testing, CRO…

QA team took initiative last Friday to remind that having an app crashing or a feature that doesn’t work properly can be frustrating and can ultimately lead to losing potential customers.

another week, another great workshop in the Scandiweb offices in Riga

Some highlights of what was covered during the workshop:

How to perform Manual Testing

In this scenario the tester assumes the role of the end user and verifies that all the features of the application are working correctly.

The tester manually executes test cases without using any automation tools.

The goal of manual testing is to ensure that application is defect & error free and is working fine to provide good quality work to customers.

Preparing Test Basis and Test Specification

Basis for the tests is called the Test Basis. It can be a system requirement, a technical specification, the code itself or a business process. The test basis is the information needed in order to start the test analysis and create our Test Cases.

The Test Case Specification document specifies the purpose of a test, identifies the required inputs and expected results, provides procedures for executing the test, and outlines the pass/fail criteria for determining acceptance.

How to write a Test Scenario

  • Test scenarios must cover the negative and out-of-the-box testing with a ‘Test to Break’ attitude.
  • Domain knowledge — important to get a deeper understanding of the application.
  • Scenario mapping — to be done to make sure that each and every requirement is directly mapped to number of scenarios.
  • Ensuring that every identified scenario is a story in itself.
  • Review — a scenario is to be reviewed by the Product Manager/Business or anyone else who understands the requirements really well.

Life-cycle testing

As soon as the initial products, such as requirement or design documents are available, we can start testing. By starting testing early, tests can be prepared for each level of the development life-cycle. When defects are found earlier in the life-cycle, they are much easier and cheaper to fix.

The process of software testing

1. Planning and Control

Planning — involves producing a document that describes an overall approach and test objectives.

Control — the activity of comparing actual progress against the plan, and reporting the status, including deviations from the plan.

2. Analysis and Design

Major tasks for Test Analysis and Test Design:

  • Reviewing the test basis
  • Identifying test conditions
  • Designing the tests
  • Designing the test environment set-up and identifying the required infrastructure and tools

3. Implementation and Execution

Test Execution involves running the specified test on a computer system either manually or by using an automated tool.

Major tasks for Test Implementation:

  • Developing and prioritizing test cases by using techniques and creating test data
  • Creating test suites from the test cases for efficient test execution
  • Re-executing the tests that previously failed in order to confirm a fix
  • Logging the outcome of the test execution
  • Comparing actual results with expected results

4. Evaluating Exit criteria and Reporting

Evaluating exit criteria is the process of defining when to stop testing. It depends on coverage of code, functionality or risk.

Major tasks for evaluating exit criteria:

  • Assessing if more tests are needed or if the criteria specified should be changed
  • Writing a test summary report for stakeholders

5. Test Closure

Test Closure activities are done when software is ready to be delivered. Testing can also be closed for other reasons like When a project is canceled, When a target is achieved, When a maintenance release or update is done.

Major tasks for Test Closure:

  • Checking which planned deliverables are actually delivered and ensuring that all reported incidents have been resolved.
  • Finalizing and archiving testware such as scripts, test environments, etc. for later reuse.
  • Sharing testware with the maintenance department that will give support to the software.
  • Evaluating and learning from the testing process for future releases and projects.

Functional and Non-functional testing

Functional testing verifies that each function of the software application operates in conformance with the requirement specification. Functional testing is a quality assurance (QA) process that mainly involves Black Box Testing.

Functional testing steps:

  • Identifying functions that the software is expected to perform
  • Creating input data based on function’s specifications
  • Determining the output based on function’s specifications
  • Executing the test case
  • Comparing the actual and expected outputs

Non-functional testing is performed to check non-functional aspects (performance, usability, reliability, security, stress, etc.) of a software application. It is designed to test the readiness of a system as per non-functional parameters which are never addressed by functional testing.

Black Box Testing vs White Box Testing

In Black Box Testing the testing is done without the knowing the internal codes and structure of the program. Testing is performed from the customers point of view and the tester knows only about the inputs and expected outputs of the application. It is called ‘Black Box’ because the software is like a black box inside which the tester cannot see. The main purpose of Black Box Testing is to check whether or not the software is working and client requirements are met.

In White Box Testing the testing is done with the knowledge of internal codes and structure of the software. The tester chooses inputs and exercises the test by giving inputs to the system through the codes and determines the appropriate outputs. The main focus of WBT is on strengthening the security and on improving design and usability of the software.

Summary

A properly done testing should:

  • Confirm the quality of the software has met the required standards
  • Verify that what was built is what was needed

Interested in finding out more about Testing? Check out the theoretical material for this workshop prepared by one of Scandiweb’s QA Automation experts.

___________________________________________________________________If you wish to find out more about Scandiweb feel free to drop us a line at info@scandiweb.com


Scandiweb Learning Culture: TESTING 101, how to perform software tests? was originally published in Scandiweb Stories on Medium, where people are continuing the conversation by highlighting and responding to this story.