Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software...

Post on 30-Jun-2020

2 views 0 download

transcript

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

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

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

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

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

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

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

“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

“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

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

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

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

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

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

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

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”

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?

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”

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

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)

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

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”

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”

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

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

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

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

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

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

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

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

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

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

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

Lesson 01: Software Development & Your Role Coding

• The software is written during the coding phase

• This may be the longest phase in the project

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Lesson 01: Software Development & Your Role Deployment

• Deployment is the final step in the SDLC project

• All tests are have been executed and passed

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”

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

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