+ All Categories
Home > Documents > Software Testing Fundamentals - 1 New

Software Testing Fundamentals - 1 New

Date post: 14-Apr-2018
Category:
Upload: kishore-chand
View: 235 times
Download: 0 times
Share this document with a friend

of 30

Transcript
  • 7/27/2019 Software Testing Fundamentals - 1 New

    1/30

    109

    207

    246

    Dark 1

    255

    255

    255

    Light 1

    131

    56

    155

    Dark 2

    0

    99

    190

    Light 2

    85

    165

    28

    Accent 1

    214

    73

    42

    Accent 2

    185

    175

    164

    Accent 3

    151

    75

    7

    Accent 4

    193

    187

    0

    Accent 5

    255

    221

    62

    Accent 6

    255

    255

    255

    Hyperlink

    236

    137

    29

    Followed

    Hyperlink

    127

    175

    221

    Tata Blue 50%

    203

    215

    238

    Tata Blue 25%

    179

    149

    197

    Purple 50 %

    212

    195

    223

    Purple 25 %

    255

    242

    171

    Yellow 50 %

    255

    249

    213

    Yellow 25 %

    229

    205

    186

    Brown 50 %

    248

    241

    235

    Brown 25 %

    180

    213

    154

    Green 50 %

    214

    231

    200

    Green 25 %

    241

    240

    202

    Light Green 50%

    251

    251

    241

    Light Green 25%

    Title and Content

  • 7/27/2019 Software Testing Fundamentals - 1 New

    2/30

    Objective:To enable associates to get an overview on Software Testing and Careers in Testing

    Target Audience: Associate should have very basic knowledge on Testing.

    Expected Duration: 2 hours

  • 7/27/2019 Software Testing Fundamentals - 1 New

    3/30

    Topics covered in this course are:

    Evolution of software engineering

    Need of Testing

    Goal of Testing

    Understanding Software Testing

  • 7/27/2019 Software Testing Fundamentals - 1 New

    4/30

    Software Engineering is the application of a systematic, disciplined, quantifiableapproach to the development, operation, and maintenance of software

    The term Software Engineering was first used at a 1968 NATO

    workshop in West Germany. It focused on the then growing software

    crisis on factors like

    High development costs

    Poor reliability

    Lack of user acceptance

    Impossible to maintain

    Surprising to learn that these issues were raised long back in 1968...!

  • 7/27/2019 Software Testing Fundamentals - 1 New

    5/30

    Complexity of software makes it error prone

    Untested or weakly tested software can cause losses in real life. Eg:

    Disneys Lion King 1994 1995- The software did not work onthe most common systems that the public had.

    Intel Pentium Floating-Point Division Bug 1994 Intel took acharge of more than $400 million to cover the costs of replacingbad chips

    NASA Mars Polar Lander 1999 Malfunction due to anunexpected setting of a single data bit

    Patriot missile defense system 1991 A software bug caused

    the tracking system to be inaccurate after 14 hrs of operation

  • 7/27/2019 Software Testing Fundamentals - 1 New

    6/30

    A defect in the software has a root cause, while the effect of defect is

    seen as impact by the different stake holders.

    Testing is part of overall Quality Assurance It covers the QualityControl aspect of ensuring Quality

    An anomaly in the software is called a bug or a defect. it may or may notlead to a failure during the usage of the software

    Software testing may be required for compliance with contractual orlegal requirements

    When is testing complete?

    Actually never

    However for practical reasons it is stopped after considering therisks involved, time and budget constraints

    Testing should provide sufficient information to the stake holders for decision makingregarding release of the software/ system , for the next development step or handoverto customers

  • 7/27/2019 Software Testing Fundamentals - 1 New

    7/30

    Common objectives of testing

    The goal of a software tester is:

    To find bugs

    To find them as early as possible

    & make sure they get fixed

    Testing is a means to:

    Find bugs

    Provide confidence and information

    Even prevent defects

  • 7/27/2019 Software Testing Fundamentals - 1 New

    8/30

    In 1950s -Machine languages -Testing was nothing butdebugging

    In 1960s-compilers were developed,

    Testing , a separate activity fromdebugging

    In 1970s, -software engineering concepts

    Testing evolved as a technicaldiscipline

    There was a growing concern about the quality but what was the attitudetowards Software Testing?

    Over the last two decades the attitude towards Software Testingunderwent a major positive change and there has been an increasingfocus on better, faster and cost-effective software

    Testing

    Debugging

  • 7/27/2019 Software Testing Fundamentals - 1 New

    9/30

    Testing is the process of executing a program with the intent of findingerrors -Myers

    Quality Control (QC) is Testing the software or product for its intendedbehavior.

    Quality Assurance (QA) Testing the processes involved in developing andtesting the software or product

    Verification is to establish the truth of correspondence between a software

    product and its specification.

    Validation is to establish the fitness or worth of a software product forits operational mission - Barry Boehm

    Verification Are we building the product right?Validation Are we building the right product?

  • 7/27/2019 Software Testing Fundamentals - 1 New

    10/30

    1.Testing the software or product for its intended behavior is

    a) Quality Assuranceb) Quality Control

    c) Verification

    d) Validation

  • 7/27/2019 Software Testing Fundamentals - 1 New

    11/30

    2.Goal of Testing is to

    a) Stand against Developerb) To find Bugs

    c) Writing code

    d) Interaction with Customer

  • 7/27/2019 Software Testing Fundamentals - 1 New

    12/30

    Testers mindset

  • 7/27/2019 Software Testing Fundamentals - 1 New

    13/30

    Qualities of Good Tester

    Testing Principles

  • 7/27/2019 Software Testing Fundamentals - 1 New

    14/30

    The testers mindset must have the below mentioned attributes

    Keen Observat ion

    A tester should just not concern only about the test input and the expected output. Heshould have a keen observation on the functioning of the application under test. Onlythen he can think and test all possible test conditions that may not planned as part of

    test designing.

    Quest ioning Ski l ls

    Another most important aspect for a good tester should be the questioning skills. Thetester should not restrict him/her to simply verifying the functional specifications instead,start questioning the behavior of the application on every test condition. In that way, the

    application can be verified against the given functional specifications as well as providesome really better suggestions on the applications functionality. After all an independent

    tester is more like the end-user of the application and it is more important to testwhether the application is user-friendly in all ways.

  • 7/27/2019 Software Testing Fundamentals - 1 New

    15/30

    Never give-up

    Sometimes, in the first run of the test execution, no defects might be encountered. But asa tester, he/she should develop the Never give-up attitude and try to find alternativeways to unearth any possible defects. It would be very rare that the software isdeveloped defect-free!

    Interpersonal Ski l ls

    The challenge for a tester does not end with finding the defect and reporting it. He/Shehas to maintain good relationship with the development team and good interpersonalskills helps in early defect acknowledgment by the development team which is essentialfor defect fixing and closure

  • 7/27/2019 Software Testing Fundamentals - 1 New

    16/30

    Testing shows presence of defects , not its absence

    Testing can show that defects are present, but cannot prove that there are nodefects. Testing reduces the probability of undiscovered defects remaining in thesoftware but, even if no defects are found, it is not a proof of correctness

    Exhaustive Testing is impossible

    Testing everything (all combinations of inputs and preconditions) is not

    feasible except for trivial cases. Instead of exhaustive testing, risk analysis andpriorities should be used to focus testing efforts.

    Early TestingTesting activities should start as early as possible and should be focused on

    defined objectives.

    Defect ClusteringA small number of modules contain most of the defects discovered during pre-

    release testing, or are responsible for the most operational failures.

  • 7/27/2019 Software Testing Fundamentals - 1 New

    17/30

    Pesticide Paradox

    If the same tests are repeated over and over again, eventually the same set of testcases will no longer find any new defects. To overcome this pesticide paradox, the testcases need to be regularly reviewed and revised.

    Testing is context dependent

    Testing is done differently in different contexts. For example, safety-critical software istested differently from an e-commerce site.

    Absence-of-errors fallacy

    Finding and fixing defects does not help if the system built is unusable and does notfulfill the users need.

  • 7/27/2019 Software Testing Fundamentals - 1 New

    18/30

    1. Testing all combinations of inputs and outputs is

    a) Early Testing

    b) Defect Clustering

    c) Exhaustive Testing

    d) Static Testing

  • 7/27/2019 Software Testing Fundamentals - 1 New

    19/30

    2. Defect Clustering is

    a) small number of modules containing most of the defects

    b) Finding and Fixing defects

    c) Testing as Early as possible

    d) Testing all Combinations

  • 7/27/2019 Software Testing Fundamentals - 1 New

    20/30

    3. A good tester must have

    i)Keen Observation, (ii) Questioning Skills (iii) Never Give-up attitude

    a) Only (I)

    b) Only (i) and (ii)

    c) Only (ii) and (iii)

    d) All (i),(ii) and (iii)

  • 7/27/2019 Software Testing Fundamentals - 1 New

    21/30

    Testing Career stream

  • 7/27/2019 Software Testing Fundamentals - 1 New

    22/30

    Test

    Lead

    Testers

    Test Analyst

    Test Automation

    Developers

    Test

    Strategist

    Business

    Analyst

    Test

    Solution

    Architect

    Senior

    Business

    Analyst

    Test

    Manager

    Test

    Consultant

    Domain

    Consultant

    Test Center

    Delivery

    Manager

    Test Automation

    Engineer

    Test Automation

    Architect

    Test Automation

    Manager

    Test Automation

    Consultant

    Management Stream

    Programmers

    6-12

    yrs

    4-6y

    rs

    1-3y

    rs

    0-1-yr

    3-4y

    rs

    Project

    Lead

    Project

    Manager

    Group

    Leader

    Module Lead

    Business

    Analyst

    Senior

    Business

    Analyst

    Domain

    Consultant

    Solution

    Architect

    Delivery

    Manager

    Testing StreamDevelopment Stream

  • 7/27/2019 Software Testing Fundamentals - 1 New

    23/30

    Test Engineer

    Execute test cases as per test plans and log defectsWork closely with Test Lead / Analyst to achieve desired objectives

    Test Analyst

    Develop Test Cases, Test Scripts and Test Data

    Prepare traceability matrix

    Work closely with Testing team to achieve the desired test result Test Lead

    Develop and manage Test Plans

    Monitor test execution and track defects

    Establish Testing Environment, processes and implement methodologies

    Report status of testing and co-ordinate with end-users, testers and test manager

    Test Manager

    Develop test strategy

    Planning, effort estimation, resource management and training

    Manage and deliver the Testing team activities

    Establish, track and improve process efficiencies

    Roles:

  • 7/27/2019 Software Testing Fundamentals - 1 New

    24/30

    Test Automation Engineer

    Prepare test automation design based on the test automation architecture and

    framework defined for the projectDefine standards and guidelines for automation

    Test Strategist

    Design testing framework including automated testing

    Review testing deliverable

    Analyze testing tools and recommend for use

    Define test strategy

    Define Metrics

    Test Process Consultant

    Assess testing processes and recommend improvement action plan

    Assess test automation feasibility

    Prepare assessment plan and coordinate with the project/programstakeholders

  • 7/27/2019 Software Testing Fundamentals - 1 New

    25/30

    Test CoE Lead

    Training and competency development

    Standardize process and methodologyMaintain knowledge repository

    Produce reporting metrics for higher management and customer

    Business Analyst

    Prepare high level test scenarios based on business scenarios andrequirements

    Analyze requirements for accuracy and completeness from a businessperspective

    Review high level test scenarios prepared

    Test Consultant

    Assess testing processes and recommend improvement action plan

    Prepare assessment plan and coordinate with the project/programmestakeholders

    Pre-sales/ business development

  • 7/27/2019 Software Testing Fundamentals - 1 New

    26/30

    Test Automation Consultant

    Automation feasibility analysis and tool evaluation

    Automation approach and roadmapPre-sales/ business development

    Creation of assets

    Product review/ keep abreast of developments in product space

    Test Center Delivery ManagerEnd-to-end management of testing delivery for multiple projects / initiatives

    Identify and monitor issues, risks and concerns at test centre level

    Reporting to Customer Management

    Establish Client expectations

  • 7/27/2019 Software Testing Fundamentals - 1 New

    27/30

    Summary- Software Testing

    It has become inevitable for every software development project to have anindependent testing team to do the constructive destruction of the software

    developed.

    Software Testing is the validation and refinement process of the SoftwareEngineering discipline.

    Over the recent years the attitude towards software testing as a separatetechnical discipline has changed a lot in its favour leading to its acceptance

    as an investment that yields a better ROI.

  • 7/27/2019 Software Testing Fundamentals - 1 New

    28/30

    1. Executing Test case as per test plans is the role of

    a) Test Engineer

    b) Test lead

    c) Test Analyst

    d) Test Manager

  • 7/27/2019 Software Testing Fundamentals - 1 New

    29/30

    2. The role of BA (Business Analyst) is to

    a) Establish Client expectations

    b) Prepare high level test scenarios and review

    c) Create Assets

    d) Write test case

    Title and Content

  • 7/27/2019 Software Testing Fundamentals - 1 New

    30/30

    109

    207

    246

    Dark 1

    255

    255

    255

    Light 1

    131

    56

    155

    Dark 2

    0

    99

    190

    Light 2

    85

    165

    28

    Accent 1

    214

    73

    42

    Accent 2

    185

    175

    164

    Accent 3

    151

    75

    7

    Accent 4

    193

    187

    0

    Accent 5

    255

    221

    62

    Accent 6

    255

    255

    255

    Hyperlink

    236

    137

    29

    Followed

    Hyperlink

    127

    175

    221

    Tata Blue 50%

    203

    215

    238

    Tata Blue 25%

    179

    149

    197

    Purple 50 %

    212

    195

    223

    Purple 25 %

    255

    242

    171

    Yellow 50 %

    255

    249

    213

    Yellow 25 %

    229

    205

    186

    Brown 50 %

    248

    241

    235

    Brown 25 %

    180

    213

    154

    Green 50 %

    214

    231

    200

    Green 25 %

    241

    240

    202

    Light Green 50%

    251

    251

    241

    Light Green 25%

    Title and Content

    Thank you


Recommended