In the context of software development, specification document is the result of the work of a project management team, based on the client’s requirements. There are several types of specification documents: 

A requirement specification describes the final product or service as fully as possible. It includes a description of essential functionalities, behavior, and other features. In other words, it is an early stage batch of documented requirements concerning the whole project. A kind of requirement specification is a functional specification which may include a block of functional diagrams. 

A design specification describes the main appearance characteristics or aim of the final product. 

A product specification describes the way the final product can be built.

A test specification, unlike other specifications types, could be made when the product is already developed. It consists of a batch of test cases needed to determine if the requirements of other specifications have been fulfilled.