test estimation challenges

Upload: rushi97231

Post on 14-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/27/2019 Test Estimation Challenges

    1/5

    Test Estimation Challenges

    1. Successful test estimation is a challenge for most organizations coza. No standard Formulae/Methods for Test Estimation

    b. Test Effort Estimates also includes the Debugging Effortc. Difficult to attempt testing estimates without first having detailed information about a

    project

    d. Software Testing Myth that Testing can be performed at the Ende. Difficult to attempt testing estimates without an understanding of what should be

    included in a 'testing' estimation for a project (functional testing? unit testing? reviews?

    inspections? load testing? security testing?)

    Traditional Practices

    1. Current Test Planning Methods include

    a. Using Percentage of Development Efforti. Depends on the accuracy of the Development Effort

    ii. Does not account revisit of Development Effortb. Using Tester Developer Ratio

    i. May not be same for all types of Projects

    ii. Does not consider the size of the Projectc. Using KLOC

    i. Does not consider Complexity, Criticality & Priority of the Project

    Whats the Best Approach to Test Estimation

    There is no simple answer for this. The 'best approach' is highly dependent on theparticular organization and project and the experience of the personnel involved.

    For example, given two software projects of similar complexity and size, the appropriate

    test effort for one project might be very large if it was for life-critical medical equipmentsoftware, but might be much smaller for the other project if it was for a low-cost

    computer game. A test estimation approach that only considered size and complexity

    might be appropriate for one project but not for the other.

    Approaches to Test Estimation

    Implicit Risk Context Approach:

    Metrics-Based Approach:

    Test Work Breakdown Approach:

    Iterative Approach:

  • 7/27/2019 Test Estimation Challenges

    2/5

    Percentage-of-Development Approach:

    Test Estimation Process A Practical Approach

    1. Combination of all the Approaches

    2. Considers Risk & Complexity Factors3. Based on Previous History i.e. Organization or Project Metrics

    4. Based on Work Breakdown Structure

    5. Based on Iterative Model

    Elements of Test Estimation Process

    1. Break sizing into smaller, easier to estimate tasksa. Decompose the test project into phases.

    i. System Test

    ii. Unit Test

    b. Decompose each phase into constituent activitiesi. System Test Planning

    ii. Test Executionc. .Decompose each activity into tasks and subtasks until each task or subtask at the

    lowest level of composition

    i. Executing a test scenarioii. Writing a defect

    2. Taking risk priority into account

    3. Set up dependencies

    a. Dependent tasks internal to the test subproject.b. Document dependencies, resources, and tasks external to the test subproject (i.e.,

    those that involve collaborative processes)

    1. Consider type of code (complex, reused, etc.)

    2. Augment professional judgment and gut instinct with previous project data, industry

    metrics, and so forth.3. Identify and, if possible, resolve discrepancies between the test subproject schedule

    and the project schedule.

    4. Use the work-breakdown-structure and schedule to develop a budget. Extract from

    your work-breakdown-structure a complete list of resources. For each resource,determine the first and last day of assignment to the project.

    5. If you have resources shared across multiple test projects within a given time period,

    understand the percentage allocation of each resources assignment to each project duringvarious time periods.

    6. Revisit the Estimation continuously in order to reflect any change in the Project

    Requirements or Schedule7. Be Repeatable preferably Automat able

    A Sample Estimation Process

  • 7/27/2019 Test Estimation Challenges

    3/5

    Total work = Test case time + Defect time

    Test Case Time = Test Case Development time + Test Case Execution Time

    Defect Time = (Hours/Defect * # Defects)

    Note: Consider the defect severities while arriving at Hours/Defect and also that

    Hours/Defect should take into account the Defect creation time, Debugging time and

    Defect Retesting time till the closure.

    Test Case Time

    Test Case Development Time = (Hours/Test case development* #Test cases)Test Case Execution Time = (Hours/Test case Execution * #Test Cases)

    Note: Consider the Risk, Complexity while arriving at the Hours/Test case Development

    and Hours/Test case Execution

    Software Test Estimation - 9 General Tips on How to Estimate Testing Time Accurately

    Posted In | Testing Life cycle, Test strategy

    This is a guest article by Author N. Sandhya Rani.

    For success of any project test estimation and proper execution is equally important as thedevelopment cycle. Sticking to the estimation is very important to build good reputation

    with the client.

    Experience play major role in estimating software testing efforts. Working on varied

    projects helps to prepare an accurate estimation for the testing cycle. Obviously one

    cannot just blindly put some number of days for any testing task. Test estimation should

    be realistic and accurate.

    In this article I am trying to put some points in a very simple manner, which are helpful

    to prepare good test estimations. I am not going to discuss the standard methods for testestimations like testing metrics, instead I am putting some tips on - How to estimate

    testing efforts for any testing task, which I learned from my experience.

    Factors Affecting Software Test Estimation, and General Tips to Estimate Accurately:

    1) Think of Some Buffer Time

  • 7/27/2019 Test Estimation Challenges

    4/5

    The estimation should include some buffer. But do not add a buffer, which is not realistic.

    Having a buffer in the estimation enables to cope for any delays that may occur. Having a

    buffer also helps to ensure maximum test coverage.

    2) Consider the Bug Cycle

    The test estimation also includes the bug cycle. The actual test cycle may take more daysthan estimated. To avoid this, we should consider the fact that test cycle depends on the

    stability of the build. If the build is not stable, then developers may need more time to fix

    and obviously the testing cycle gets extended automatically.

    3) Availability of All the Resources for Estimated Period

    The test estimation should consider all the leaves planned by the team members (typically

    long leaves) in the next few weeks or next few months. This will ensure that theestimations are realistic. The estimation should consider some fixed number of resources

    for test cycle. If the number of resources reduces then the estimation should be re-visited

    and updated accordingly.

    4) Can We Do Parallel Testing?

    Do you have some previous versions of same product so that you can compare theoutput? If yes, then this can make your testing task bit easier. You should think the

    estimation based on your product version.

    5) Estimations Can Go Wrong - So re-visit the estimations frequently in initial stages

    before you commit it.

    In early stages, we should frequently re-visit the test estimations and make modification

    if needed. We should not extend the estimation once we freeze it, unless there are majorchanges in requirement.

    6) Think of Your Past Experience to Make Judgments!Experiences from past projects play a vital role while preparing the time estimates. We

    can try to avoid all the difficulties or issues that were faced in past projects. We can

    analyze how the previous estimates were and how much they helped to deliver product ontime.

    7) Consider the Scope of Project

    Know what is the end objective of the project and list of all final deliverables. Factors tobe considered for small and large projects differ a lot. Large project, typically include

    setting up test bed, generating test data, test scripts etc. Hence the estimations should be

    based on all these factors. Whereas in small projects, typically the test cycle include testcases writing, execution and regression.

    8 ) Are You Going to Perform Load Testing?If you need to put considerable time on performance testing then estimate accordingly.

    Estimations for projects, which involve load testing, should be considered differently.

    9) Do You Know Your Team?

  • 7/27/2019 Test Estimation Challenges

    5/5

    If you know strengths and weaknesses of individuals working in your team then you can

    estimate testing tasks more precisely. While estimating one should consider the fact that

    all resources may not yield same productivity level. Some people can execute fastercompared to others. Though this is not a major factor but it adds up to the total delay in

    deliverables.

    And finally tip number 10.

    Over To You!

    This test estimation tip is purposefully left blank so that you can comment your bestestimation techniques in below comment section.