Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software...
Transcript of Software Testing Fundamentals€¦ · Software Testing Fundamentals Basic Training for New Software...
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