Skip to content
Vladimir Turov edited this page Jan 18, 2021 · 1 revision

Intro

A Hyperskill project is a set of stages from a technical point of view, where each stage contains a description and tests to check the correctness of the code written by the student.

It is recommended to read the algorithm to write an awesome project on Hyperskill before writing the tests for the stages. Tests are the last stage of project creation and you should coordinate the descriptions of the stages with the Hyperskill team before doing so.

About project

When writing a project, the student has no restrictions on the name of classes, on the name of functions, on classes to be implemented. Theoretically, the student can write the whole project code inside one function but considering the complexity of some projects, it is difficult to achieve. Often, students create a dozen files to solve a project, and the main file has one line left.

Testing methods that rely on the existence of some functions and classes are not applicable here (for example, unit testing). We don't know what functions and what classes the student uses, we can't force the student to implement special classes with special functions so that we can test them with a large number of unit tests.

These functions and classes that students should implement prevent them from inventing their own solution for the project, and tell them the right solution. And to become a programmer you have to learn how to come up with solutions yourself.

About testing

So, lyrics aside, as you may have noticed, all Hyperskill projects are tested using the black-box method. Each test runs the main file, it is executed, and while it is executed or thereafter it is verified that everything has gone well. We will discuss the different methods of checking in the following sections.