Introduction to Software Testing

Introduction to Software Development and Testing

1) Importance of Software
2) Software Development
3) Software Testing
i) Levels of Testing
ii) Types of Testing
iii) Ways of Testing

1) Importance of Software

We have various types of Software in the IT Industry,

Nowadays, every business and service require software for conducting their operations (Computerized operations), ex: Banking, Insurance, ERP, Ecommerce, Government, Training, Telecom, Healthcare etc…

Here, Software Development and Software Testing are required,

2) Software Development

We have several Software technologies are available for Software Development,
C, C++, Java, .NET….

SAP, Oracle Apps, Salesforce….

Oracle, SQL Server, MySQL, SyBase…..

You can develop Software using Java or .NET or some other technology,

Irrespective of the Software Development technology we conduct Software Testing and It is common….

3) Software Testing

Conducting Software Testing…

i) Levels of Testing

We have some levels of Testing,
1) Unit Testing
2) Integration Testing
3) System Testing
4) Acceptance Testing….

ii) Types of Testing

and Types of Testing under every test level,
1) Functional Testing,
2) Performance Testing,
3) Usability Testing,
4) Security Testing,

and Different Type of Testers,
1) Unit Testing – Developer,
2) Integration Testing – Developer / Independent Tester
3) System Testing – Independent Tester
4) Acceptance Testing – End User

Testers use Test Design Techniques to cover all aspects in an optimized way,

Developers use White Box Test Design Techniques to conduct Unit Testing,

Independent Testers use Black Box Test Design Techniques to conduct System Testing,

iii) Ways of Software Testing
a) Manual Testing
b) Automated Testing

We can conduct Functional Testing, Usability Testing, Security Testing etc… Manually, but conducting Performance Testing manually is impractical…

We can conduct Automated Functional Testing, Performance Testing, Security Testing etc., using Software Test Tools, but Automated Usability Testing is impractical, Test Tool can’t judge Look & Feel aspects, Human User only can judge the look and feel aspects….

a) Unit Testing

In Unit Testing level individual units/ components of a software are tested. The purpose is to validate that each unit of the software works as designed.

Unit Testing can be done manually as well as automated
Unit Test Tools – NUnit, JUnit, TestNG etc…

Developers conduct Unit Testing using White Box Test Design Techniques…

b) Integration Testing

In Integration Testing Level, individual units are combined and tested as a group. The purpose of this level of testing is to expose faults in the interaction between integrated units.

Popular Integration Test Tools:
FitNesse, Rational Integration Tester, Protractor, TESSY and Jasmine etc…

Independent Testers and Developers conduct this level of Testing,

c) System Testing

In System Testing level a complete and integrated software is tested. The purpose of this test is to evaluate the system’s compliance with the specified software requirements.

Selenium, UFT, RFT (Functional Testing)
LoadRunner, JMeter, RPT (Performance Testing)
SoapUI – Web Services Testing
Appium – Mobile Testing etc…

d) Acceptance Testing

In Acceptance Testing level a software system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with the business requirements

Here, Acceptance basically two types,

1) Internal Acceptance Testing (Alpha Testing): It is conducted by members of the development organization who are not directly involved in the project, Usually, it is the members of Product Management, Sales and/or Customer Support people.

2) External Acceptance Testing / User Acceptance Testing (Beta Testing) is conducted by the end users of the software.

Note: Acceptance Testing environment and System Testing environment almost all same, but Unit Test Environment and integration Test environment are different.


Software Testing Tutorial for Beginners
Follow me on social media: