Skip to main content

Introduction

Software testing, and testing in general is a grey area, with little to no exposure across courses. On your pathway, you will cover a limited range of software testing, with the focus being more towards usability testing. However, the importance of testing will be stressed by tutors, but with the volume of information relating to Web Design & Development, and the limited number of teaching hours, it is impossible to cover everything.

iiT has been created to bridge that gap. An informative website to provide you with an introduction into testing, a foundation of knowledge for you to build upon. You will be introduced to a small percentage of the basics of testing, such as the importance of testing, testing methodologies, testing approaches, and a selection of testing types. It is beyond the scope of this website to present every aspect of testing; therefore, the aim is to present the fundamentals of the more well-known industry testing techniques.

Importance of Testing

As software becomes more intricate, the challenge to build bug-free programmes is becoming more and more challenging. Thus, the importance of testing is paramount. If you do not test, how do you know it works? There is a common misconception that the sole purpose of testing is to find defects, though the theory is not incorrect, there is more to it, especially in the industry. While finding defects is one purpose of software testing and most likely what is relevant to yourself, it is essential to understand that defects or bugs are not the sole purposes of testing.

Testing ensures that different requirements and specifications are met, and provides validation of the product against the user needs. Testing contributes to the improvements in the product and can reduce costs and save companies money. Testing can significantly improve a companies reputation, translating into greater revenue opportunities. Testing can keep systems safe and safeguard companies from legal liabilities. Ultimately, testing gives confidence to a product, if a product does not go through testing how do we know that when it goes live, it will work?

Testing Methodologies

Testing methodologies are also referred to as Models in SDLC, Software Development Life Cycle, with the best suited methodology chosen on what suits the SDLC or STLC. Agile and Waterfall are perhaps the most well-known development methodologies, and since software testing is an integral part of any development methodology, Agile and Waterfall are often referred to as Testing Methodologies. There are several other testing methodologies available, however, we will go into more depth on the two you are most likely familiar with, Agile and Waterfall. Waterfall is known as the ‘old’ way of delivering software with Agile seen as ‘more up and coming’. If the SDLC or STLC is suited, Agile is the preferred choice.

Graphical representation of the Agile methodology

Agile Methodology

Agile is an iterative, team-based approach emphasising rapid delivery of the entire functional components of a product. Agile testing differs from the Waterfall method as testing can begin at the start of the life cycle, with integration between development and testing. Ultimately, Agile testing is not sequential, but continuous.

Read More
Graphical representation of the Waterfall methodology

Waterfall Model

Unlike Agile, the Waterfall model is sequential with each phase representing a distinct stage of software development. Generally, each phase finishes before the next phase can commence. Importantly, the testing phase in Waterfall only starts after the implementation of the system is done.

Read More

Black-Box Testing Vs White-Box Testing

Black-box testing and White-box testing are two testing techniques with distinct differences. Black-box testing focuses on the behaviour of the software, testing the way the system is supposed to work. Black-box testing can further be broken down in two main subtypes, functional and non-functional. White-box testing is a technique which focuses on the internal functioning of the product, where test cases need to be designed to exercise as many paths through the code as possible. White-box is also known as clear box testing, glass box testing, transparent box testing, and structural testing

Graphical representation of the Black-box testing

Black-Box Testing

The term ‘Black-box’ derives from the software tester being unaware of the internal structure of the product, thus seeing it as a ‘Black-box’. In Black-box testing, the emphasis is on input and output of the product, with little to no internal knowledge. Black box testing is best-suited to completed programs.

Read More
Graphical representation of the White-box testing

White-Box Testing

White-box testing aims to find possible errors in the code of the product to see how it performs. Thus, testing can only instigate when the product is ready. Due to the necessity of technical knowledge, white-box testing is undertaken by software developers or testing experts.

Read More

Manual vs Automated Testing

Testing can be either Manual or Automated and the choice selected is dependent on the individual requirements of the project. Manual testing is a type of testing where a test is executed manually by the tester. Automated testing involves testers writing code, scripts or frameworks to automate test execution.

Manual Testing

Manual testing involves testers manually executing test cases and is often more tedious and time-consuming than Automated testing. Despite the benefits of Automated testing, it is widely acknowledged that it is not possible to automate 100% of testing, thus Manual testing is crucial.

Read More
Graphical representation of Manual vs Automated testing

Automated Testing

Automated testing requires some manual exertion by the tester to write scripts or frameworks. Without the need for human intervention, tests can be run unattended, allowing for increased speed and test coverage. Automated testing is significantly faster than Manual testing.

Read More

Popular Testing Types

Integration testing tests the integration of components to validate that they work as expected.

Integration Testing

Integration testing tests the integration of components to validate that they work as expected.

Unit testing tests the individual components of a product to validate they perform as designed

Unit Testing

Unit testing tests the individual components of a product to validate they perform as designed.

Regression testing aims to ensure that changes to the code have not had a harmful effect.

Regression Testing

Regression testing aims to ensure that changes to the code have not had a harmful effect.

Load testing tests the behaviour of an application when accessed simultaneously by multiple users

Load Testing

Load testing tests the behaviour of an application when accessed simultaneously by multiple users.

Security testing aims to find all present security vulnerabilities in the productLink to Security Testing

Security Testing

Security testing aims to find all present security vulnerabilities in the product.

Performance testing tests the performance of the product under the expected workload

Performance Testing

Performance testing tests the performance of the product under the expected workload.

Return to the top
User Sitemap