I have searched a few things about the differences and relations between test plan, test suite and test case and I found out the following picture as a summary:
Is my understanding fully right? Is there any important thing I have missed?
Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It only takes a minute to sign up.Sign up to join this community
I think your understanding is fundamentally correct.
A test plan is just that -- a test plan. It is how you plan to go about testing an application or change to an application as a whole. The plan might include a description of what scenarios you need to cover, whether they will be automated tests or manual tests, whether you will do performance testing, in what environments (os, systems, browsers, etc) the tests will cover, and so on.
Wikipedia says this about a test plan:
A test plan is a document detailing a systematic approach to testing a system such as a machine or software. The plan typically contains a detailed understanding of the eventual workflow.
A test suite is a collection of test cases. Think of a test case as a file on disk, and the suite is a folder (though they might not be actual folders and files). A test suite is a way to organize all of your individual test cases.
Wikipedia says this about a test suite:
...a test suite, less commonly known as a validation suite, is a collection of test cases that are intended to be used to test a software program to show that it has some specified set of behaviours.
A test case is what is actually performed during testing. A test case could be a single automated test, or it could be instructions for performing a manual test.
Wikipedia says this about a test case:
A test case, in software engineering, is a set of conditions under which a tester will determine whether an application, software system or one of its features is working as it was originally established for it to do
The usual definition of a test plan is detailed here.
The image you've posted, however, is exactly how Microsoft Test Manager is organized. You create a "test plan" (in their terminology this means the tests to be executed) for a certain release or sprint. In a test plan, you may have one or more test suites, which contain test cases. (Normally grouped in a suite by a certain criterium, according to the test lead's vision or strategy.)
So yes, that chart is correct in its high-level depiction of the test executables. If you're bound to a tool, you're kind of enforced to use a workflow, Selenium IDE uses this suite-test case division too. But even when using Excel you'll probably have a test suite per sheet (or per file) which contains multiple test cases.
Using a Test Suite breaks up the many Test Plans to many Test Cases relationship.
So you can have a Test Plans have many Test Suites (a subset grouping of Test Cases) which has many Test Cases.
Hence, a Test Case could be included within many Test Suites within Test Plan for application X.
For example: Application X's Test Plan would include a Test Suite for Sprint 123 which consists of a subset of Test Cases for the stories within Sprint 123.