# Overview and usage

GstValidate is a tool that allows GStreamer developers to check that the GstElements they write behave the way they are supposed to. It was first started to provide plug-ins developers with a tool to check that they use the framework the proper way.

GstValidate implements a monitoring logic that allows the system to check that the elements of a GstPipeline respect some rules GStreamer components have to follow to make them properly interact together. For example, a GstValidatePadMonitor will make sure that if we receive a GstSegment from upstream, an equivalent segment is sent downstream before any buffer gets out.

Then GstValidate implements a reporting system that allows users to get detailed informations about what was not properly handled by the elements. The generated reports are ordered by level of importance from "issue" to "critical".

Some tools have been implemented to help developers validate and test their GstElement, you can have a look at the command line tools section to find more information.

On top of that, the notion of a validation scenario has been implemented so that developers can easily execute a set of actions on pipelines to test real world interactive cases and reproduce existing issues in a convenient way.