bug testing

Upload: ashish-gupta

Post on 14-Apr-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/27/2019 Bug Testing

    1/64

    Defect Life Cycle (Bug Life cycle) is the journey of a defect from itsidentification to its closure. The Life Cycle varies from organization to

    organization and is governed by the software testing process the Uorganization

    or project follows and/or the Defect tracking tool being Used.

    Status Alternative Status

    NEW

    ASSIGNED OPEN

    DEFERRED

    DROPPED REJECTED

    COMPLETED FIXED, RESOLVED, TEST

    REASSIGNED REOPENED

    CLOSED VERIFIEDDefect Status Explanation

    NEW: Tester finds a defect and posts it with the status NEW. This defect isyet to be studied/approved. The fate of a NEW defect is one of ASSIGNED,DROPPED and DEFERRED.

    ASSIGNED / OPEN: Test / Development / Project lead studies the NEWdefect and if it is found to be valid it is assigned to a member of theDevelopment Team. The assigned Developers responsibility is now to fixthe defect and have it COMPLETED. Sometimes, ASSIGNED and OPEN

    can be different statuses. In that case, a defect can be open yet unassigned.DEFERRED: If a valid NEW or ASSIGNED defect is decided to be fixed in

    upcoming releases instead of the current release it is DEFERRED. Thisdefect is ASSIGNED when the time comes.

    DROPPED / REJECTED: Test / Development/ Project lead studies theNEW defect and if it is found to be invalid, it is DROPPED / REJECTED.Note that the specific reason for this action needs to be given.COMPLETED / FIXED / RESOLVED / TEST: Developer fixes the defect

    that is ASSIGNED to him or her. Now, the fixed defect needs to be

    verified by the Test Team and the Development Team assigns the defectback to the Test Team. A COMPLETED defect is either CLOSED, if fine, orREASSIGNED, if still not fine.

    If a Developer cannot fix a defect, some organizations may offer thefollowing statuses:Wont Fix / Cant Fix: The Developer will not or cannot fix the defect

    due to some reason.

  • 7/27/2019 Bug Testing

    2/64

    Cant Reproduce: The Developer is unable to reproduce the defect.Need More Information: The Developer needs more information on

    the defect from the Tester.REASSIGNED / REOPENED: If the Tester finds that the fixed defect is in

    fact not fixed or only partially fixed, it is reassigned to the Developer whofixed it. A REASSIGNED defect needs to be COMPLETED again.

    CLOSED / VERIFIED: If the Tester / Test Lead finds that the defect isindeed fixed and is no more of any concern, it is CLOSED / VERIFIED.This is the happy ending.

    Defect Life Cycle Implementation Guidelines-

    Make sure the entire team understands what each defect status exactlymeans. Also, make sure the defect life cycle is documented.

    Ensure that each individual clearly understands his/her responsibility as

    regards each defect.Ensure that enough detail is entered in each status change. For example, do

    not simply DROP a defect but provide a reason for doing so.If a defect tracking tool is being used, avoid entertaining any defect related

    requests without an appropriate change in the status of the defect in the tool.Do not let anybody take shortcuts. Or else, you will never be able to get up-to-date defect metrics for analysis.

    The duration or time span between the first time that the bug is found is called

    'New' and closed successfully (status: 'Closed'), rejected, postponed or deferred iscalled 'Bug/Error Life Cycle'.

    Right from the first time any bug is detected till the point when the bug is fixed andclosed, it is assigned various statuses which are New, Open, Postpone, PendingRetest, Retest, Pending Reject, Reject, Deferred, and Closed.

    There are seven different life cycles that a bug can pass through:

    Cycle I

    A tester finds a bug and reports it to the Test Lead.The test lead verifies if the bug is valid or not.Test lead finds that the bug is not valid and the bug is 'Rejected'.

    Cycle II

  • 7/27/2019 Bug Testing

    3/64

    A tester finds a bug and reports it to the Test Lead.The test lead verifies if the bug is valid or not.The bug is verified and reported to the development team with status as 'New'.The development leader and team verify if it is a valid bug. The bug is invalid andis marked with a status of 'Pending Reject' before passing it back to the testingteam.After getting a satisfactory reply from the development side, the test leader marksthe bug as 'Rejected'.

    Cycle III

    A tester finds a bug and reports it to the Test Lead.The test lead verifies if the bug is valid or not.The bug is verified and reported to the development team with status as 'New'.

    The development leader and team verify if it is a valid bug. The bug is valid andthe development leader assigns a developer to it, marking the status as 'Assigned'.The developer solves the problem and marks the bug as 'Fixed' and passes it backto the Development leader.The development leader changes the status of the bug to 'Pending Retest' andpasses it on to the testing team for retest.The test leader changes the status of the bug to 'Retest' and passes it to a tester forretest.The tester retests the bug and if it is working fine, the tester closes the bug and

    marks it as 'Closed'.

    Cycle IV

    A tester finds a bug and reports it to the Test Lead.The test lead verifies if the bug is valid or not.The bug is verified and reported to the development team with status as 'New'.The development leader and team verify if it is a valid bug. If the bug is valid, thedevelopment leader assigns a developer for it, marking the status as 'Assigned'.The developer solves the problem and marks the bug as 'Fixed' and passes it back

    to the Development leader.The development leader changes the status of the bug to 'Pending Retest' andpasses it on to the testing team for retest.The test leader changes the status of the bug to 'Retest' and passes it to a tester forretest.The tester retests the bug and the same problem persists, so the tester afterconfirmation from test leader reopens the bug and marks it with a 'Reopen' status.

  • 7/27/2019 Bug Testing

    4/64

    And then, the bug is passed back to the development team for fixing.

    Cycle V

    A tester finds a bug and reports it to the Test Lead.The test lead verifies if the bug is valid or not.The bug is verified and reported to the development team with status as 'New'.The developer tries to verify if the bug is valid but fails to replicate the samescenario as it was at the time of testing, and asks for help from the testing team.The tester also fails to regenerate the scenario in which the bug was found. Andfinally, the developer rejects the bug marking it as 'Rejected'.

    Cycle VI

    After confirmation that the data is unavailable or certain functionality isunavailable, the solution and retest of the bug is postponed for indefinite time andit is marked as 'Postponed'.

    Cycle VII

    If the bug does not stand importance and needs to be postponed, then it is given astatus as 'Deferred'.This was about the various life cycles that a bug goes through in software testing.

    And in the ways mentioned above, any bug that is found ends up with a status ofClosed, Rejected, Deferred or Postponed.

    Question- What are stage in a Bug Life Cycle

  • 7/27/2019 Bug Testing

    5/64

    Answer1.New-when tester finds the defect 1sttime it will be innew status.

    2.Open-when the TL finds it to begenuine defect/bug then hemakes it as open status.

    3.Assign-the TL assign the bug to thedeveloper to fix it ifhe finds it to be genuine he ll fix it.

    4.Test-after fixing the bug it is sent to

    tester to doregression & retesting of thatfixed/changed module.

    5.verified-after testing it is been verifiedto no if anybug still there.

    6.Reject-if the developer think bug is not

    genuine and noteffecting the application then he willreject it.

    7.Differed-if the bug is found and fixedin next release ifseverity and priority is low /because ofless time then itturn out to be differed status.

    8.duplicate-if same bug's r found then itis made as duplicate.

    9.Closed-when the bug is fixed andtested if no further bugis foung then it given as closed status

  • 7/27/2019 Bug Testing

    6/64

    Answer-

    1-NEW- Whenever the defect is newly identified for the first

    time then the testengineer will set the status as new.

    2-OPEN-Whenever the developer accepts the defect then he willset the status as open.

    3-FIXED- whenever the developer rectifies the defect beforereleasing the next build he will set the status fixed.

    4-CLOSED-Whenever the next build is released the testers willcheck whether the defects are properly rectified or not.if at all they feel defect

    is properly rectified thenthey set status as close.

    5-REOPEN- once the next build is released the testers willcheck whether the defect is properly rectified ornot.if at all they feel derct is not rectifiedproperly then they will set status as reopen.

    6-HOLD- Whenever the developer is confused to accept or reject

    the defect then he will set the status as hold.

    7-REJECT- whenever the developer feels it is not at all adefect then he will set status as reject.

    8-ASPERDESIGN- Whenever the developer feels the tester hasraised the defect without knowing the latestrequirements then he will set the status asasperdesing.

    9-DEFFERED- Whenever the defect is accepted by the developerand he requires some extra time to rectify thatdefect then he will set the status as deffered.

  • 7/27/2019 Bug Testing

    7/64

    STLC consists of six (generic) phases:

    Test Planning, Test Analysis, Test Design,

    Construction and verification, Testing Cycles, Final Testing and Implementation and Post Implementation.

    Test PlanningThis is the phase where Project Manager has to decide whatthings need to be tested, do I have the appropriate budgetetc. Naturally proper planning at this stage would greatlyreduce the risk of low quality software. This planning will

    be an ongoing process with no end point.Activities at this stage would include preparation of highlevel test plan-(according to IEEE test plan template TheSoftware Test Plan (STP) is designed to prescribe thescope, approach, resources, and schedule of all testingactivities. The plan must identify the items to be tested,the features to be tested, the types of testing to beperformed, the personnel responsible for testing, theresources and schedule required to complete testing, and

    the risks associated with the plan.). Almost all of theactivities done during this stage are included in thissoftware test plan and revolve around a test plan.Test AnalysisOnce test plan is made and decided upon, next step is todelve little more into the project and decide what types oftesting should be carried out at different stages of SDLC,do we need or plan to automate, if yes then when theappropriate time to automate is, what type of specificdocumentation I need for testing.

    Proper and regular meetings should be held between testingteams, project managers, development teams, BusinessAnalysts to check the progress of things which will give afair idea of the movement of the project and ensure thecompleteness of the test plan created in the planningphase, which will further help in enhancing the righttesting strategy created earlier. We will start creating

  • 7/27/2019 Bug Testing

    8/64

    test case formats and test cases itself. In this stage weneed to develop Functional validation matrix based onBusiness Requirements to ensure that all systemrequirements are covered by one or more test cases,identify which test cases to automate, begin review ofdocumentation, i.e. Functional Design, BusinessRequirements, Product Specifications, Product Externalsetc. We also have to define areas for Stress andPerformance testing.Test Design

    Test plans and cases which were developed in the analysisphase are revised. Functional validation matrix is alsorevised and finalized. In this stage risk assessmentcriteria is developed. If you have thought of automation

    then you have to select which test cases to automate andbegin writing scripts for them. Test data is prepared.Standards for unit testing and pass / fail criteria aredefined here. Schedule for testing is revised (ifnecessary) & finalized and test environment is prepared.Construction and verificationIn this phase we have to complete all the test plans, testcases, complete the scripting of the automated test cases,Stress and Performance testing plans needs to be completed.

    We have to support the development team in their unittesting phase. And obviously bug reporting would be done aswhen the bugs are found. Integration tests are performedand errors (if any) are reported.Testing CyclesIn this phase we have to complete testing cycles until testcases are executed without errors or a predefined conditionis reached. Run test cases --> Report Bugs --> revise testcases (if needed) --> add new test cases (if needed) -->bug fixing --> retesting (test cycle 2, test cycle 3.).

    Final Testing and ImplementationIn this we have to execute remaining stress and performancetest cases, documentation for testing is completed /updated, provide and complete different matrices fortesting. Acceptance, load and recovery testing will also beconducted and the application needs to be verified underproduction conditions.

  • 7/27/2019 Bug Testing

    9/64

    Currently role is performing Specialty based testing (i.e.)FUNCTIONALITY TESTING.Post ImplementationIn this phase, the testing process is evaluated and lessonslearnt from that testing process are documented. Line ofattack to prevent similar problems in future projects isidentified. Create plans to improve the processes. Therecording of new errors and enhancements is an ongoingprocess. Cleaning up of test environment is done and testmachines are restored to base lines in this stage.

    Bug Life Cycle & Guidelines

    In this tutorial you will learn about Bug Life Cycle & Guidelines, Introduction,Bug Life Cycle, The different states of a bug, Description of Various Stages,Guidelines on deciding the Severity of Bug, A sample guideline for assignment ofPriority Levels during the product test phase and Guidelines on writing BugDescription.

    Introduction:

    Bug can be defined as the abnormal behavior of the software . No software existswithout a bug. The elimination of bugs from the software depends upon theefficiency of testing done on the software. A bug is a specific concern about the

    quality of the Application under Test (AUT).

    Bug Life Cycle:

    In software development process, the bug has a life cycle. The bug should gothrough the life cycle to be closed. A specific life cycle ensures that the process isstandardized. The bug attains different states in the life cycle. The life cycle of thebug can be shown diagrammatically as follows:

    The different states of a bug can be summarized as follows:

    1. New2. Open3. Assign4. Test5. Verified6. Deferred

    Theimagecan

  • 7/27/2019 Bug Testing

    10/64

    7. Reopened8. Duplicate9. Rejected and10. Closed

    Description of Various Stages:

    1. New: When the bug is posted for the first time, its state will be NEW. Thismeans that the bug is not yet approved.

    2. Open: After a tester has posted a bug, the lead of the tester approves that thebug is genuine and he changes the state as OPEN.

    3. Assign: Once the lead changes the state as OPEN, he assigns the bug tocorresponding developer or developer team. The state of the bug now is changed toASSIGN.

    4. Test: Once the developer fixes the bug, he has to assign the bug to the testingteam for next round of testing. Before he releases the software with bug fixed, hechanges the state of bug to TEST. It specifies that the bug has been fixed and isreleased to testing team.

    5. Deferred: The bug, changed to deferred state means the bug is expected to befixed in next releases. The reasons for changing the bug to this state have manyfactors. Some of them are priority of the bug may be low, lack of time for therelease or the bug may not have major effect on the software.

    6. Rejected: If the developer feels that the bug is not genuine, he rejects the bug.Then the state of the bug is changed to REJECTED.

    7. Duplicate: If the bug is repeated twice or the two bugs mention the sameconcept of the bug, then one bug status is changed to DUPLICATE.

    8. Verified: Once the bug is fixed and the status is changed to TEST, the testertests the bug. If the bug is not present in the software, he approves that the bug isfixed and changes the status to VERIFIED.

    9. Reopened: If the bug still exists even after the bug is fixed by the developer, thetester changes the status to REOPENED. The bug traverses the life cycle once

    again.

    10. Closed: Once the bug is fixed, it is tested by the tester. If the tester feels thatthe bug no longer exists in the software, he changes the status of the bug toCLOSED. This state means that the bug is fixed, tested and approved.

    While defect prevention is much more effective and efficient in reducing thenumber of defects, most organization conducts defect discovery and removal.

  • 7/27/2019 Bug Testing

    11/64

    Discovering and removing defects is an expensive and inefficient process. It ismuch more efficient for an organization to conduct activities that prevent defects.

    Guidelines on deciding the Severity of Bug:

    Indicate the impact each defect has on testing efforts or users and administratorsof the application under test. This information is used by developers andmanagement as the basis for assigning priority of work on defects.

    A sample guideline for assignment of Priority Levels during the product test phaseincludes:

    1. Critical / Show Stopper An item that prevents further testing of theproduct or function under test can be classified as Critical Bug. Noworkaround is possible for such bugs. Examples of this include a missingmenu option or security permission required to access a function under test.

    .2. Major / High A defect that does not function as expected/designed or

    cause other functionality to fail to meet requirements can be classified asMajor Bug. The workaround can be provided for such bugs. Examples ofthis include inaccurate calculations; the wrong field being updated, etc..

    3. Average / Medium The defects which do not conform to standards andconventions can be classified as Medium Bugs. Easy workarounds exists toachieve functionality objectives. Examples include matching visual and textlinks which lead to different end points..

    4. Minor / Low Cosmetic defects which does not affect the functionality ofthe system can be classified as Minor Bug.

    Guidelines on writing Bug Description:

    Bug can be expressed as Result followed by the action. That means, theunexpected behavior occurring when a particular action takes place can be given asbug description.

    1. Be specific. State the expected behavior which did not occur - such as afterpop-up did not appear and the behavior which occurred instead.

    2. Use present tense.3. Dont use unnecessary words.4. Dont add exclamation points. End sentences with a period.5. DONT USE ALL CAPS. Format words in upper and lower case (mixed

    case).

  • 7/27/2019 Bug Testing

    12/64

    6. Mention steps to repr

    Integrati

    Introduction:As we covered in various artesting:

    Unit Testing, Integration Te

    Each level of testing builds

    Unit testing focuses on teIntegration testing is thetesting the integration of u

    How does Integration Test

    Even if a software componedistributed application it issuccessfully integrated with

    Once unit tested componentThese integrated componto the integration. This is aCycle.

    It is possible that different p

    A lot of bugs emerge durin

    In most cases a dedicated te

    Prerequisites for Integrati

    Before we begin Integrationbeen successfully unit teste

    Integration Testing Steps:

    Integration Testing typicallStep 1: Create a Test PlanStep 2: Create Test Cases aStep 3: If applicable createStep 4: Once the componenStep 5: Fix the bugs if any

    duce the bug compulsorily.

    on Testing: Why? What? & How?

    ticles in the Testing series there are vario

    sting, System Testing

    on the previous level.

    ting a unit of the code.ext level of testing. This level of testingits of code or components.

    ing fit into the Software Developmen

    nt is successfully unit tested, in an enterf little or no value if the component canthe rest of the application.

    s are delivered we then integrate them tonts are tested to weed out errors and bugery important step in the Software Deve

    rogrammers developed different compon

    the integration step.

    sting team focuses on Integration Testin

    on Testing:

    Testing it is important that all the comp.

    involves the following Steps:

    d Test Datascripts to run test casests have been integrated execute the test cnd re test the code

    us levels of

    focuses on

    Life Cycle?

    rise n-tierot be

    ether.s caused dueopment Life

    ents.

    .

    nents have

    ases

  • 7/27/2019 Bug Testing

    13/64

    Step 6: Repeat the test cycle until the components have been successfullyintegrated

    What is an Integration Test Plan?

    As you may have read in the other articles in the series, this document typicallydescribes one or more of the following:- How the tests will be carried out- The list of things to be Tested- Roles and Responsibilities- Prerequisites to begin Testing- Test Environment- Assumptions- What to do after a test is successfully carried out- What to do if test fails

    - Glossary

    How to write an Integration Test Case?

    Simply put, a Test Case describes exactly how the test should be carried out.The Integration test cases specifically focus on the flow of data/information/controlfrom one component to the other.

    So the Integration Test cases should typically focus on scenarios where onecomponent is being called from another. Also the overall application functionalityshould be tested to make sure the app works when the different components are

    brought together.

    The various Integration Test Cases clubbed together form an Integration Test SuiteEach suite may have a particular focus. In other words different Test Suites may becreated to focus on different areas of the application.

    As mentioned before a dedicated Testing Team may be created to execute theIntegration test cases. Therefore the Integration Test Cases should be as detailed aspossible.

    Sample Test Case Table:

    TestCase

    ID

    Test CaseDescription

    InputData

    ExpectedResult

    ActualResult

    Pass/Fail Remarks

  • 7/27/2019 Bug Testing

    14/64

  • 7/27/2019 Bug Testing

    15/64

    System Testing: Why? W

    Introduction:Unit testing focuses on te

    Integration testing focuscomponents.Each level of testing builds

    System Testing is the nexwhole.

    How does System Testing

    In a typical Enterprise, unitthe individual components asuccessful integration of allof code).

    Once the components are intested to ensure that it meet

    Thus the System testing buiand Integration Testing.

    Usually a dedicated testing

    Why System Testing is im

    System Testing is a crucial

    ........- In the Software Devewhere...........the System is tested........- The System is tested...........requirements

    ........- The application/Systethe...........production environm........- The System Testing e...........requirements as well

    at? & How?

    ting each unit of the code.

    s on testing the integration of units of c

    on the previous level.

    t level of testing. It focuses on testing th

    it into the Software Development Li

    testing is done by the programmers. Thre working OK. The Integration testingthe individual pieces of software (comp

    egrated, the system as a whole needs tothe Quality Standards.

    ds on the previous levels of testing nam

    eam is responsible for doing System Te

    ortant?

    tep in Quality Management Process.

    opment Life cycle System Testing is th

    s a wholeo verify if it meets the functional and tec

    m is tested in an environment that closel

    nt where the application will be finallynables us to test, verify and validate botas the Application Architecture

    ode or

    system as a

    e Cycle?

    is ensures thatfocuses on

    nents or units

    e rigorously

    ly unit testing

    sting.

    e first level

    hnical

    resembles

    eployedthe Business

  • 7/27/2019 Bug Testing

    16/64

    Prerequisites for System Testing:

    The prerequisites for System Testing are:........- All the components should have been successfully Unit Tested........- All the components should have been successfully integrated and Integration

    ..........Testing should be completed

    ........- An Environment closely resembling the production environment should be

    ...........created.

    When necessary, several iterations of System Testing are done in multipleenvironments.

    Steps needed to do System Testing:

    The following steps are important to perform System Testing:........Step 1: Create a System Test Plan

    ........Step 2: Create Test Cases

    ........Step 3: Carefully Build Data used as Input for System Testing

    ........Step 3: If applicable create scripts to

    ..................- Build environment and

    ..................- to automate Execution of test cases

    ........Step 4: Execute the test cases

    ........Step 5: Fix the bugs if any and re test the code

    ........Step 6: Repeat the test cycle as necessary

    What is a System Test Plan?

    As you may have read in the other articles in the testing series, this documenttypically describes the following:.........- The Testing Goals.........- The key areas to be focused on while testing.........- The Testing Deliverables.........- How the tests will be carried out.........- The list of things to be Tested.........- Roles and Responsibilities.........- Prerequisites to begin Testing

    .........- Test Environment

    .........- Assumptions

    .........- What to do after a test is successfully carried out

    .........- What to do if test fails

    .........- Glossary

  • 7/27/2019 Bug Testing

    17/64

    How to write a System Test Case?

    A Test Case describes exactly how the test should be carried out.

    The System test cases help us verify and validate the system.The System Test Cases are written such that:

    ........- They cover all the use cases and scenarios

    ........- The Test cases validate the technical Requirements and Specifications

    ........- The Test cases verify if the application/System meet the Business &Functional...........Requirements specified........- The Test cases may also verify if the System meets the performancestandards

    Since a dedicated test team may execute the test cases it is necessary that SystemTest Cases. The detailed Test cases help the test executioners do the testing as

    specified without any ambiguity.

    The format of the System Test Cases may be like all other Test cases as illustratedbelow:

    Test Case IDTest Case Description:

    What to Test?How to Test?

    Input DataExpected ResultActual Result

    Sample Test Case Format:

    Test

    Case

    ID

    What

    To

    Test?

    How to

    Test?

    Input

    Data

    Expected

    Result

    Actual

    Result

    Pass/Fail

    . . . . . . .

    Additionally the following information may also be captured:........a) Test Suite Name

    ........b) Tested By

    ........c) Date

    ........d) Test Iteration (The Test Cases may be executed one or more times)

    Working towards Effective Systems Testing:

    There are various factors that affect success of System Testing:

  • 7/27/2019 Bug Testing

    18/64

    1) Test Coverage: System Testing will be effective only to the extent of thecoverage of Test Cases. What is Test coverage? Adequate Test coverage impliesthe scenarios covered by the test cases are sufficient. The Test cases shouldcover all scenarios, use cases, Business Requirements, Technical Requirements,and Performance Requirements. The test cases should enable us to verify andvalidate that the system/application meets the project goals and specifications.

    2) Defect Tracking: The defects found during the process of testing should betracked. Subsequent iterations of test cases verify if the defects have been fixed.

    3) Test Execution: The Test cases should be executed in the manner specified.Failure to do so results in improper Test Results.

    4) Build Process Automation: A Lot of errors occur due to an improper build.Build is a compilation of the various components that make the applicationdeployed in the appropriate environment. The Test results will not be accurate if

    the application is not built correctly or if the environment is not set up asspecified. Automating this process may help reduce manual errors.

    5) Test Automation: Automating the Test process could help us in many ways:

    a. The test can be repeated with fewer errors of omission or oversight

    b. Some scenarios can be simulated if the tests are automated for instancesimulating a large number of users or simulating increasing large amountsof input/output data

    6) Documentation: Proper Documentation helps keep track of Tests executed. It

    also helps create a knowledge base for current and future projects. Appropriatemetrics/Statistics can be captured to validate or verify the efficiency of thetechnical design /architecture.

    What is Regression Testing?

    Introduction:

    This article attempts to take a close look at the process and techniques inRegression Testing.

    What is Regression Testing?If a piece ofSoftware- is modified for any reason testing needs to be done toensure that it works as specified and that it has not negatively impacted anyfunctionality that it offered previously. This is known as Regression Testing.

    Regression Testing attempts to verify: - That the application works as specifiedeven after the changes/additions/modification were made to it

  • 7/27/2019 Bug Testing

    19/64

    - The original functionality continues to work as specified even afterchanges/additions/modification to the software application

    - The changes/additions/modification to the software application have notintroduced any new bugs

    When is Regression Testing necessary?

    Regression Testing plays an important role in any Scenario where a change hasbeen made to a previously tested software code. Regression Testing is hence animportant aspect in various Software Methodologies where software changesenhancements occur frequently.

    Any Software Development Project is invariably faced with requests for changingDesign, code, features or all of them.

    Some Development Methodologies embrace change.

    For example Extreme Programming Methodology advocates applying smallincremental changes to the system based on the end user feedback.

    Each change implies more Regression Testing needs to be done to ensure that theSystem meets the Project Goals.

    Why is Regression Testing important?

    Any Software change can cause existing functionality to break.Changes to a Software component could impact dependent Components.

    It is commonly observed that a Software fix could cause other bugs.All this affects the quality and reliability of the system. Hence Regression Testing,since it aims to verify all this, is very important.

    Making Regression Testing Cost Effective:

    Every time a change occurs one or more of the following scenarios may occur:- More Functionality may be added to the system- More complexity may be added to the system- New bugs may be introduced

    - New vulnerabilities may be introduced in the system- System may tend to become more and more fragile with each change

    After the change the new functionality may have to be tested along with all theoriginal functionality.

    With each change Regression Testing could become more and more costly.

  • 7/27/2019 Bug Testing

    20/64

    To make the Regression Testing Cost Effective and yet ensure good coverage oneor more of the following techniques may be applied:

    - Test Automation: If the Test cases are automated the test cases may be executedusing scripts after each change is introduced in the system. The execution of test

    cases in this way helps eliminate oversight, human errors,. It may also result infaster and cheaper execution of Test cases. However there is cost involved inbuilding the scripts.

    - Selective Testing: Some Teams choose execute the test cases selectively. Theydo not execute all the Test Cases during the Regression Testing. They test onlywhat they decide is relevant. This helps reduce the Testing Time and Effort.

    Regression Testing What to Test?

    Since Regression Testing tends to verify the software application after a change

    has been made everything that may be impacted by the change should be testedduring Regression Testing. Generally the following areas are covered duringRegression Testing:

    - Any functionality that was addressed by the change

    - Original Functionality of the system

    - Performance of the System after the change was introduced

    Regression Testing How to Test?Like any other Testing Regression Testing Needs proper planning.For an Effective Regression Testing to be done the following ingredients arenecessary:

    Create a Regression Test Plan: Test Plan identified Focus Areas, Strategy, TestEntry and Exit Criteria. It can also outline Testing Prerequisites, Responsibilities,etc.

    Create Test Cases: Test Cases that cover all the necessary areas are important.They describe what to Test, Steps needed to test, Inputs and Expected Outputs.

    Test Cases used for Regression Testing should specifically cover the functionalityaddressed by the change and all components affected by the change. TheRegression Test case may also include the testing of the performance of thecomponents and the application after the change(s) were done.

    Defect Tracking: As in all other Testing Levels and Types It is important Defectsare tracked systematically, otherwise it undermines the Testing Effort.

  • 7/27/2019 Bug Testing

    21/64

    What is User Acceptance

    Introduction:

    This article attempts to explOnce the application is reaTesting.

    In this step a group represeThe user acceptance testingrelevant to the end users.

    What is User Acceptance

    User Acceptance Testing is

    Usually the end users whoaccepting the application.

    This type of testing gives thdelivered to them meets the

    This testing also helps nail

    User Acceptance Testing

    Before the User Acceptance

    Various levels of testing (Ubefore User Acceptance Tecompleted most of the tech

    User Acceptance Testing

    To ensure an effective UserThese Test cases can be creRequirements definition staThe Test cases ensure prope

    During this type of testing tapplication. The Testing isenvironment.The Test cases are written u

    esting?

    in the process of User Acceptance Testidy to be released the crucial step is User

    ting a cross section of end users tests theis done using real world scenarios and p

    esting?

    often the final step before rolling out the

    ill be using the applications test the appl

    end users the confidence that the applicr requirements.

    ugs related to usability of the applicatio

    Prerequisites:

    testing can be done the application is ful

    it, Integration and System) are already cting is done. As various levels of testingical bugs have already been fixed before

    What to Test?

    Acceptance Testing Test cases are creatted using various use cases identified due.

    r coverage of all the scenarios during tes

    e specific focus is the exact real world uone in an environment that simulates the

    sing real world scenarios for the applicat

    g.Acceptance

    application.rceptions

    application.

    ication before

    ation being

    .

    ly developed.

    ompletedhave beenUAT.

    d.ring the

    ing.

    sage of theproduction

    on

  • 7/27/2019 Bug Testing

    22/64

    User Acceptance Testing How to Test?

    The user acceptance testing is usually a black box type of testing. In other words,the focus is on the functionality and the usability of the application rather than thetechnical aspects. It is generally assumed that the application would have already

    undergone Unit, Integration and System Level Testing.However, it is useful if the User acceptance Testing is carried out in anenvironment that closely resembles the real world or production environment.

    The steps taken for User Acceptance Testing typically involve one or more of thefollowing:.......1) User Acceptance Test (UAT) Planning.......2) Designing UA Test Cases.......3) Selecting a Team that would execute the (UAT) Test Cases.......4) Executing Test Cases

    .......5) Documenting the Defects found during UAT

    .......6) Resolving the issues/Bug Fixing

    .......7) Sign Off

    User Acceptance Test (UAT) Planning:As always the Planning Process is the most important of all the steps. This affectsthe effectiveness of the Testing Process. The Planning process outlines the UserAcceptance Testing Strategy. It also describes the key focus areas, entry and exitcriteria.

    Designing UA Test Cases:The User Acceptance Test Cases help the Test Execution Team to test theapplication thoroughly. This also helps ensure that the UA Testing providessufficient coverage of all the scenarios.The Use Cases created during the Requirements definition phase may be used asinputs for creating Test Cases. The inputs from Business Analysts and SubjectMatter Experts are also used for creating.

    Each User Acceptance Test Case describes in a simple language the precise stepsto be taken to test something.

    The Business Analysts and the Project Team review the User Acceptance TestCases.

    Selecting a Team that would execute the (UAT) Test Cases:Selecting a Team that would execute the UAT Test Cases is an important step.The UAT Team is generally a good representation of the real world end users.The Team thus comprises of the actual end users who will be using the application.

  • 7/27/2019 Bug Testing

    23/64

    Executing Test Cases:The Testing Team executesTests relevant to them

    Documenting the Defects

    The Team logs their commeResolving the issues/BugThe issues/defects found duSubject Matter Experts andmutual consensus and to the

    Sign Off:

    Upon successful completioissues the team generally in

    important in commercial soSoftware delivered they ind

    The users now confident ofpaid for the same.

    Ads

    What are the key delivera

    In the Traditional Software

    Acceptance Testing is a sigThe Key Deliverables typic

    1) The Test Plan- This outli

    2) The UAT Test cases Tapplication

    3) The Test Log This is a

    4) User Sign Off This inditheir satisfaction

    Summary:

    In this article we studied the

    the Test Cases and may additional perfo

    ound during UAT:

    nts and any defects or issues found durinixing:ing Testing are discussed with the Proje

    Business Analysts. The issues are resolvsatisfaction of the end users.

    of the User Acceptance Testing and resicates the acceptance of the application.

    tware sales. Once the User Acate that the software meets their require

    the software solution delivered and the v

    les of User Acceptance Testing?

    evelopment Lifecycle successful compl

    ificant milestone.lly of User Acceptance Testing Phase ar

    es the Testing Strategy

    e Test cases help the team to effectively

    og of all the test cases executed and the

    cates that the customer finds the product

    process of User Acceptance Testing.

    m random

    g testing.

    t Team,d as per the

    lution of theThis step is

    ccept thements.

    ndor can be

    etion of User

    e:

    test the

    ctual results.

    delivered to

  • 7/27/2019 Bug Testing

    24/64

    Unit

    Author : Exforsys Inc. Pu2010

    Unit Testing: Why? What

    In this tutorial you will leartypes of testing based upon

    Software Develois a Unit Test Plan? What isUnit Testing.

    There are various levels of t

    Unit Testing Integration TestingSystem Testing

    There are various types of t

    Acceptance TestingPerformance TestingLoad TestingRegression Testing

    Based on the testing Techni

    Black box TestingWhite box Testing

    How does Unit Testing fit

    This is the first and the mosdevelops a unit of code the

    built it is much more econoUnit Testing is the most im

    progresses ahead it become

    In most cases it is the devel

    Unit Testing Tasks and StStep 1: Create a Test PlanStep 2: Create Test Cases aStep 3: If applicable createStep 4: Once the code is rea

    Testing: Why? What? & How?

    blished on: 8th Jan 2006 | Last Updat

    & How?

    about unit testing, various levels of testhe intent of testing, How does Unit Test

    ment Life Cycle? Unit Testing Tasks ana Test Case? and Test Case Sample, Ste

    esting:

    sting based upon the intent of testing su

    ues testing can be classified as:

    nto the Software Development Life

    important level of testing. As soon as thnit is tested for various scenarios. As thical to find and eliminate the bugs early

    ortant of all the testing levels. As the somore and more costly to find and fix th

    pers responsibility to deliver Unit Test

    ps:

    d Test Datacripts to run test casesy execute the test cases

    d on: 8th Dec

    ng, variousng fit into the

    Steps, Whats to Effective

    h as:

    ycle?

    e programmerapplication ison. Hencetware projectbugs.

    d Code.

  • 7/27/2019 Bug Testing

    25/64

    Step 5: Fix the bugs if any and re test the codeStep 6: Repeat the test cycle until the unit is free of all bugs

    What is a Unit Test Plan?

    This document describes the Test Plan in other words how the tests will be carriedout.This will typically include the list of things to be Tested, Roles andResponsibilities, prerequisites to begin Testing, Test Environment, Assumptions,what to do after a test is successfully carried out, what to do if test fails, Glossaryand so on

    What is a Test Case?

    Simply put, a Test Case describes exactly how the test should be carried out.For example the test case may describe a test as follows:

    Step 1: Type 10 characters in the Name FieldStep 2: Click on Submit

    Test Cases clubbed together form a Test Suite

    Test Case Sample

    Test

    Case

    ID

    Test Case

    Description

    Input

    Data

    Expected

    Result

    Actual

    Result

    Pass/Fail Remarks

    Additionally the following information may also be captured:a) Unit Name and Version Being testedb) Tested Byc) Dated) Test Iteration (One or more iterations of unit testing may be performed)

    Steps to Effective Unit Testing:

    1) Documentation: Early on document all the Test Cases needed to test your code.

    A lot of times this task is not given due importance. Document the Test Cases,actual Results when executing the Test Cases, Response Time of the code for eachtest case. There are several important advantages if the test cases and the actualexecution of test cases are well documented.

    a. Documenting Test Cases prevents oversight.b. Documentation clearly indicates the quality of test cases

  • 7/27/2019 Bug Testing

    26/64

    c. If the code needs to be retested we can be sure that we did not miss anythingd. It provides a level of transparency of what was really tested during unit testing.This is one of the most important aspects.e. It helps in knowledge transfer in case of employee attritionf. Sometimes Unit Test Cases can be used to develop test cases for other levels oftesting

    2) What should be tested when Unit Testing: A lot depends on the type ofprogram or unit that is being created. It could be a screen or a component or a webservice. Broadly the following aspects should be considered:

    a. For a UI screen include test cases to verify all the screen elements that need toappear on the screensb. For a UI screen include Test cases to verify the spelling/font/size of all thelabels or text that appears on the screen

    c. Create Test Cases such that every line of code in the unit is tested at least once ina test cycled. Create Test Cases such that every condition in case of conditional statementsis tested oncee. Create Test Cases to test the minimum/maximum range of data that can beentered. For example what is the maximum amount that can be entered or themax length of string that can be entered or passed in as a parameterf. Create Test Cases to verify how various errors are handledg. Create Test Cases to verify if all the validations are being performed

    3) Automate where Necessary: Time pressures/Pressure to get the job done mayresult in developers cutting corners in unit testing. Sometimes it helps to writescripts, which automate a part of unit testing. This may help ensure that thenecessary tests were done and may result in saving time required to perform thetests.

    Ads

    Summary:

    Unit Testing is the first level of testing and the most important one. Detectingand fixing bugs early on in the Software Lifecycle helps reduce costly fixes lateron. An Effective Unit Testing Process can and should be developed to increase theSoftware Reliability and credibility of the developer. The Above article explainshow Unit Testing should be done and the important points that should beconsidered when doing Unit Testing.

  • 7/27/2019 Bug Testing

    27/64

    Many new developers take tof Unit Testing further dowarticle serves as a starting p

    Author : Exforsys Inc. P

    This article explains aboutIntegration Test, FunctionalTest.

    Introduction:

    The development process iaddresses a specific testinginvolved in the developmen

    Unit Test. System Test Integration Test Functional Test Performance Test Beta Test Acceptance Test.

    Unit TestThe first test in the developnormally divided into moduunits. These units have speccalled unit test. Unit test dedeveloped. Unit tests ensureaccurately to the documenteexpected results.

    System Test

    Several modules constitutedevelopers write the modulmay arise. The testing done

    System testing ensures thatrequirements. It tests a conf

    he unit testing tasks lightly and realize tthe road if they are still part of the proj

    int for laying out an effective (Unit) Tes

    blished on: 17th May 2005 | Last Up

    Mar 2011ifferent testing types Unit Test. SystemTest, Performance Test, Beta Test and

    nvolves various types of testing. Each teequirement. The most common types ofprocess are:

    ent process is the unit test. The source cles, which in turn are divided into smalleific behavior. The test done on these unitends upon the language on which the prthat each unique path of the project perf

    d specifications and contains clearly defi

    project. If the project is long-term projes. Once all the modules are integrated, sat this stage is called system test.

    he entire integratedsoftware system mguration to ensure known and predictabl

    e importancect. Thisting Strategy.

    ated on: 15th

    est,cceptance

    t typetesting

    ode isr units calleds of code isject isormsned inputs and

    ct, severalveral errors

    etsresults.

  • 7/27/2019 Bug Testing

    28/64

    System testing is based on process descriptions and flows, emphasizing pre-drivenprocess links and integration points.

    Testing a specific hardware/software installation. This is typically performed on aCOTS (commercial off the shelf) system or any other system comprised of

    disparent parts where custom configurations and/or unique installations are thenorm.

    Functional Test

    Functional test can be defined as testing two or more modules together with theintent of finding defects, demonstrating that defects are not present, verifying thatthe module performs its intended functions as stated in the specification andestablishing confidence that a program does what it is supposed to do.

    Acceptance Testing

    Testing the system with the intent of confirming readiness of the product andcustomer acceptance.

    Ad Hoc Testing

    Testing without a formal test plan or outside of a test plan. With some projects thistype of testing is carried out as an adjunct to formal testing. If carried out by askilled tester, it can often find problems that are not caught in regular testing.Sometimes, if testing occurs very late in the development cycle, this will be theonly kind of testing that can be performed. Sometimes ad hoc testing is referred to

    as exploratory testing.

    Alpha Testing

    Testing after code is mostly complete or contains most of the functionality andprior to users being involved. Sometimes a select group of users are involved.More often this testing will be performed in-house or by an outside testing firm inclose cooperation with the software engineering department.

    Ads

    Automated Testing

    Software testing that utilizes a variety of tools to automate the testing process andwhen the importance of having a person manually testing is diminished.Automated testing still requires a skilled quality assurance professional withknowledge of the automation tool and the software being tested to set up the tests.

  • 7/27/2019 Bug Testing

    29/64

    Beta Testing

    Testing after the product is code complete. Betas are often widely distributed oreven distributed to the public at large in hopes that they will buy the final productwhen it is released.

    Black Box Testing

    Testing software without any knowledge of the inner workings, structure orlanguage of the module being tested. Black box tests, as most other kinds of tests,must be written from a definitive source document, such as a specification orrequirements document.

    Compatibility Testing

    Testing used to determine whether other system software components such asbrowsers, utilities, and competing software will conflict with the software beingtested.

    Configuration Testing

    Testing to determine how well the product works with a broad range ofhardware/peripheral equipment configurations as well as on different operatingsystems and software.

    Independent Verification & Validation

    The process of exercising software with the intent of ensuring that the softwaresystem meets its requirements and user expectations and doesn't fail in anunacceptable manner. The individual or group doing this work is not part of thegroup or organization that developed the software. A term often applied togovernment work or where the government regulates the products, as in medicaldevices.

    Installation Testing

    Testing with the intent of determining if the product will install on a variety ofplatforms and how easily it installs.

    Integration Testing

    Testing two or more modules or functions together with the intent of findinginterface defects between the modules or functions. Testing completed at as a partof unit or functional testing, and sometimes, becomes its own standalone test

  • 7/27/2019 Bug Testing

    30/64

    phase. On a larger level, integration testing can involve a putting together ofgroups of modules and functions with the goal of completing and verifying that thesystem meets the system requirements. (see system testing)

    Load Testing

    Testing with the intent of determining how well the product handles competitionfor system resources. The competition may come in the form of network traffic,CPU utilization or memory allocation.

    Performance Testing

    Testing with the intent of determining how quickly a product handles a variety ofevents. Automated test tools geared specifically to test and fine-tune performanceare used most often for this type of testing.

    Pilot Testing

    Testing that involves the users just before actual release to ensure that usersbecome familiar with the release contents and ultimately accept it. Often isconsidered a Move-to-Production activity for ERP releases or a beta test forcommercial products. Typically involves many users, is conducted over a shortperiod of time and is tightly controlled. (see beta testing).

    Regression Testing

    Ads

    Testing with the intent of determining if bug fixes have been successful and havenot created any new problems. Also, this type of testing is done to ensure that nodegradation of baseline functionality has occurred.

    Security Testing

    Testing of database and network software in order to keep company data andresources secure from mistaken/accidental users, hackers, and other malevolentattackers.

    Software TestingThe process of exercising software with the intent of ensuring that the softwaresystem meets its requirements and user expectations and doesn't fail in anunacceptable manner. The organization and management of individuals or groupsdoing this work is not relevant. This term is often applied to commercial productssuch as internet applications. (contrast with independent verification andvalidation)

  • 7/27/2019 Bug Testing

    31/64

    Stress Testing

    Testing with the intent of determining how well a product performs when a load isplaced on the system resources that nears and then exceeds capacity.

    User Acceptance TestingSee Acceptance Testing.

    White Box Testing

    Testing in which the software tester has knowledge of the inner workings, structureand language of the software, or at least its purpose.

    RACH Home : www.sharetechnote.com

    What is the most tricky part in device troubleshooting ? My experience says "If aproblem happens in the middle of doing something, it is relatively easy to find theroot cause and troubleshoot it (probably I might have over-simplified the situation-:), but if something happened before anything started, it would be a nightmare."For example, you set the all the parameters at the network emulator for a UE youwant to test and then turned on the UE. In a several second UE start booting andthen in a couple of second you see a couple of antenna bars somewhere at the topof UE screen.. and then in several seconds you see 'SOS' or 'Service Not Available'in stead of your network operator name displayed on your screen and normalAntenna bars. This is what I mean by "problem in the middle of doing something".In this case, if you collect UE log and equipment log, at least you can easily pinpoint out the location the problem happens and start from there for further details.But what if you are in this situation ? you set the all the parameters at the networkemulator side and turn on the UE.. UE start booting up .. showing the messagesaying "Searching Network ...." and got stuck there.. with no Antenna bars .. noteven 'SOS' .. just saying "No service". And I collected UE side log and NetworkEmulator side log, but no signalling message. This is where our headache starts.

    As examples,

    i) What if you don't see 'RRC Connection Request' when your turned on theWCDMA UE ?

  • 7/27/2019 Bug Testing

    32/64

    ii) What if you don't see 'Channel Request' when your turned on the GSM UE ?

    iii) What if you don't see 'RACH Preamble' when your turned on the LTE UE ?

    First thing you have to do is to understand the every details of this procedure notonly in the higher signaling layer, but also all the way down to the physical layersrelated to these first step. And also you have to use proper equipment which canshow these detailed process. If you have an equipment that does not provide thelogging or it provides log but only higher layer singnaling log, it will be extremlydifficult to troubleshoot. Given that you have the proper tools, the next thing youhave to be ready is to understand the detailed knowledge of these process. Withoutthe knowledge, however good tools I have it doesn't mean anything to me. So ? Iwant to teach myself here about the first step of LTE signaling which is RACHprocess. (Somebody would say there are many of other steps even before the

    RACH, like frequency Sync, Time Sync, MIB/SIB decoding.. but it put these asidefor now.. since it is more like baseband processing).

    When RACH Process occurs ?

    It would be helpful to understand if you think about when 'RRC Connection'happens (or when PRACH process happens if you are interested in lower layerstuffs) in WCDMA. It would also be helpful if you think about when 'ChannelRequest' happens in GSM UE.

    My impression of LTE RACH process is like the combination of PRACH process(WCDMA) and Channel Request (GSM). It may not be 100% correct analogy.. butanyway I got this kind of impression. In LTE, RACH process happens in followingsituation (3GPP specification, 10.1.5 Random Access Procedure of 36.300 )

    i) Initial access from RRC_IDLE

    ii) RRC Connection Re-establishment procedure

    iii) Handover

    iv) DL data arrival during RRC_CONNECTED requiring random accessprocedure

    E.g. when UL synchronisation status is non-synchronised

  • 7/27/2019 Bug Testing

    33/64

    v) UL data arrival during RRC_CONNECTED requiring random accessprocedure

    E.g. when UL synchronisation status is "non-synchronised" or there are noPUCCH resources for SR available.

    vi) For positioning purpose during RRC_CONNECTED requiring randomaccess procedure;

    E.g. when timing advance is needed for UE positioning

    Two types of RACH process : Contention-based and Contention-free

    When a UE transmit a PRACH Preamble, it transmits with a specific pattern and

    this specific pattern is called a "Signature". In each LTE cell, total 64 preamblesignatures are available and UE select randomly one of these signatures.

    UE select "Randomly" one of these signatures ?

    Does this mean that there is some possibility that multiple UEs send PRACH withidentical signatures ?

    Yes.

    There is such a possibility. It means the same PRACH preamble from multipe UEreaches the NW at the same time.. this kind of PRACH collision is called"Contention" and the RACH process that allows this type of "Contention" is called"Contention based" RACH Process. In this kind of contention based RACHprocess, Network would go through additional process at later step to resolve thesecontention and this process is called "Contention Resolution" step.

    But there is some cases that these kind of contention is not acceptable due to somereason (e.g, timing restriction) and these contention can be prevented. Usually inthis case, the Network informs each of the UE of exactly when and whichpreamble signature it has to use. Of course, in this case Network will allocate thesepreamble signature so that it would not collide. This kind of RACH process is

  • 7/27/2019 Bug Testing

    34/64

    called "Contention Free" RACH procedure. To initiate the "Contention Free"RACH process, UE should be in Connected Mode before the RACH process as inHandover case.

    Typical 'Contention Based' RACH Procedure is as follows :

    i) UE --> NW : RACH Preamble (RA-RNTI, indication for L2/L3 message size)

    ii) UE NW : L2/L3 message iv) Message for early contention resolution

    Now let's assume that a contention happened at step i). For example, two UEs sentPRACH. In this case, both of the UE will recieve the same T_C-RNTI andresource allocation at step ii). And as a result, both UE would send L2/L3 messagethrough the same resource allocation(meaning with the same time/frequencylocation) to NW at step iii). What would happen when both UE transmit the exactsame information on the exact same time/frequency location ? One possibility isthat these two signal act as interference to each other and NW decode neither ofthem. In this case, none of the UE would have any response (HARQ ACK) fromNW and they all think that RACH process has failed and go back to step i). Theother possibility would be that NW could successfully decode the message fromonly one UE and failed to decode it from the other UE. In this case, the UE withthe successful L2/L3 decoding on NW side will get the HARQ ACK fromNetwork. This HARQ ACK process for step iii) message is called "contentionresolution" process.

    Typical 'Contention Free' RACH Procedure is as follows :

    i) UE NW : RACH Preamble (RA-RNTI, indication for L2/L3 message size)

    iii) UE

  • 7/27/2019 Bug Testing

    35/64

    Exactly when and Where a UE transmit RACH ?

    To answer to this question, you need to refer to 3GPP specification TS36.211 -Table 5.7.1-2.

    Did you open the specification now ? It shows exactly when a UE is supposed tosend RACH depending on a parameter called "PRACH Configuration Index".

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    36/64

    For example, if the UE is using "PRACH Configuration Idex 0", it should transmitthe RACH only in EVEN number SFN(System Frame Number). Is this goodenough answer ? Does this mean that this UE can transmit the RACH in any time

    within the specified the SFN ? The answer to this question is in "Sub FrameNumber" colulmn of the table. It says "1" for "PRACH Configuration Idex 0". Itmeans the UE is allowed to transmit RACH only at sub frame number 1 of everyeven SFN.

    Checking your understanding of the table, I will give you one question. Withwhich "PRACH Configuration Idex", it would be the easiest for the Network todetect the RACH from UE ? and Why ?

    The answer would be 14, because UE can send the RACH in any SFN and anyslots within the frame.

    In a big picture, you should know all the dimmensions in the following diagram.(The Red rectangle is PRACH signal).

    The R_Slot is determined by PRACH Configuration Index and R_length isdetermined by Premable format. F_offset is dermined by the following equation

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    37/64

    when the preamble format is 0~3. n_RA_PRBoffset in this equation is specified byprach-FreqOffset in SIB2.

    What is preamble format ?

    If you see the table 5.7.1-1 show above, you see the column titled as "PreambleFormat". What is the preamble format ? It is defined as following diagram.

    You would see that the length of PRACH preamble varies depending on thepreamble format. For example, the length of PRACH with preamble format is(3186 + 24567) Samples. (As you know, one sample (Ts) is 1/30.072 us).

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    38/64

    You may ask "Why we need this kind of multiple preamble format ?", especially"Why we need various PRACH format with different length in time ?".

    One of the main reason would be that they use different preamble formatdepending on cell radius, but this is oversimplified answer.

    I want to recommend a book titled "LTE : The UMTS From Theory to Practice"Section 19.4.2 The PRACH Structure. This is the material that describes thePRACH in the most detailed level I have ever read.

    How does Network knows exactly when UE will transmit the RACH ?

    It is simple. Network knows when UE will send the RACH even before UE sendsit because Network tells UE when the UE is supposed to transmit the RACH. (IfUE fails to decode properly the network information about the RACH, Networkwill fail to detect it even though UE sends RACH).

    Following section will describe network informaton on RACH.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    39/64

    Which RRC Message contains RACH Configuration ?

    It is in SIB2 and you can find the details in 3GPP 36.331.Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    40/64

    numberOfRA-Preambles : There are total 64 RA preambles that UE can randomlychoose from. But usually a cell reserve several Preambles for 'Non-contentionbased' PRACH procedure and let UE use the rest of Preambles randomly(contention based). numberOfRA-Preambles indicates how many RA preambles(RA sequences) is available for the contention based RACH process.

    PRACH Signal Structure

    Following figure shows the PRACH Premable signal structure in comparison withnormal Uplink subframe. A couple of points to be specially mentioned are

    Preamble Length in Frequency Domain is amount to 6 RBs of UL Subframe,

    which is 1.08 MhzOne sub carrier of PRACH Preamble is 1.25 Khz whereas 1 sub carrier of

    UL subframe is 15 Khz. It means that 12 preamble sub carrier is amount to 1UL Subframe subcarrier.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    41/64

    How to generate RACH Signal ?

    You don't have to know the details of this procedure unless you are the DSP orFPGA engineer implementing LTE PHY. Just as a common sense about LTE, let's

    know that PRACH is a kind ofZaddOff Chu Sequence generated by the followingequation.

    , where u = physical root sequence index

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimage and then insertitagain.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    42/64

    There are 64 preambles available for each cell and UE has to be able to generatethe 64 preambles for the cell it want to camp on.

    You can easily generate 64 different preambles just by cyclically shifting anexisting sequence, but there is a condition for this. All the preamle sequences

    should be authogonal to each other. Otherwise, various preambles from multipleUEs within the same cell can interfere each other. So we have to shift thegenerated sequence by a specifically designed value and this value is called Cv(Cyclic Shift Value) and it is defined as follows. (I think determining the Cv is oneof the most complicated process in PRACH preamble generation because it getsinvolved with so many different parameters in cascading manner).

    First, you would notice that we use different process to calculate Cv depending onwhether we use 'unrestricted sets' or 'restricted sets'. This decision is made by'Highspeedflag' information elements in SIB2. If Highspeedflag is set to be TRUE,we have to use 'restricted sets' and if Highspeedflag is false, we have to use'unrestricted sets'.

    N_cs is specified by zeroCorrelationZoneConfig information elements in SIB2. Asyou see in this mapping, N_cs values also gets different depending on whether weuse 'restricted sets' or 'unrestricted sets'.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    43/64

    Now let's look at how we get Nzc. This is pretty straightforward. Nzc isdetermined by the following table.

    If the Preamble is using the unrestricted sets, it is pretty simple. You only have toknow Nzc, Ncs to figure out Cv.

    The problem is when the Preamble is using the 'restricted sets'. As you see theequation above, you need to know the following 4 values to figure out Cv in'restricted sets'.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimageand then insertitagain.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthe red xstillappears, you

    may haveto deletetheimageand then insertitagain.

  • 7/27/2019 Bug Testing

    44/64

    The problem is that the calculation of these four variable is very complicated asshown below.

    You would noticed that you need another value to calculate to determine which ofthe three case we have to use. It is du. So we need another process to determine du.

    We went through a complicated procedure just to determin one number (Cv). Oncewe get Cv, we can generate multiple preambles using the following function.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimageand then insertitagain.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthe red xstillappears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    45/64

    Anyway, now we got a PRACH Preamble sequence in hand, but this is not all. Inorder to transmit this data. We have to convert this data into a time domainsequence and this conversion is done by the following process.

    For the whole PRACH generation procedure, please refer to 5.7.2/5.7.3 of TS36.211.

    Exactly when and where Network transmit RACH Response

    We all knows that Network should transmit RACH Response after it recieved

    RACH Preamble from UE, but do we know exactly when, in exactly whichsubframe, the network should transmit the RACH Response ? The following iswhat 3GPP 36.321 (section 5.1.4) describes.

    Once the Random Access Preamble is transmitted and regardless of the possible

    occurrence of a measurement gap, the UE shall monitor the PDCCH for Random

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    46/64

    Access Response(s) identified by the RA-RNTI defined below, in the RA Responsewindow which starts at the subframe that contains the end of the preamble

    transmission [7] plus three subframes and has length ra-ResponseWindowSizesubframes.

    It means the earliest time when the network can transmit the RACH response is 3subframe later from the end of RACH Preamble. Then what is the latest time whenthe network can transmit it ? It is determined by ra-ResponseWindowSize. Thiswindow size can be the number between 0 and 10 in the unit of subframes. Thismeans that the maximum time difference between the end of RACH preamble andRACH Response is only 12 subframes (12 ms) which is pretty tight timingrequirement.

    PRACH Parameters and Physical Meaning

    < prach-ConfigIndex >

  • 7/27/2019 Bug Testing

    47/64

    < zeroCorrelationZoneConfig and Highspeedflag >

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    48/64

    < prach-FreqOffset >

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimageand then insertitagain.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimageand then insertitagain.

  • 7/27/2019 Bug Testing

    49/64

    < rootSequenceIndex >

    RACH Procedure during Initial Registration - RACH Procedure Summary

    Follwing is an example of RACH procedure which happens during the initiail

    registration. If you will be an engineer who is working on protocol stackdevelopment or test case development, you should be very familiar with all thedetails of this process.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    50/64

    Again, we have to know every details of every step without missing anything to bea developer, but of course it is not easy to understand everything at a single shot.So, let's start with something the most important part, which I think is the details ofRACH response. Following diagram shows one example of RACH Response with5 Mhz bandwidth. We don't have to memorize the detailed value itself but shouldbe familiar with the data format and understand which part of this bit string meanswhat.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    51/64

    If you decode UL Grant part, you will get the following result. You will notice thatthe information it carries would be very similar to DCI format 0 which carriesResource Allocation for uplink data. This information in UL Grant in RACH

    Response message is the resource allocation for msg3 (e.g, RRC ConnectionRequest).Note : This is example of RAR for System BW 5 Mhz. If the sytem BWgets different, you should have different RIV values (if you want to have the sameStart_RB, N_RB as in this example) or you will have different Start_RB, N_RB (ifyou keep RIV as below and just change the system BW)

    Let me describe this procedure in verbal form again.

    i) UE initiate a Random Access Procedure on the (uplink) Random AccessChannel (RACH).(The location of RACH in the frequency/time resource grid theRACH is known to the mobile via the (downlink) Broadcast Channel (BCH). Therandom access message itself only consists of 6 bits and the main content is arandom 5 bit identity)

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    52/64

    ii) Network sends a Random Access Response Message(RARM) at a time andlocation on the Physical Downlink Shared Channel (PDSCH) (The time andlocation of RARM on PDSCH can be calculated from the time and location therandom access message was sent. This message contains the random identity sentby the device, a Cell Radio Network Temporary ID (T_C-RNTI) which will beused for all further bandwidth assignments, and an initial uplink bandwidthassignment)

    iii) The mobile device then uses the bandwidth assignment to send a short (around80 bits) RRC Connection Request message which includes it's identity which haspreviously been assigned to it by the core network

    Only the step i) uses physical-layer processing specifically designed for randomaccess. The remaining steps utilizes the same physical layer processing as used fornormal uplink and downlink data transmission

    How can we get RA RNTI ?

    5.1.4 Random Access Response reception" in "TS36.321 says how to calculate

    RA=RNTI as follows.

    The RA-RNTI associated with the PRACH in which the Random Access Preamble

    is transmitted, is computed as:

    RA-RNTI = 1 + t_id + 10 * f_id

    Where t_id is the index of the first subframe of the specified PRACH (0 t_id

  • 7/27/2019 Bug Testing

    53/64

    It means that UE specifies RA_RNTI by the sending timing (SubFrame) ofPRACH Preamble.

    An Example of Full RACH Process

    Following is an example of Full RACH process with a commercialized LTE deviceand LTE Network Emulator. I would not explain anything in detail. Just check ifthe following diagram make any sense to you. If it does, I would say youunderstand all the details that I explained above.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    54/64

    PRACH Retransmission

    Most part of previous section was about the ideal RACH process, which meansthat UE send PRACH and Network send RACH Response at the first trial andwent through all the way to the end of process at the first trial.

    What if UE does not receive RACH Response at the first trial ? What is UEsupposed to do in this case ?

    The answer is simple. Just retry (resend) PRACH.

    Then you would have more question. ("I" in the following description is "UE")

    i) When do I have to retry ? (What should be the time delay between theprevious transmission and the next transmission ?)

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    55/64

    ii) Do I have to retransmit the PRACH with the same power as previous one? Or try with a little bit higher power ? If I have to try with a little bit higher

    power, how much power do I have to increase ?

    iii) If I keep failing to receive RACH response, how many time I have to

    retry ? Do I have to retry until the battery runs out ? or retry only severaltimes and give up ? If I have to give up after a certain amount of retry,exactly how many times do I have to retry ?

    The answers to all of these questions are provided by the network.

    The answer (instruction) to question i) is provided by Network via a special RARMAC PDU called "Backoff Indicator". (I will explain about Backoff Indicator laterin more detail).

    The answer to question ii) and iii) are provided by Network via SIB2 as follows.powerRampingStep is the answer to question ii) and preambleTransMax is theanswer to question iii).

    In the following example, powerRampingStep = dB2. It means UE has to increasePRACH power by 2 dB everytime it retries.

    preambleTransMax = n6. It means UE retries PRACH retransmit only 6 times andthen give up.

    | +-radioResourceConfigCommon ::= SEQUENCE| | +-rach-Config ::= SEQUENCE| | | +-preambleInfo ::= SEQUENCE [0]| | | | +-numberOfRA-Preambles ::= ENUMERATED [n52]| | | | +-preamblesGroupAConfig ::= SEQUENCE OPTIONAL:Omit| | | +-powerRampingParameters ::= SEQUENCE| | | | +-powerRampingStep ::= ENUMERATED [dB2]| | | | +-preambleInitialReceivedTargetPower ::= ENUMERATED [dBm-

    104]| | | +-ra-SupervisionInfo ::= SEQUENCE| | | | +-preambleTransMax ::= ENUMERATED [n6]

    | | | | +-ra-ResponseWindowSize ::= ENUMERATED [sf10]| | | | +-mac-ContentionResolutionTimer ::= ENUMERATED [sf48]| | | +-maxHARQ-Msg3Tx ::= INTEGER (1..8) [4]

    RACH Process Overview In Diagrams

  • 7/27/2019 Bug Testing

    56/64

    I have explained long about the RACH process. Now you may ask "What is thetrigger that let UE initiate the RACH process ?". You will see various triggers in3GTS 36.300 (10.1.5) : Overall description of RACH Process.

    "Turning on UE" is one of the trigger for sure. And following is another trigger forthis process.

    < RACH Procedure on Initial Registration >

    This is basically the same sequence that I explained in previous sections, but I

    simplified the diagram in previous sections to let reader focused more onmessaging part of RACH procedure. In this diagram, you see some additional stepslike HARQ ACK, DCI 0 (UL Grant). This flow is more similar to real live networkprocedure.

  • 7/27/2019 Bug Testing

    57/64

    < RACH Procedure on Handover - Contention Based >

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    58/64

    < RACH Procedure on Handover - NonContention Based >

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    59/64

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    60/64

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    61/64

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    62/64

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimageand then insertitagain.

  • 7/27/2019 Bug Testing

    63/64

    PRACH RF Snapshot

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstillappears, you may haveto deletetheimage and then insertitagain.

  • 7/27/2019 Bug Testing

    64/64

    3GPP Standard for RACH Process

    3GTS 36.300 (10.1.5) : Overall description of RACH Process. Read this first.

    3GTS 36.211 (5.7) : RRC Messages and IE (Information Elements) which areinvolved in RACH process.

    3GTS 36.213 (6) : MAC Layer Procedure related to RACH Process.

    Theimagecannot bedisplayed. Your computer may nothaveenough memory to open theimage, or theimagemay havebeen corrupted. Restartyour computer, and then open thefileagain. Ifthered xstill appears, you may haveto deletetheimage and then insertitagain.