Categories
General Topic Information Technology Software Testing

Test cycle

Hello and Namaste…………Welcome to yet another post for software testing. In this post, we are going to know about how a typical test cycle functions.

After software requirements are understood and analysed well, developers write code. When development is completed, software developed is released to QA team for testing. A software is released as “build”. Build refers to process in which programs are compiled together to make tangible software component or product so that it can be tested for functional and non functional requirements.

A typical functional test cycle consists of smoke testing,testing change requests, regression testing, ad hoc testing, and retesting if applicable.

Smoke testing : Whenever software build with new features or enhancements or bug fixes is released, build is validated for critical functionality of application . If smoke scenarios aka critical functionality of application is working, then smoke test status is said to be pass and build is accepted for further QA examination. Otherwise if build fails smoke test is fail and build is rejected

Regression testting : In regression testing , software components influenced by new changes or features are tested in detail. Impact area is determined by scope of changes done. If changes done are limited to few components, then only relevant modules are tested otherwise whole system is tested to verify wheather changes done have affected any other functionality

Ad hoc testing : Ad hoc testing validates system in general. End to end scenarios are tetsed across application without focusing on any particular feature or module. Ad hoc testing is preferred if test cycle has limited time and impact of new changes is less

Retesting : Retesting of fixed issues is carried out for any of bug fixed and given for QA verification

Categories
Information Technology Software Testing

Software testing : Approaches and levels

Today I am going to talk about approaches and levels of software testing

Testing aims to examine multiple facets of quality.There are two main approaches to test the software ie. Black box and White box testing

1.Black box testing

Software product is evaluated in the context of business or user requirements using black box testing .

Requirement refers to feature of software with help of which user of system completes certain task. For Ex : Booking a movie ticket

In black box testing, software tester does not have a knowledge of code written(box to be tested is black for tester). He /she tests application based only on functionality expected

For example : Requirement to test is that in movie ticket booking application, user should be able to search movie by name in movie list. Suppose user is on home page where there is search box for movie name and search button ,this scenario can be tested by just entering movie name and clicking search button and verifying movie names displayed as required.

2.White box testing

In white box testing , software tester understands the code written inside program (white box)and tests program with respect to code to target defects inside.

For example : In movie ticket booking application, a code to display movie list should display 10 movies on each page for every category of movie. Count of movies to be displayed can be reviewed by examining code of respective program.

Black box testing is more prevalent in software testing.

Till now , we have seen approaches for software testing. Now let’s see what are levels of testing.

1.Unit testing

In unit testing, individual units of software code are tested to verify it’s functionality. Unit test scripts are generally developed by developers using unit testing frameworks like NUnit, JUnit etc. A simple unit test case calls or simulates unit under test , sends required inputs and asserts actual output against expected output. Unit testing framework has features like reporting, which helps in automating unit test cases effectively.With optimal unit testing , we can achieve optimum code coverage which prevents functional defects.

For example :

Unit test for search movie name

In movie ticket booking application, a class ” Search “is written for Search feature. This class which has some properties and methods. One of the method to search movies is SearchMovieByName

public String SearchMovieByName (String name)

This method is called by another dummy method for ex: CallerMethod which verifies return data

public void CallerMethod() {

Search obj= new Search();

String result = obj. SearchMovieByName (“ClassicMovie”);

String st=” ClassicMovie “;

if(result.Equals(st))

Console.WriteLine(“Matching movie found”);

else

Console.WriteLine(“Matching movie not found”);

}

Search class can be unit tested for various input values for search box and expected movies details to be displayed depending on requirement.

2.Integration testing

Integration testing tests subsystem or system formed when two or more units of software product are coupled. Units so far developed and tested independently , may fail to function as expected when coupled together.

For example : When user makes payment for a selected movie show, program for ticket information is integrated with payment gateway processing program for which, we can test integration

3.System testing

System testing refers to testing application as a whole system. It examines functional requirements and it also verifies non functional aspects of system(For example : Performance, Stress, Accessibility etc). It is generally conducted by independent software testing team.

For example : In movie ticket booking application, end to end testing scenario of ticket selection to payment and ticket confirmation can be considered as system test scenario

4.User acceptance testing

In User acceptance testing (UAT) , the software is tested in the “real world” by the intended audience. UAT is final last phase of the software testing process, before the software is released to real word. In UAT, group of business or end users review system to verify functionality and find issues if any.In case if software follows any contract or regulation guidelines, relevant test scenarios are included in UAT.

Alpha testing and beta testing are also types of UATs. Alpha testing of ready to use software is conducted by in house testers or developers , before it is released to business users. Beta testing takes place at customers’ sites, where a group of customers or end users use the system and report observations and issues , before the system is released to live environment.

In next post we will have at look types of software testing . Keep reading. Keep testing.

Categories
Information Technology Software Testing

Introduction to software testing

Hello folks

In today’s blog post , I am going to tell you about software testing basics.

 What is software testing?

Primary goal of software testing is to find out defects in the context of requirements.

Software testing is a broad spectrum planned activity conducted by Quality Analysis team which includes quality assurance and quality control.

Quality assurance activities seek to prevent buggy code and Quality Control implements actual testing to find out defect.

Software testing is fundamentally using software as end user and finding deviations from what is expected , keeping in mind human perspective of software applications. Finding a bug in an application needs  good analytical abilities, observation, patience and of course a lot of questioning attitude. 😊

What is Defect ?

Defect is error state of software application that results in deviation from expected behaviour.

For example :

A login page has two fields Email and password and login button.

login

If user is able to login by entering wrong password, then this is a defect .

Objectives of software testing :

1.Uncover defects in software product

2.Verify conformance of product features to functional and non functional requirements

3.Undestand risks involved and implement steps to minimize risks

Different test techniques are used to derive feasible number of tests to be conducted as number of possible input and output combinations can be enormous for even simple piece of code

Software Testing Life Cycle

Software testing life cycle has phases phases :

Requirement Analysis βˆ’ In this phase requirements to de developed are examined in detail.

Discussions and clarifications are conducted with respective stakeholders to analyse and document requirements.

Output of this phase can be requirement clarification document.

Test Planning – In this phase, Test Team plans approach of testing , scope of test effort , cost and resource estimates.

Scope of testing identifies implicit and explicit test items with respect to requirement clarification document.

Out of scope test items are also mentioned with respect to requirement being developed. Approach of testing identifies different test techniques to be used.

Test Case Designing – In this phase test scenarios and test cases are derived based on requirement. Test data is also identified for test cases.

Test cases are mapped to use cases or user stories in Requirement Traceblity Matrix to ensure optimum test coverage.

Output of this phase is Test case document

Test Environment Setup – This phase involves setting up a test environment as per hardware and software configurations required to test.

For Ex : Setting up local QA server or preproduction instance depending on phase of testing

Test Execution βˆ’ During this phase, actual testing is carried out as per test cases prepared.

Test results are documented.

Defects are reported using Defect Tracking Tools.

Any fixed defects are also retested.

Test Closure – A consolidated test report is prepared depending on scope of testing effort.

Different test metrics are prepared to evaluate test effort conducted.

For Ex : defect density, number of test cases executed, number of test cases passed.

Hope today’s post helped you understand basics of software testing.

Keep watching  this space for more as we dive deep in an ocean of “software testing”.