QA Course

Introduction | Disclaimer

Lecture 1 – A Bug Or Not A Bug


Quick Intro
Three Conditions Of A Bug’s Existence
The Gist Of Testing
Spec, Spec, Spec
Software Bugs And Spec Bugs
– Error Message During Registration
Other Sources Of Expected Results
– Life Experience
– Common Sense
– Communication
– Standards
– Statistics
– Valuable Opinion
– Other Sources
Why We Call Them “Bugs”?
Lecture Recap
Questions & Exercises
Self-Check Quiz 1

Lecture 2 – The Purpose of Testing


Quick Intro
Exposing Misconceptions
– First View: “testers Must Make Sure That 100% Of The Software Works Fine.”
– Valid Input/Invalid Input
– Input->Processing->Output
– Second View: “a Tester’s Effectiveness Is Reflected In The Number Of Pre-release Bugs.”
How To Make Use Of Stats For Post-Release Bugs
– Alan, Boris, Connor And 7 Bugs In Checkout
Testing And QA
– Life Of Mr. G. From QA Perspective
Lecture Recap
Questions & Exercises
Self-Check Quiz 2

Lecture 3 – Test Cases and Test Suites


Quick Intro
– Checking Mr. Wilson’s Backpack For Chips And Beer
Test Case Structure
– Samuel Pickwick And Test Case With Credit Card: Scene 1
– Samuel Pickwick And Test Case With Credit Card: Scene 2
Results Of The Test Case Execution
– Why FAIL Is Good
Useful Attributes Of The Test Case
– Unique ID/Priority/IDEA/SETUP And ADDITIONAL INFO/Revision History
Data-Driven Test Cases
Maintainability Of Test Cases
– QA KnowledgeBase
The Number Of Expected Results Inside One Test Case
– Log Files
– Front End/Back End
Bad Test Case Practices
– 1. Dependency Between Test Cases
– 2. Poor Description Of The Steps
– Trip To LA
– 3. Poor Description Of The Idea And/or Expected Result
Test Suites
– First Test Case Execution
– Checkout With Credit Cards (TS7122)
– Checkout With AmEx (TS7131)
– Merging Test Suites
States Of A Test Case
– Created/Modified/Retired
The Importance Of Creativity
Three Important Factors That Affect Test Cases
– 1. Importance Of The Project
– 2. Complexity Of The Project
– 3. Stage Of The Project
Lecture Recap
Questions & Exercises
Self-Check Quiz 3

Lecture 4 – The Software Development Life Cycle


Quick Intro
– Once Upon A Time In California
Product Design
– Breaking Rule #1: Clarity Of Details And Definitions
– Breaking Rule #2: No Room For Misinterpretation
– Breaking Rule #3: Absence of internal/external conflicts
– Breaking Rule #4: Solid, Logical Structure
– Breaking Rule #5: Completeness
– Breaking Rule #6: Compliance With Laws
– Breaking Rule #7: Compliance With Business Practices
– Spec Status
– Spec Change Procedure
– Examples/Flowcharts/Mock-ups
Coding: Part 1
– Typical Architecture Of Web Based Applications
– 1. Hire Good People, And Be Prepared To Give Them A Break
– 2. Direct, Fast, Effective Communication Between Coworkers
– 3. Code Inspections
– 4. Coding Standards
– 5. Realistic Schedules
– 6. Availability Of Documentation
– 7. Rules About Unit Testing
– Cost Of The Bug
– 8. “If It Ain’t Broke, Don’t Fix It”
– 9. Being Loved By The Company
– 10. Having “quality” And “happiness Of Users” As Fundamental Principles Of Company Philosophy
Coding: Part 2
– Programming & Bug Fixing
– Syntax Bugs, UI Bugs, Logical Bugs
– Code Freeze
– Remember This For The Rest Of Your Testing Career
– Test Case Reviews
Testing And Bug Fixes
– Major Release & Minor Release (Feature/Patch/Mixed)
– Emergency Bug Fixes And Emergency Feature Requests
– Building ShareLane: Billy, Willy, Zorg And Star
– ShareLane Architecture
– Bug In cc_transactions: File It NOW!
– Using CVS (version control system)
– Builds
– Releasing 1.0 To Production
– Nightmare With 2.0: To Rollback Or Not To Rollback
– CVS Branches And A Story Of Smiling Eddy
– 3 States Of CVS Branches
– Bug Postmortems
– Beta Releases
– Nice Message
– Releasing To 1 Machine
– Release Moratorium
The Big Picture Of The Cycle
Lecture Recap
Questions & Exercises
Self-Check Quiz 4

Lecture 5 – The Software Testing Life Cycle


Quick Intro
– Testing New Vacuum Cleaner
– Documentation
– Humans
– Exploring
Test Planning
Test Execution
Test Education And Reality
2+2=4 OR?
Lecture Recap
Questions & Exercises
Self-Check Quiz 5

Lecture 6 – Classifying the Most Common Types of Testing


Quick Intro
By Knowledge Of The Internals Of The Software
– Black Box Testing
– Scenarios And Patterns Of User Behavior
– White Box Testing
– Your First Bug Found With White Box Testing Approach
– Use Cases Vs Test Cases
– Understanding Test Coverage
– Grey Box Testing
By The Object Of Testing
– Functional Testing
– UI Testing
– Difference Between UI Testing And Testing Using UI
– Usability Testing
– Localization Testing
– Load/performance Testing
– Security Testing
– Compatibility Testing
By Time Of Test Execution
– Before Any Release (alpha Testing)
– After A Beta Release (beta Testing)
By Positivism Of Test Scenarios
– Positive Testing
– Negative Testing
– Error Messages
– Error-handling
By Degree Of Isolation Of Tested Components
– Component Testing
– Integration Testing
– System (end-to-end) Testing
– Test Preps For “5% Discount” Feature
– Thoughts About Test Emails
By Degree Of Automation
– Manual Testing
– Semi-automated Testing
– Automated Testing
By Preparedness
– Formal/documented Testing
– Ad Hoc Testing
Lecture Recap
Questions & Exercises
Self-Check Quiz 6

Lecture 7 – Test Preps


Quick Intro
The Tester’s Mental Attitude
– Logs, Landscapes And Material For An Article
– Cycle Of Mistrust
– Positive Testing And Destructive Thinking
Intro To Special Skills In Bug Finding
Black Box Testing Techniques
– Dirty List/white List
– Test Tables
– Flowcharts
– Risk Analysis
– Hotel In The Mountains And “Absolutely Obvious” Things
– Example With Auto Parts
– Equivalent Classes
– Boundary Values
– A-to-E
– Testing Discounts On ShareLane
When You Start To Implement Testing Techniques…
– Be A Master Of Test Techniques, Not Their Slave
Lecture Recap
Questions & Exercises
Self-Check Quiz 7

Lecture 8 – Bug Tracking


Quick Intro
The Bug Tracking System
– Bug Attributes
– ID
– Basic Web Page Elements
* Text
* Link
* Mailto
* Anchor
* 404 – File Not Found
* DNS Error – Cannot Find Server
* Relative URL
* Absolute URL
* Image
* Linked Image
* Text Box
* Captcha
* Text Area
* Password Input Box
* Screenshots
* Professional Ethics Regarding Passwords
* Keystrokes
* Drop-down Menu
* Radio Button
* Checkbox
* Reset Button
* How To Make Graphic Attachments
* The Concept Of The Bug Owner
* Who Does What/Who Owns What
– DB
* Bug Severity Definitions
* Bug Priority Definitions
* Bug Resolution Times
* Go/No-Go Criteria
* BTW About Selling Bugs To Developers
* Reported
* Assigned
* Fix In Progress
* Fixed
* Fix Is Verified
* 2 Steps Of Bug Regression
* Verification Failed
* Cannot Reproduce
* 4 Scientists And 1 Flask
* Duplicate
* Not A Bug
* 3rd Party Bug
* No Longer Applicable
Bug Tracking Procedure
– Bug Tracking Procedure Flowchart
– Associations Between The BTS Attributes And Actions Taken To Resolve The Bug
Quick Closing Note about BTS and BTP
– Effective Simplicity
Lecture Recap
Questions & Exercises
Self-Check Quiz 8

Lecture 9 – Test Execution: New Feature Testing


Quick Intro
– Smoke Test And Blocking Issues
– QA Meeting About New Features
Test Estimates
– Release Schedule And QA Schedule
– 1. What Is The Complexity Of The Feature To Be Tested?
– 2. Do You Have Any Experience With Testing Similar Features?
– 3. Is There Any Planned Integration With The Vendor’s Software?
Entry/Exit Criteria
Test Plan
Aggressive Testing From Jason Fisher
Lecture Recap
Questions & Exercises
Self-Check Quiz 9

Lecture 10 – Test Execution: Regression Testing


Quick Intro
How to Choose Test Suites for Regression Testing
– 1st Group Of Test Suites For Regression Testing
– 2nd Group Of Test Suites For Regression Testing
– Key-value Pairs
– Test Case/suite Prioritization
How To Resolve The Contradiction Between Our Limited Resources And The Ever-Growing Number Of Test Suites
– 1. Prioritization Of Test Suites And Test Cases
– 2. Test Suite Optimization
– 3. New Hires Or Outsourcing
– 4. Test Automation
Automation Of Regression Testing: Do It Right OR Forget About It
– A Story About The Merciless Automator, Benny M.
– What Exactly Was The Problem With ShareLane Test Automation?
– Three Test Automation Components
– Test Automation Killer Called “MAINTENANCE”
– $200 Shoes For A Baby
* $36,360 In Savings After 30 Minutes Of Work
* A. Tools For Component Automation
** Concept Of The Length Of The Road
** Short, Isolated Test Flows
* B. Scripts For End-to-end Automation (E2E Test Automation)
– Money Savers And Money Eaters
– 4 IFs
– When Test Automation Produces An Error It Means That
– Test Automation And QA Team Morale
– Questions To Ask BEFORE Starting To Write Test Automation
* A. How Stable Is The Tested Piece Of Software?
* B. What Are The Frequency And Length Of Manual Execution Of The Candidate For Automation?
* C. What Is The Priority Of The Test Suite/case To Be Automated?
* D. How Much Longer Will That Task Be Around?
* E. How Hard Will It Be To Write Test Automation?
– Two Important Factors About Test Automation Programming
* 1. The Architecture Of Test Automation
** A. Ease Of Maintenance
** B. Ease Of Expansion
** C. Ease Of Code Reuse
* 2. The Technologies/tools Used For Test Automation
** Free Programming Languages Vs Commercial Tools (SilkTest, WinRunner And Others)
** 8 Reasons Not To Use Commercial Tools
** What If You Want To Specialize In SilkTest Or WinRunner
** Idea About Test Automation With Wget And Python
When Regression Testing Stops
Lecture Recap
Questions & Exercises
Self-Check Quiz 10

Lecture 11 – How to Find Your First Job in Testing

– The Brick Walls Are There For A Reason

Why You Have A Real Chance To Find A Job In Testing
– What REALLY Prevents A Person From Getting An Entry-level Job In Testing
– About Negativity And Skepticism
– About Strong Desire To Make Good Money + A Complete Lack Of Any Desire To Work
– Wrong Attitude/Right Attitude
* “I’m Willing To Work Unlimited Hours.”
* “I’m Willing To Work On Weekends And Holidays.”
* “I’m Willing To Work For Any Amount Of Money.”
– Example With Housekeeper
Mental Tuning
Job Hunting Activities
– ACTIVITY 0: Tune Up Your Attitude
– ACTIVITY 1: Let People In Your Network Know
* Six Degrees Of Separation
* Using LinkedIn
– ACTIVITY 2: Create A Resume
* Resume As Presentation
* STEP 1: List Of Achievements And Testing Related Experiences
** Wendy And Her Print Shop
** Done_stuff.txt
** Action Verbs And Powerful Adjectives
* STEP 2: Put Your White List Into Your Resume Template
* STEP 3: Get some experience as Beta Tester and populate the section Beta Testing
** Getting Beta Testing Experience
* STEP 4: Populate The Section Labeled Software Experience
* STEP 5: Populate All Other Sections Of The Resume
* STEP 6: Polish The Language Of Your Resume
– ACTIVITY 3: Working With Recruiters
* Concept Of Target Market
* The BIG Four
– ACTIVITY 4: Launch A Campaign Dedicated To Self-promotion
* Passive Search
* Active Search
* Shoot At ALL Targets
– ACTIVITY 5: Interview Successfully And Get A Job
* Homework Before The Interview
** A. Get Info About The Company
** B. Involve Your Network
** C. If Possible, Try To Actually Use The Company’s Product(s)
** D. Nice Haircut, Good Looking Clothes And Shoes, And Some Sleep
* Phone Screening And Phone Interview
* At The Day Of The Interview
** 1. Arrive On Time
** 2. Have A Firm Handshake And Look Directly Into The Interviewer’s Eyes
** 3. Answer Questions Without Any Unnecessary Details
Meet The Parents, Monet And Sunflowers
** 4. Be Friendly, Yet Considerate
*** Anecdotes About Lovers Jumping From The Balcony, Etc
** 5. If The Interviewer Wants To Talk, Let Him Or Her Talk
** 6. NEVER Speak Negatively About Your Previous Or Current Employers
*** NEVER Be Negative At An Interview
*** “I Never Say Negative Things About My Employers.”
*** Negativity Is An Opportunity Killer
** 7. Always Remember That During The Interview, The Interviewer Is Analyzing You As A Potential Coworker
*** Sharing The Passion
** 8. Honesty And Sincerity Win Hearts. Lies And Attempts To Conceal Something Are Sure Ways To Ruin Your Interview
*** “I Don’t Know” – “If Needed, I’ll Learn It” Combo
** 9. Don’t Get Upset Or Angry If The Interview Doesn’t Go Smoothly
*** “Can I Have Number 3, Please?”
*** It Doesn’t Matter What YOU Think About How Interview Is Going
*** The Best Techniques To Stay Calm During The Interview
** 10. Never Cancel An Interview Until You Accept A Job Offer
*** Interviewing Well Is A Separate Skill
** 11. Remember That An Interview Is A DIALOG, Not An Interrogation
*** “Death Or The Right Answer To What A Test Plan Is.”
** 12. Use Professional Terms
** 13. Remember Your Mantra And Make Sure The Interviewer Knows These Things About You
** 14. List Of Typical Interview Questions And Recommended Answers
*** Q. Why Did You Decide To Become A Software Tester?
*** Q. What Do You Like Most About Software Testing?
*** Q. What Are The Key Qualities Of A Good Tester?
*** Q. Tell Me About Your Short- And Long-term Plans For Your Career In Software Testing
*** Q. In The Very Unlikely Scenario That The Company Needs You To Come Into The Office During The Night, Would You Be Willing To?
*** Q. In The Very Unlikely Scenario That The Company Asks You To Come In During Weekends And Holidays, Would You Be Willing To?
*** Q. During Crunch Time You Might Need To Work More Than Eight Hours A Day. Are You Comfortable With That?
*** Q. Can You Work On Several Projects At Once?
*** Q. How Do You Deal With Time Pressure And Pressure From The Management?
*** Q. Describe Your Relevant Experience And Education
*** Q. What Is Your Biggest Professional Achievement?
*** Q. Why Are You Leaving Your Current Employer?
*** Q. What Are Your Biggest Disappointments At Your Present Position?
*** Q. Would You Prefer To Work For A Large, Established Company Or A Start-up?
*** Q. Give Me An Example Of A Complex Situation And Solution That You’ve Found
*** Q. Tell Me About Your Strengths And Weaknesses
*** Q. What Would You Like To Improve In Your Career, And What Are You Doing About It?
*** Q. Would You Prefer To Work As A Member Of A Team Or Independently? Why?
*** Q. Why Do You Want To Work For Our Company?
*** Q. What Do You Know About Our Company? Have You Ever Used Our Product?
*** Q. Why Should We Hire You Over Another Candidate?
** 15. Make A Speech At The End Of Your Interview
** 16. Always Send A Thank-you Email To The Interviewer After The Interview
– Jack London And 600 Rejection Letters
– What Happens After They Interviewed You
– Story About George And Olga
Lecture Recap
Questions & Exercises

Lecture 12 – Bonus Tracks


Quick Intro
How Much Technology Knowledge Must A Beginner Tester Have
– I Hear And I Forget. I See And I Remember. I Do And I Understand
What To Do If You Are The First Test Engineer At A Software Start-Up
– 1. Install a bug tracking system
– 2. Learn the product, create a set of acceptance tests, and start executing them before each release
– 3. Bring good standards and processes to the attention of your colleagues and management
What If You Are Asked To Do Test Automation As Your First Task
– Performance Testing And Black Box Tester
What Are Stock Options
– How People Get Rich With Stock Options. Example
– Definition
– Exercise Price
– Vesting Schedule
– Acceleration In Vesting
– Millionaire On The Beach
How To Spot A Promising Start-up
– Insane Popularity
– When Start-up Is Being “pregnant”
– Why I LOVE Google, Inc
– Always Being A Winner


Questions and Answers about QA