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.
The best programmers are up to 28 times better than the worst programmers.
New tools/techniques cause an initial LOSS of productivity/quality.
The answer to a feasibility study is almost always “yes”.
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.
Reusable components are three times as hard to build
For every 25% increase in problem complexity, there is a 100% increase in solution
complexity.
80% of software work is intellectual. A fair amount of it is creative. Little of it is clerical.
Requirements errors are the most expensive to fix during production.
Missing requirements are the hardest requirement errors to correct.
Error-removal is the most time-consuming phase of the life cycle.
Software is usually tested at best at the 55-60% (branch) coverage level.
100% coverage is still far from enough.
Rigorous inspections can remove up to 90% of errors before the first test case is run.
Maintenance typically consumes 40-80% of software costs. It is probably the most important life cycle phase of software.
Enhancements represent roughly 60% of maintenance costs.
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
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
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