An Intro to Software Testing: Ultimate Guide for Testers

Aware of all the techniques and processes that improves your efficiency, skills and confidence to jump start into the field of Software Testing.

Requirements

  • Basic knowledge of IT/Software would be helpful.

Description

Introduction

Hello and welcome, this course introduces a practical approach to testing software. It bridges the gap between theoretical knowledge and real world implementation. This article helps you gain an insight to Software Testing – understand technical aspects and the processes followed in a real working environment.

Who will benefit?

Beginners. For those of you who wish to mould your theoretical software engineering knowledge into practical approach to working in the real world.

Those who wish to take up Software Testing as a profession.

Developers! This is an era where you need to be an “All rounder”. It is advantageous for developers to posses testing capabilities to test the application before hand. This will help reduce overhead on the testing team.

Already a Tester! You can refresh all your testing basics and techniques and gear up for Certifications in Software Testing

An earnest suggestion: No matter which profession you choose, it is advisable that you posses the following skills:

–       Good communication skills – oratory and writing

–       Fluency in English

–       Good Typing skills

By the time you finish reading this article, you will be aware of all the techniques and processes that improves your efficiency, skills and confidence to jump start into the field of Software Testing.

Fun Facts:

Following are some facts that can help you gain a better insight into the realities of Software Engineering.

  1. The best programmers are up to 28 times better than the worst programmers.
  2. New tools/techniques cause an initial LOSS of productivity/quality.
  3. The answer to a feasibility study is almost always “yes”.
  4. A May 2002 report prepared for the National Institute of Standards and Technologies (NIST)(1) estimates the annual cost of software defects in the United States as $59.5 billion.
  5. Reusable components are three times as hard to build
  6. For every 25% increase in problem complexity, there is a 100% increase in solution 
  7. complexity.
  8. 80% of software work is intellectual. A fair amount of it is creative. Little of it is clerical.
  9. Requirements errors are the most expensive to fix during production.
  10. Missing requirements are the hardest requirement errors to correct.
  11.  Error-removal is the most time-consuming phase of the life cycle.
  12. Software is usually tested at best at the 55-60% (branch) coverage level. 
  13. 100% coverage is still far from enough.
  14. Rigorous inspections can remove up to 90% of errors before the first test case is run.
  15. Maintenance typically consumes 40-80% of software costs. It is probably the most important life cycle phase of software.
  16. Enhancements represent roughly 60% of maintenance costs.
  17. There is no single best approach to software error removal.

Who this course is for:

  • Beginners. For those of you who wish to mould your theoretical software engineering knowledge into practical approach to working in the real world.
  • Developers! This is an era where you need to be an “All rounder”. It is advantageous for developers to posses testing capabilities to test the application before hand. This will help reduce overhead on the testing team.
  • Already a Tester! You can refresh all your testing basics and techniques and gear up for Certifications in Software Testing

Course content

5 sections • 27 lectures • 1h 32m total lengthExpand all sections

Introduction7 lectures • 20min

  • 1. Introduction to the Course01:53
  • 2. The Big Picture03:11
  • 3. What is Software Testing & Why should one Test it?01:26
  • 4. What is Quality in Terms of Software Testing02:39
  • 5. What in the World Does a Tester Do?01:20
  • 6. What Makes a Good Tester?03:43
  • 7. A Few Guidelines for New Tester05:54

Different Types of Life Cycles3 lectures • 13min

  • 8. What is Software Life Cycle?04:26
  • 9. Various Life Cycle Models Explained03:29
  • 10. Software Testing Life Cycles05:13

Bugs & Errors4 lectures • 9min

  • 11. What are Bugs?04:23
  • 12. What is a Bug Life Cycle?02:33
  • 13. Cost of Fixing Bugs01:17
  • 14. Different Types of Errors00:59

Software Testing Levels, Types, Terms and Definitions3 lectures • 19min

  • 15. Different Software Testing Levels & Types12:14
  • 16. Testing Terms02:42
  • 17. Different Types of Errors04:24

Test Planning Process10 lectures • 31min

  • 18. What is a Test Strategy and its Components?02:22
  • 19. What is Test Planning?02:01
  • 20. Guidelines for Test Case Development02:59
  • 21. Test Case Described07:23
  • 22. What is a Defect and What are Some of its Categories?03:06
  • 23. How to Report Defects?04:14
  • 24. Types of Test Reports02:30
  • 25. Software Test Automation02:12
  • 26. Approaches to Automation02:53
  • 27. Choosing the Right Tools.01:17

FUNDAMENTALS OF SOFTWARE TESTING

Description of the course

The free online course «Fundamentals of Software Testing» is designed specifically for beginners in the software testing industry.

We have included into the course a maximum of useful information that will be helpful for you when starting work at the position of QA Intern. It will also help you to understand the direction of the further development in this specialty.

When you complete an online course, you will learn how to distinguish a bug from a feature, describe bug reports in the Mantis Bug Tracker system and practice to test a variety of software, games, mobile and PC applications and many more interesting things.

The course is intended for:

  • everyone who wants to get theoretical knowledge and practical experience in the software testing necessary for working at the position of QA Intern;
  • those who have already worked as a tester and want to expand their base of theoretical knowledge and practical skills;
  • specialists with the experience in any other job not related to IT but with a great desire to change the job and area of activity.

Conditions of selecting students for course

You need to successfully pass the admission test to study on the free online course “Fundamentals of Software Testing”.

Other requirements: access to the Internet, a few hours a day for training and a desire to gain new knowledge.

Pass the admission test

Access to the Internet

Time

Language

Lectures are held in English language and homework must be done in language mentioned above.

After the course completion, you will be able to:

Be guided by the main types of testing.

Prioritize and perform the correct checks while software testing according to the assignment.

Use the initial skills of manual testing into practice and describe defects correctly.

Create test documentation (checklists, test cases, test plans).

Work with different systems for tracking bugs, creating test cases, etc.

To master a new specialty and apply for the position of QA Intern in any IT company.

Course program

Lecture 1. Introductory part. What is a bug (defect)

  • Course description. Goals and program  
  • Description of the benefits of working as a tester and development paths  
  • Bug reporting rules  
  • Bug life cycle  
  • Tools for creating screenshots  
  • Reporting bugs  

Lecture 2. WEB-projects testing

  • Stages of web-projects testing  
  • The eternal circle of testing  
  • Web-page anatomy  
  • Checklist for website testing  
  • Testing layout  
  • Bugs searching in layout 
  • Cross-browser testing  
  • Web-design testing tools  

Lecture 3. Approaches to the Functional Testing

  • Web form testing  
  • Searching for functional bugs  
  • Testing techniques. Equivalence partitioning  
  • Boundary scenarios 
  • Checklist for checking site functionality 
  • Testing without requirements  
  • Informal testing techniques 

Lecture 4. Software Testing Life Cycle

  • Testing as a method of quality assurance  
  • The importance of quality software  
  • Software life cycle 
  • Testing stages  
  • Definition of a test plan 
  • Creating a test plan  
  • Testing strategies and scope of work  
  • Scrum methodology  
  • Planning/Scrum Poker is a planning tool  
  • Jira Software is an Agile project management tool 
  • Roles in the software development process  

Lecture 5. Test design. Test cases

  • The concept of test design technique  
  • Test cases and their attributes  
  • Quality criteria for test cases
  • Test design tools (TestLink, TestRail)    
  • Creating test cases for a web project  
  • Test case life cycle  

Lecture 6. Mobile App Testing

  • Modern mobile platforms  
  • Stages of mobile application development 
  • Installation of mobile applications 
  • Features of testing applications on mobile devices
  • Examples of bugs 
  • Taking screenshots on mobile devices 
  • Using iOS, Android emulators  
  • Features of reporting bug reports 

Lecture 7. Game testing

  • Game genres and mechanics  
  • Checking performance measurements in games 
  • Functional testing of games  
  • Compatibility testing  
  • Localization testing and features of the description of bugs in games 

Introduction to Test Driven Development (TDD)

About this Course

Successful developers need to not only build the right software but build it right. To know your software works correctly, you need to test each unit of code. One of the best methods for this unit-level testing is test driven development.

This course provides a detailed overview of test driven development (TDD). First, you’ll learn what automated testing is and why it is essential for building robust applications resilient to failure. You’ll explore the basics of testing, including test cases, testing levels, and the traditional release cycle. You’ll learn about TDD and its complement, behavior driven development (BDD): TDD tests individual units of code while BDD tests how these units work together. Then you’ll examine TDD in detail. You’ll explore TDD’s benefits, concepts, and popular tools, and you’ll hone your new testing skills through hands-on labs. You’ll create TDD test cases by writing test assertions and building test fixtures, and you’ll run these test cases by using the Nose testing package. You’ll then practice more advanced TDD methods such as increasing code coverage, generating and using fake data, and testing mock objects.

This course is part of multiple programs

This course can be applied to multiple Specializations or Professional Certificates programs. Completing this course will count towards your learning in any of the following programs:

  • IBM DevOps and Software Engineering Professional Certificate
  • IBM Applied DevOps Engineering Professional Certificate

WHAT YOU WILL LEARN

  • Explain the importance of testing 
  • Describe test-driven development (TDD) and explain its benefits for DevOps
  • Develop unit tests with test assertions and test fixtures and then run the tests
  • Improve unit testing through advanced TDD methods including coverage reports, factories, fakes, and mock objects

SKILLS YOU WILL GAIN

  • Test Case
  • Software Testing
  • Behavior-Driven Development
  • Automated Testing
  • Test-Driven Development

Syllabus – What you will learn from this course

WEEK1

1 hour to complete

Introduction to Testing

This module provides an overview of software testing. You will learn about the importance of testing through an example: the development of the Apollo 11 Lunar Module’s guidance system. You will discover the numerous problems that occur when developers do not test their code. Then you will explore the four levels of testing and find out when each appears in the traditional release cycle. You will learn what test driven and behavior driven development are and why both are essential for effective testing. You will discover the purpose of test cases and witness their value through a demonstration.

6 videos

  • Course Introduction3m
  • The Importance of Testing8m
  • Why Developers Don’t Test 3m
  • Testing Levels and Release Cycle5m
  • TDD and BDD4m
  • Testing Case Study8m

2 readings

  • Course Introduction2m
  • Summary & Highlights 2m

2 practice exercises

  • Practice Quiz: Introduction to Testing15m
  • Graded Quiz: Introduction to Testing30m

WEEK2

4 hours to complete

Introduction to Test Driven Development

This module provides an overview of test driven development (TDD). You will learn what TDD is and discover the three basic steps in the TDD workflow, also known as the Red/Green/Refactor workflow. You will find out why TDD is important for DevOps and all automated testing. You will also discover popular testing tools for TDD and closely examine the features of several such tools for Python. This module also covers essential methods for performing TDD. You will explore two ways to run TDD tests: Python’s built-in test runner called unittest and the more feature-rich module called Nose. You will learn what assertions are and how to use them to test code. You will discover why you need to include both happy and sad paths in your test module. You will also find out what test fixtures are and how to use them to establish an appropriate initial state for each test.

9 videos

  • Benefits of Test Driven Development4m
  • Tools for TDD 4m
  • Running Tests with Nose3m
  • Running Tests with Nose Demo 8m
  • Anatomy of a Test Case7m
  • Writing Test Assertions 8m
  • Writing Test Assertions Demo13m
  • Test Fixtures7m
  • Creating Initial State Using Test Fixtures Demo 15m

2 readings

  • Summary & Highlights2m
  • Summary & Highlights 2m

3 practice exercises

  • Practice Quiz: Introduction to Test Driven Development15m
  • Practice Quiz: Methods for Test Driven Development21m
  • Graded Quiz: Methods for Test Driven Development30m

WEEK3

5 hours to complete

Advanced Methods for Test Driven Development

This module covers advanced methods for TDD. You will learn about test coverage: why it’s important, how to increase it by using test coverage reports, and why you should keep testing even at full test coverage. You will discover the value of testing against fake data and how to use factories to generate this data. You will also explore mocking, a process for mimicking the behavior of real objects, and you will find out the testing situations for which mocking is useful. You will learn how to use two common methods for mocking: patching a function call and mocking entire objects.

10 videos

  • Test Coverage 7m
  • Running Test Cases with Coverage Demo 18m
  • Factories and Fakes9m
  • Factories and Fakes Demo 17m
  • Mocking 4m
  • Mocking with Patch9m
  • Mocking with Mock Objects9m
  • Mocking with Mock Objects Demo16m
  • Practicing Test Driven Development5m
  • Practicing Test Driven Development Demo15m

1 reading

Summary & Highlights2m

2 practice exercises

  • Practice Quiz: Advanced Methods for Test Driven Development15m
  • Graded Quiz: Advanced Methods for Test Driven Development30m

WEEK4

1 hour to complete

Final Exam and Course Wrap-Up

2 readings

  • Congratulations & Next Steps3m
  • Team & Acknowledgements1m

1 practice exercise

Final Exam45m