What is software testing

10 Jan 2018
What is software testing

Software testing is an activity that is conducted before a software product is released. The purpose is to evaluate if quality standards are met. Through testing, problems can be picked up and fixed before the product is released. Without testing, users will encounter errors and become unhappy. The earlier a problem is picked up, the cheaper it is to fix it.

What are the basics of software testing?

Testing is done by software testers who work alongside the team of developers. These tests are run either manually by a human being or automated through the use of tools. There are many different types of testing, but the three basic elements are as follows:

  • Functional testing: Unit testing, integration testing, User Acceptance Testing, Localization, Globalization
  • Non-Functional testing: Performance, endurance, load, volume, scalability, usability
  • Maintenance: Regression testing and maintenance testing

Types of software testing

  • Black box testing: Internal system design is not considered in this type of testing. Tests are based on requirements and functionality which determine the expected outputs for a set of inputs into the system.
  • White box testing: This testing is based on knowledge of the internal logic of an application’s code. It is also known as Glass box testing. The tests are based on the coverage of code statements, branches, paths and conditions.
  • Backward compatibility testing: This verifies that a product is compatible with older platforms.
  • Acceptance testing: This test evaluates the system’s compliance with the business requirements and assesses whether it is ready for delivery.
  • Beta testing: When a sample of the intended audiences tries the product out. Beta testing is the second phase of software testing.
  • End to end testing: To determine whether the flow of an application behaves as expected from start to finish.
  • Integration testing: Individual software modules are combined and tested in a group to expose faults in the interactions between integrated modules.
  • Regression testing: The exercise of re-running functional and non-functional tests to ensure that previously developed and tested software still performs after a change.

How do you write test cases?

If you have been assigned the task of writing test cases, then you are probably worried that it will take a long time and that people may not be able to understand the test cases that you have written. It is important to put yourself in the user’s shoes and create a template, especially if you are writing a large number of test cases. Here’s how to create a clear test case:

  • Create a good title. Use the module that you are testing in the title.
  • Include a description: The test case description will illustrate what the tester will be testing as well as other important information such as the data, preconditions and test environment.
  • Assumptions and preconditions: Include any pertinent preconditions and assumptions, such as the page that the user will be on and special requirements that need to be completed. The test data required to execute the tests must be included as preconditions.
  • Keep it simple and to-the-point: Remember that the person executing the test probably isn’t the same person who wrote the test case, so include all information in a clear and concise way.
  • Write down the result that is expected: The tester should know what he is expected to experience.
  • Write with a long-term goal in mind: The test case should be reusable in future test scenarios.
  • Test Design Techniques: Make use of the various techniques such as Boundary Value Analysis, Equivalence Class Partitioning, Decision Logic Table and State Transition Diagrams to create tests that accurately test the requirement.
  • Regression Candidate: Indicate whether this test will form part of the regression test pack once the functionality has been successfully released to the end users.

When should you stop testing?

Many times, testing needs to stop due to launch deadlines or test budgets being depleted. Ideally, testing should stop when the bug rate falls below a predetermined level, test cases are completed with a certain level passed, or the beta or alpha test period has come to a close and all high risk tests have been passed.

Need software testers who can do a comprehensive and thorough test on all your applications and software? Then contact Inspired Testing today.

Sastri Munsamy

Executive: Technology and Innovation for Inspired Testing

Sastri is a passionate and engaging mentor, educator and speaker with extensive experience of real-world testing and automation projects. He has worked in the consultancy industry for over 17 years. He has implemented test automation on various systems ranging from desktop, Web, SAP and mobile applications in multiple industries across the world, with an emphasis on defining an efficient and profitable automation strategy. As a mentor, Munsamy has hosted testing community meetups in Cape Town and Johannesburg, and has guest spoken at numerous industry events.


Join the conversation on LinkedIn
Connect with our experts and read the latest industry insights on our dedicated LinkedIn page.