An introduction to Software testing

What is Software testing ?

Software testing is the process of making sure that in this machine (powered by Softwares) dominated age all machines are behaving the exact way we want them to. In Verbiage term we can say that The process of verifying a system with the purpose of identifying any errors, gaps versus the actual requirement is called Software testing.

Necessity of Software testing

In my 5 years of career span, I have seen many products owner especially Indians who neglects the Software testing and thinks QA profile is good for nothing as according to them the person who builds can test also.But with changing industry standards software testing is now an integral part of the Software development life cycle.

Following are the points which help us to understand the necessity of Software testing

  • Software testing assures that all the functional requirements have been implemented.
  • It gives confidence about the quality of the final product.
  • It gives assures that application has no errors in the code/
  • Helps to verifies how the end-user can work with the application and ensures that the end product is easy to use.
  • Testing ensures that data of the application is protected from unauthorized access and hacking.
  • Testing confirms that the application is able to perform in all the required conditions and on all supported operating systems or web browsers correctly.

Principles of Software Testing

There are 7 principals of Software testing which are defined as the following

Principle 1: Testing shows the presence of defects

Software Testing reduces the probability of undiscovered defects remaining in the software but even if no defects are found it is not a part of correctness.

Principle 2: Exhaustive Testing is Impossible:

To test entire possible combination, project execution time and cost will rise exponentially. Exhaustive Testing is the principle that is not possible instead we need an optional amount of testing based on the risk assessment of the application.

Principle 3: Early testing

To find defects early, testing activities should be started as early as possible in the software development life cycle and shall be focused on defined objectives.

Principle 4: Defect clustering:

Small number of modules contains most of the defects detected.

Principle 5: Pesticide paradox

Test cases need to be regularly reviewed and revised, adding new and different test cases will help in finding more defects.

Principle 6: Testing is context-dependent:

Testing is done differently in different contexts. Testing effort should be based on what is to be tested. The testing focus will depend on what is more important for that type of application.

Principle 7: Absence–of–errors fallacy:

If the system built is unusable and does not fulfill the user’s needs and expectations then finding and fixing defects does not help.

STLC !!!

All of us has come across this term many time STLC. What is this STLC and how it is connected to our testing.!!!STLC means Software testing life cycle. It is a process of different steps to be executed in a definite sequence to ensure that the quality goals have been met.

Stages of STLC

1. Requirement Gathering Stage: As per the testing point of view, we need to identify testable requirements. Requirement Gathering Activities

  • QA team interact with stakeholders(Client, Business Analyst, Technical Lead etc.) to understand the requirement in detail.
  • Identify types of tests to be performed.
  • Gather details about testing priorities and focus.
  • Identify test environment details to be carried out

2. Test Planning and Control: QA Managers determine effort and cost estimates of the project and would create and finalise a test plan.Test Planning Activities:

  • Type of Testing: System or Functional, UAT, Performance
  • Scope of testing – Features that will be tested, Features out of scope
  • Test Environment: Hardware, Software needed for the Test Environment, Test Data
  • Test Tools Selections and Resources needed for testing
  • Schedule: The dates when each activity will start and complete and dependencies if any
  • Review & Sign-off of test artefacts from Stakeholders – PM, BA, Customer, Development Lead etc.
  • Number of Test Cycles planned
  • Risks – Software Risks, Project risks (Test Environment not ready, unable to procure a license, resource quits) and Prioritization of tests based on risk during a time crunch
  • What to do when deliverables to Testing are delayed
  • Test Control: This is to address what to do when actual progress does not match with the estimates when things go wrong etc.

3. Test Analysis and Design: This STLC stage defines “WHAT” to be tested. We basically identify the test conditions through the requirements document, product risks, and other test bases. The test condition should be traceable back to the requirement.Test Analysis and Design Activities

  • Requirements document, Functional Spec, Design Documents etc. are reviewed and understood in detail and tests are designed.
  • Levels and depth of testing
  • Designing and prioritizing test cases
  • Designing the Test Environment
  • Determining the Test data

4. Test Implementation and Execution: Creation of test cases and execution is main agenda of this stage.Test Implementation and Execution Activities:

  • Test Conditions are transformed into test cases .
  • Developing and prioritizing test cases.
  • Executing test cases (either manually or by using test execution tools) according to the planned sequence . 
  • Logging the outcome of test execution and recording the identities and versions of the software under test .
  • Comparing actual results with expected results

5. Evaluating exit criteria and reporting: Evaluating exit criteria and reporting Activities

  • Checking test logs against the exit criteria specified in test planning .
  • Assessing if more tests are needed or if the exit criteria specified should be changed.
  • Writing a test summary report for stakeholders.

6. Test Closure : Final stage of STLC Test Closure Activities

  • Specified objective or target is achieved by the team .
  • Maintenance and required changes are needed to be done .
  • Lessons learned when testing is completed and documented.

Please tell us about your Software testing knowledge before-and-after reading. I bet you’ll have something to say!!!


Happy Learning 🙂

19 Responses

  1. Sakshi Danwar says:

    Helpful👍

  2. Mannu says:

    Very helpful, Thank you… 🙏

  3. Mannu says:

    Very helpful, Thank you 🙏

  4. Kumar Utkarsh says:

    Thanks for sharing..very informative 😊

  5. Rishabh says:

    Very informative

  1. May 29, 2020

    […] Software testing many time we come across a term “CRUD tesing”, Many freshers and newly appointed QA get […]

  2. June 5, 2020

    […] profile in IT market, It is a software product and if the software product is there than the software testing is also there, Today in this blog we will learn about Salesforce […]

  3. June 9, 2020

    […] and face difficulty to understand the difference between these two. Both of these are a type of software testing. In this blog, we are going to understand the basic difference between these two types of […]

  4. June 10, 2020

    […] our previous blog we read about basic of Software testing. Today we will cover the types of functional software testing we mainly use in our SDLC and […]

  5. June 15, 2020

    […] Software testing we have a separate life cycle called STLC, You can read about STLC […]

  6. June 16, 2020

    […] this blog, I will discuss STLC and its different phases. Software Testing Life Cycle is the process of different steps to be executed in a definite sequence to ensure that the quality […]

  7. June 26, 2020

    […] a QA we came across many different terminologies in software testing, and many QA aspirants get confused with these terms. Benefits of using standardized testing […]

  8. June 30, 2020

    […] Software testing is divided into two parts Functional and Non-functional testing. Today in this blog, I will cover […]

  9. July 2, 2020

    […] today”s blog we will learn about the curtain-raiser (Unit-level testing) of testing in software testing life cycle (STLC). Let’s […]

  10. July 7, 2020

    […] the software without knowing the internal working of the software. It is a sort of software testing. It is used to verify the functionality of software/product without much having knowledge about […]

Leave a Reply

%d bloggers like this: