53
Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role

Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Software Testing FundamentalsBasic Training for New Software Testers Lesson 01: Software Development & Your Role

Page 2: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

1. Overview of the Development Process

2. Development Styles: Waterfall vs. Agile

3. User Requirements

4. System Design

5. Coding

6. Implementation

7. Testing

8. Deployment

Lesson 01: Software Development & Your Role Topics

Page 3: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

1. Overview of the Development Process

2. Development Styles: Waterfall vs. Agile

3. User Requirements

4. System Design

5. Coding

6. Implementation

7. Testing

8. Deployment

Lesson 01: Software Development & Your Role Topics

Page 4: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

There are 6 major steps in the process

First, user requirements are defined

Then a system design is done

When the design is completed, the software is written

Lesson 01: Software Development & Your Role Overview of the Development Process

Page 5: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

The implementation step is next, making the completed system available to test

The testing phase then proves that the software works as intended

When testing is completed, the system is deployed and the project is complete

Lesson 01: Software Development & Your Role Overview of the Development Process

Page 6: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Next we’ll discuss 2 development styles

The SDLC steps are the same in both styles

The difference is in frequency of releases: long-term vs. short-term

Lesson 01: Software Development & Your Role Overview of the Development Process

Page 7: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

1. Overview of the Development Process

2. Development Styles: Waterfall vs. Agile

3. User Requirements

4. System Design

5. Coding

6. Implementation

7. Testing

8. Deployment

Lesson 01: Software Development & Your Role Topics

Page 8: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

“waterfall” projects are long-term

Once started, the project flows in one direction, from beginning to end

It is difficult to go back and modify outputs of previous steps

Lesson 01: Software Development & Your Role Development Styles: Waterfall vs. Agile

Page 9: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

“agile” projects are short-term

The development cycle repeats in an on-going circular pattern

It’s easy to go back and modify deliverables of previous steps

Lesson 01: Software Development & Your Role Development Styles: Waterfall vs. Agile

Page 10: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Regardless of development style, the same steps are followed:

User Requirements

System Design

Coding

Implementation

Testing

Deployment

Lesson 01: Software Development & Your Role Development Styles: Waterfall vs. Agile

Page 11: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

We follow the same steps for both methods

But the difference is in the timeline

A waterfall project takes a long time to deliver a usable product

In agile, a usable product is delivered sooner, then enhanced over time with frequent releases

Lesson 01: Software Development & Your Role Development Styles: Waterfall vs. Agile

Page 12: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

1. Overview of the Development Process

2. Development Styles: Waterfall vs. Agile

3. User Requirements

4. System Design

5. Coding

6. Implementation

7. Testing

8. Deployment

Lesson 01: Software Development & Your Role Topics

Page 13: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Requirements describe the user’s needs

They are written in plain language

They are documented, reviewed and revised prior to system design

Lesson 01: Software Development & Your Role User Requirements

Page 14: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Requirements determine the system design

They dictate the outputs of the software

As a professional tester, you’ll review requirements and design tests to verify them

Lesson 01: Software Development & Your Role User Requirements

Page 15: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

For each requirement, you’ll write a “test case’

A test case describes your process for proving the user requirement has been met

Page 16: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

A sample requirement:

“our delivery system requires 9 digit zip codes to provide fast, efficient service, track delivery destinations, & improve our sales & marketing program effectiveness”

Page 17: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

• At first glance, the requirement seems fairly simple

• Our test case will check for 9 digit numbers in the zip code field

• Sounds simple - right?

Page 18: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

Let’s analyze the requirement more closely:

“our delivery system requires 9 digit zip codes to provide fast, efficient service, track delivery destinations, & improve our sales & marketing program effectiveness”

Page 19: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

“our delivery system requires 9 digit zip codes”:

• One test is to verify that 9 numbers are accepted in the field

• Another test may be to verify that the zip code is associated with a valid mailing address

• A 3rd test may be to verify that non-numeric characters are not accepted

Page 20: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

“our delivery system requires 9 digit zip codes”:

• 9 numbers are accepted in the field (positive test)

• the zip code is associated with a valid mailing address (positive test)

• non-numeric characters are not accepted (negative test)

Page 21: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

“our delivery system requires 9 digit zip codes”:

• You can use a “requirements matrix” to plan your tests

• It’s an easy way to keep track of tests for each requirement

• These are some sample tests you might perform for this requirement

Requirement Tests

our delivery system requires 9 digit zip codes

Enter a valid 5 digit zip and 4 digit extension

Verify zip code value is valid per US postal service records

Enter non-numeric values and verify error message

Enter numeric values outside of valid zip code range

Page 22: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

“our delivery system requires 9 digit zip codes”:

• 9 numbers, valid address, no non-numeric characters accepted

• these are called “functional tests”

• They prove that the software works as desired, aka “functional requirements”

Page 23: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

Let’s analyze the rest of the requirement:

“our delivery system requires 9 digit zip codes to provide fast, efficient service, track delivery destinations, & improve our sales & marketing program effectiveness”

Page 24: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

“our delivery system requires 9 digit zip codes to provide fast, efficient service, track delivery destinations, & improve our sales & marketing program effectiveness”

This is called a “non-functional” requirement

Page 25: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

“our delivery system requires 9 digit zip codes to provide fast, efficient service, track delivery destinations, & improve our sales & marketing program effectiveness”

It describes a benefit the user expects from the software

Page 26: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

• Your primary task is to perform functional tests

• Your mission is to verify that the software meets your user’s needs

Page 27: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

• In this course we’ll focus on performing functional tests that fulfill user requirements

• These tests are performed via a graphical user interface (GUI)

• They are also referred to as “black box” tests

Page 28: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role User Requirements

• When performing black box tests, you are testing from the user view

• You don’t know what’s inside the “box” (aka, the software that produces the application you’re testing)

• In this type of test, you’ll execute the test cases you created from user requirements

• We’ll cover this test technique in Lessons 2 & 3

Page 29: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

1. Overview of the Development Process

2. Development Styles: Waterfall vs. Agile

3. User Requirements

4. System Design

5. Coding

6. Implementation

7. Testing

8. Deployment

Lesson 01: Software Development & Your Role Topics

Page 30: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role System Design

• The system design begins while user requirements are being gathered, reviewed, and approved

• The design encompasses all system hardware & software components

Page 31: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role System Design

• As a tester, you may attend meetings with other team members

• In this phase, you’ll get information that you can use to begin designing tests

Page 32: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role System Design

• Design decisions may dictate the type of tests you’ll do

• As a black-box tester, you have to take into account all types of devices that may be used

Page 33: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role System Design

• If the software is being designed to run on multiple devices (desktop, laptop, tablet, phone), you’ll need a test strategy for each device

• Each device may have a different GUI (Graphical User Interface), so tests may vary per device

Page 34: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

1. Overview of the Development Process

2. Development Styles: Waterfall vs. Agile

3. User Requirements

4. System Design

5. Coding

6. Implementation

7. Testing

8. Deployment

Lesson 01: Software Development & Your Role Topics

Page 35: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Coding

• The software is written during the coding phase

• This may be the longest phase in the project

Page 36: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Coding

• As a tester, you may be involved in code “walkthroughs”

• Also known as “inspections”, these are code reviews done prior to implementation and testing

Page 37: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Coding

• Inspections are designed to detect potential bugs in the code early in the project

• This early detection saves time & money by finding bugs prior to implementation

Page 38: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Coding

• You’ll also be designing & writing tests during the coding phase

• The tests may be manual or automated

Page 39: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Coding

• When coding & inspections are completed, the code is ready to be tested

• The next phase, implementation, creates the working version of the system

Page 40: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

1. Overview of the Development Process

2. Development Styles: Waterfall vs. Agile

3. User Requirements

4. System Design

5. Coding

6. Implementation

7. Testing

8. Deployment

Lesson 01: Software Development & Your Role Topics

Page 41: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Implementation

• During Implementation, the software is made ready to test

• Also, if applicable, all interfaces to outside systems are put in place

Page 42: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Implementation

• The system is made fully operational, just as it will be when it goes live

• Now, moving into the test phase, “end-to-end” testing is done to verify all system functionality

Page 43: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

1. Overview of the Development Process

2. Development Styles: Waterfall vs. Agile

3. User Requirements

4. System Design

5. Coding

6. Implementation

7. Testing

8. Deployment

Lesson 01: Software Development & Your Role Topics

Page 44: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Testing

• As a professional tester, most of your time will be spent in the test phase

• you’ll execute tests to verify the requirements you reviewed earlier in the project

Page 45: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Testing

• You’ll usually begin with something called “unit tests”

• Unit tests verify small, individual functions, such as the zip code test example we saw earlier

Page 46: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Testing

• After Unit Tests you’ll also perform “integration tests”

• These tests verify that individual system features (which you unit tested) work successfully together

Page 47: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Testing

• Following integration testing, there may be User Acceptance Tests (UAT)

• The end-users run their own tests to verify that the system meets their requirements

Page 48: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Testing

• If this is a new release of an existing system, one more test type is needed

• Regression tests are run to make sure that modified software didn’t effect existing functions

Page 49: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

1. Overview of the Development Process

2. Development Styles: Waterfall vs. Agile

3. User Requirements

4. System Design

5. Coding

6. Implementation

7. Testing

8. Deployment

Lesson 01: Software Development & Your Role Topics

Page 50: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Deployment

• Deployment is the final step in the SDLC project

• All tests are have been executed and passed

Page 51: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Deployment

• Your job in this final phase will be to run “smoke tests”

• These are sometimes called “sanity tests”

Page 52: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

Lesson 01: Software Development & Your Role Deployment

• Smoke tests verify that basic system functions have been successfully deployed

• When these tests are successful, the system is ready for use

Page 53: Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software Testers Lesson 01: Software Development & Your Role. 1. Overview of the Development

1. Overview of the Development Process

2. Development Styles: Waterfall vs. Agile

3. User Requirements

4. System Design

5. Coding

6. Implementation

7. Testing

8. Deployment

Lesson 01: Software Development & Your Role Topics