Sunday, 15 November 2015

Software Testing Concepts

Testing Definition

  • Checking the functionality of an application based on customer requirements.
  • Testing is also a process of  validation and verification of an application.
  • Process of using the application like a customer with the intention to find bugs or defects.

Need of a Tester when a Developer can test

Developer checks the application by testing only positive scenarios and he does not maintain accuracy as he is overconfident about his code.That is why a test engineer is introduced to test the application as he can test all the possible scenarios and give bugs to the developer to fix them.Developer fixes the bug and give tester to perform testing again until the application is stable or bug free.

Types of Testing

Manual Testing

The testing which is done manually with out using any tools is called manual testing.It is mandatory for any type of application.

Automation Testing 

If the application has to be tested in a repetitive manner,then we go for automation testing.It means checking the software using tools.Different tools available for automation testing are:
QTP,Load Runner, WinRunner, Selenium.

Drawbacks of Manual Testing:
  • Time Consuming, no security and there is a possibility of human error.
Advantages of Automation Testing:
  • Time saving,accuracy is maintained.
  • Ability to execute the same test cases automatically. 


What is SDLC?

It is a step by step procedure to develop a software.It consists of many phases like requirements gathering, feasibility study, design, coding,testing,deployment,maintenance and support.


Following are the different SDLC models available for developing a software.

1.Waterfall model

1.Waterfall Model: It is a basic model of SDLC in which once the requirements are frozen, there will be no modifications allowed.

This model is applied for development of life and mission critical applications.

2.Spiral Model: This model is applied when different software modules are dependent on each other at the time of development. In this model,requirement changes are allowed during the time of development based on customer requirement.Also,Changes are considered based on the type of severity.If the change is minor and does not affect other modules,then the change is implemented in the same cycle.If the change is major and affects other modules, it goes into next iteration.

3.Prototype:  If the customer is not sure about requirement or he does not know about how the application looks like, then a prototype of software is developed by developers.Once, it is approved by the customer, then developer proceeds with the real application development.In this model,customer rejection is very less because a prototype is shown before the actual product is developed. 

4  .V&V:  V&V stands for verification and validation model. In this model, test engineer is hired at initial stages.He reviews documents like CRS, SRS, HLD, LLD and prepares corresponding test documents like UAT, System testing doc, Integration testing doc, Functional testing doc respectively. Therefore, this process is called verification process.After coding, testing activities like white box testing,black box testing and UAT are done.This process is called validation process.

5.Hybrid: Hybrid model is a combination of two models viz. spiral and prototype.

6.Agile: Agile model is an iterative and incremental method of software development. It helps rapid development of software with in less time.Duration of product development in this model is 15 to 30 days. Following are the Agile terminologies that are followed at the time of development. Agile team consists of 7 plus or minus 2 team members which include two developers, two testers, one business analyst or product owner, a scrum master and a software designer.

Daily scrum meeting or stand up meeting is conducted to analyze what was done yesterday, what needs to be done today and what is planned for tomorrow.
Sprint is a unit of time taken to develop a set of requirements. Typically it spans across one to two weeks.
Product Backlog is a set of requirements that are placed according to the priority of development by the product owner or business analyst.

Agile Method involves team with cross skills in which people with different skill sets work together towards the software development.

Advantages of Agile:

  • Requirement changes exist during sprint.
  • Customer involvement is present at every phase of development.
  • Communication gap is minimized between customers and scrum team.

Disadvantages of Agile:

  • More stress on employees due to hectic schedule.
  • If anyone is left during software development, it leads to project failure.

No comments:

Post a Comment

Tweets by @sriramperumalla