Monday, March 8, 2010

Qualities for a Software Tester Part - 1

Here I have compiled some of the qualities required for a software tester. (Part 1)

A. QA Concepts
1. Requirement Analysis
Beginner- Ability to analyze business requirement and understand it
Intermediate - Ability to analyze the Business requirement and derive test requirements
Expert - Ability to seek further information to fill up the gaps.Ability to understand the business objectives

2. Test Strategy
Beginner - Ability to understand and adhere to test strategy while testing
Intermediate - Ability to understand the Test Strategy and the objective behind itAbility to give some inputs towards test strategy derivation
Expert - Ability to write Test Strategy

3. Test Planning
Beginner - Ability to understand the Test Plan and work accordingly
Intermediate - Ability to fill up few sections in the Test PlanAbility to derive Test Plan using past project data
Expert - Ability to write Test Plan without any heuristic data

4. Test Scenario
Beginner - Ability to understand the Test scenario and derive test cases
Ability to document the Test Scenario if the Test Scenario has been described orally
Intermediate - Ability to derive test scenario from Use case/Business requirement
Expert - Ability to derive test scenarios with max coverage of the featuresSupport, guide and provide directions to the testing team to generate quality test case documents

5. Test Case
Beginner -
Ability to write test cases from Test Scenario/Use Cases
Ability to follow written instructions to execute test cases on specific areas of product functionality and check outcomes against expected results
Intermediate -
Ability to write test cases with complete details and aligned with Test strategyAbility to prioritize the test casesAbility to create test cases for various features/modules of the product
Expert -
Ability to write test cases including many aspects of the feature which can produce more bugs
Ability to optimize the test cases numberAbility to identify the areas which need more test coverage
Ability to write test cases in line with a specification to test a piece of functionality, identify and investigate ambiguities in tests and gain agreement from Product management team on proposed solutions
Support, guide and provide directions to the testing team to generate quality test case documents

6. Review Test Scenario/Test Case
Beginner - Ability to review individual test case/test scenario
Intermediate - Ability to review test cases/test scenarios from the feature/module coverage perspective
Expert - Ability to review test cases/test scenarios from Product and Domian knowledge perspectiveAbility to ensure proper reviews are done on the documents from the team

7. Traceability and Test Coverage
Beginner - Ability to map Req to TC with guidance
Intermediate - Ability to map Req to TC and derive reports
Expert -
Ability to map Req to TC and find out the gaps and identify the weak areas for coverage
Ability to ensure that the test cases have optimal coverage on the requirements – perform a test coverage analysis

8. Doc Review
Beginner - Ability to review the application flow of the user guide
Intermediate - Ability of reviewing technical and user documentation
Expert - Ability to review from the end user perspective

9. Defect raising and Defect Tracking
Beginner -
Ability to identify a defect
Ability to find defect
Ability to replicate a defect
Ability to report the defect clearly
Ability to validate a defect
Intermediate -
Ability to prepare bug report
Ability to identify a blocker defect
Ability to attend bug review meetings
Expert -
Ability to participate in bug scrub
Ability to utilize the analytical skills in determining the root cause of problems
Ability to analyze the bug reports for decision making
Ability to analyse the likely cause of and trends-in in defects during testing to identify problem areas, reduce errors and to suggest further improvements in the software development process.

10. Diff kind of testing(Functional, Regression, Smoke, Sanity, Integration, Performance, Load, User Interface, Database, Security, BlackBox and WhiteBox testing)
Beginner -
Should have basic knowledge of diff kind of testing
Ability to execute planned testing tasks with guidance
Ability to report test result
Intermediate -
Ability to execute various kind of testing
Ability to monitor test execution keeping the deadline in mind
Expert -
Ability of execution of test cases to test a complex application or component
Ability to prioritize the test cases while executing
Ability to guide others on testing concepts

11. Test Env Setup
Beginner -
Ability to set up the test env with guidanceAbility to deploy the build
Intermediate -
Ability to setup Test Env with minimal guidanceAbility to troubleshoot on own and identify the problem
Expert -
Ability to setup Test Env from scratch
Ability to derive the Test Env creation req.
Ability to identifying hardware and operating system requirements from functional specifications

B. Test Management
1. Scope of work, Scope of Deliverables
Beginner - Ability to understand the scope of work
Intermediate -
Ability to negotiate with for SOWAbility to derive the deliverables
Expert -
Ability to cope with changing requirements
Ability to adapt to the changing needs of a project
Ability to handling out-of-scope request

2. Test Effort Estimation, Task identification, Scheduling, Resource Allocation/Identification, Setting Milestone
Beginner -
Ability to come up with Test effort estimation with prior project data
Intermediate -
Ability to allocate work to the team based on the expertise
Able to prioritise and work within tight time scales in order to meet deadlines
Expert -
Ability to come up with effort estimation without prior project data
Ability to transfer estimation to scheduleUsing MS Project to create and track test schedules Ability to identify the resource need and the associated skill
Ability of timely delivery of different testing milestones.

3. Tracking progress
Beginner -
Basic knowledge of tracking tool
Intermediate -
Ability to track deliverables against plan (using Microsoft Project/version one) through observations, weekly meetings, reports
Expert -
Ability to review project plans and determine short and medium-term work plans

4. Issue Tracker, Risk and Mitigation
Beginner -
Ability to identify the risk related to own task
Knowledge of escalation methodAbility to timely escalation of issues
Intermediate -
Ability to communicate the issues faced effectively.Ability to perform risk analysis when required
Expert -
Escalate the issues about project requirements (Software, Hardware, Resources) to higher management.
Ability to identify the risks across test phases

5. Applying corrective action
Beginner -
Ability to understand the feedback mechanism/review mechanism in place and act accordingly
Intermediate -
Ability to ensure proper review and feedback mechanism is in place
Expert -
Ability to meet deadlines by constantly applying corrective action.Ability to take ownership, planning and driving of projects from inception to completion
6. Test metrics, Test Reporting/Status report, Test Closure - exit of project, Conducting Post mortem
Beginner -
Basic knowledge of tracking tool
Ability to produce reports, and collate reports from other testers
Ability to derive the metrics
Intermediate -
Ability to track overall progress
Ability to derive the applicability of metrics that can be extracted and that can be define, measure, and track quality goals for the project
Expert -
Ability to find gaps in coverage, opportunities and risks
Ability to make efficiency improvements and reliably manage projects
Ability to communicate the state of software; what has been successfully tested, what has not passed, what hasn't been tested at all (this can be due to time constraints, functionality unavailability etc)
Ability to say "no" when quality is not acceptable for release, supported by facts
Ability to provide weekly status reports, and plan own time and that of other testers to ensure completion of objectives so that the schedule is delivered to specified project timescales
Ability to prepares / updates the metrics dashboard at the end of a phase or at the completion of project.
Ability to conduct post mortem meeting and take feedback to turn into action items at the post mortem meeting

7. Resource Utilization, Team development, Developing backup resource, Training need
Beginner -
Ability to organize brainstorm sessions on a regular basis
Ability to explain any decision taken so that the team get the ideas behind that led to that decision
Ability to continuous monitoring and mentoring of Testing team members
Ability to coach other Test Engineers on any technical issues within own area of understanding
Intermediate -
Ability to adopt the best practises
Ability to organize trainings (external as well as internal)
Ability to work in group to share competencies
Ability to mentor and prepare induction plans for new members joining the team
Ability to provide direction to the team member.
Expert -
Ability to discuss with QA engineers and help them to derive the idea instead of exposing directly the idea
Ability to look forward to the products in development and planned for development, to foresee what new expertise and training is needed by the group
Ability to hire people based on current and future testing needs
Ability to assign task to all Testing Team members and ensure that all of them have sufficient work in the project.

8. Team Building
Beginner -
Ability to promote cooperation between Software and Test/QA Engineers,
Ability to run meetings and keep them focused
Intermediate -
Assign roles and responsibilities to test team members
Expert -
Ability to build a testing team of professionals with appropriate skills, attitudes and motivation
Ability to maintain enthusiasm of their team and promote a positive atmosphere;
Ability to promote teamwork to increase productivity;

9. Knowledge of configuration management - build, branching, development process, scope of using any tool for effectiveness, Building knowledge management
Beginner -
Basic Knowledge of CM procedures
Basic knowledge of the software development process
Intermediate -
Ability to take decision to procure Software Testing tools for the organization
Ability in leveraging capabilities and efficiently using third party tools to optimize the environment for testing
Expert -
Ability to conduct studies on various testing methodologies and tools and provide recommendations on the same
Ability to ensure the content and structure of all Testing documents / artifacts is documented and maintained.

10. Implementing test process
Beginner -
Ability to adherence to the company's Quality processes and procedures
Intermediate -
Ability to ensure effective test process improvement feedback by providing information back to process improvement groups
Ability to promote improvements in QA processes
Expert -
Ability to identify and implement process improvements for test efficiency
Ability to document, implement, monitor, and enforce all processes for testing as per standards defined by the organization.

11. Recruitment
Beginner -
Basic judgment skills to hire the right people
Intermediate -
Basic judgment skills to hire the right people
Expert -
Support the recruitment team for interviews

In Part 2 , I will cover on Domain knowledge, Product knowledge, Automation, Tools and Technology and Communication.

5 comments:

  1. Hi Mr Krishna,

    Your Blog is giving a good clarity over QA processes. I am very thankful to that. Many of the experienced QA's will try to hide their knowledge. But you are doing a great help to the others by providing a very useful content.

    ReplyDelete
  2. Great Post!
    Thanks a lot for sharing!
    I found this blog to be very useful!!
    Software testing training in Bangalore

    ReplyDelete
  3. I must thank you for the efforts you have put in penning this site. I am hoping to check out the same high-grade content by you later on as well. Keep up the good work
    software testing services
    software testing companies
    Security testing services
    Test automation services

    ReplyDelete
  4. Thank you for sharing this! I always appreciate coming across such high-quality content filled with valuable insights. The ideas put forth here are truly exceptional and captivating, making the post an absolute delight to read. Please continue to do the outstanding work you're doing.
    visit: Building Web Applications with Python: Flask and Django Explained

    ReplyDelete
  5. Thank you for providing this valuable content. I genuinely appreciate engaging with such exceptional material, enriched with valuable insights. The ideas presented are outstanding and thought-provoking, making the post exceptionally enjoyable. Please continue delivering such fantastic work.
    Also Read-Exploratory Testing in Agile: Uncovering Hidden Bugs

    ReplyDelete