Showing posts with label Software Testing. Show all posts
Showing posts with label Software Testing. Show all posts

Sunday, 15 November 2015

Roles and Responsibilities of QA Lead

A test lead is most commonly responsible for the following activities:
#1. He must be able to identify how his test teams aligns within an organization and how his team would achieve the roadmap identified for the project and hence organization.
#2. He has to identify the scope of the testing required for a particular release based on the requirements document.
#3. Put out the test plan after discussions with the test team and have it reviewed and approved by the management/ development team.
#4. Identifying the required metrics and work to have them in place. These metrics could be an inherent goal for the test team as well as what is being testing.
#5. Identifying the needed testing effort by calculating the sizing needed for the given release and plan the effort needed for the same.
#6. Figure out what skills are needed and balance the test resources accordingly with those needs based on their own interests as well. Also identify if there are skill gaps and plan training and education sessions for the identified test resources.
#7. Identify the tools for test reporting, test management, test automation, etc. and educate the team as required to be able to use those tools. Again, plan knowledge transfer sessions in case required for team members for the tools they would use.
#8. Retaining skilled resources by instilling leadership in them and provide guidance to junior resources as and where needed which would help them to grow.
#9. Create a fun and conducive environment for all resources to make sure they have maximum throughput.
Manage the test teams effectively by:
#1. Initiate the test planning activities for test case design and encourage the team to hold review meetings, ensure the review comments are incorporated.
#2. During the testing cycle monitor the test progress by constantly assessing the work assignment to each of the resources and re-balance or re-allocate them as required.
#3. Check if there might be any delays in achieving the schedule and hold discussions with testers to figure out the issues they may be facing and strive to resolve them.
#4. Hold meetings within the test team to make sure everyone is aware of what the fellow team members are doing.
#5. Present the timely status to the stakeholders and management and instill confidence about the work being done.
#6. Prepare any risk mitigation plans in case there are any delays are foreseen.
#7. Bridge any gaps and differences between the testing team and the management and form a clean two way interface channel.


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. 

SDLC

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.

Reference: www.guru99.com  

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


1.Waterfall model
2.Spiral
3.Prototype
4.V&V
5.Hybrid
6.Agile


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.


Tweets by @sriramperumalla