what is a gray box 
gray box refers to the testing of software where there is some limited knowledge of its internal workings gray box testing is an ethical hacking technique where the hacker has to use limited information to identify the strengths and weaknesses of a target s security network understanding gray boxesgray box is the hybrid of white box testing where the tester examines the internal logic and structure of the software s code and black box testing where the tester knows nothing about the software s code to understand gray box testing we must first understand black box testing and white box testing black box testing looks at nothing more than inputs by the user and what output the software produces given those inputs black box testing does not require any knowledge of programming language or other technical details it is a type of high level testing used in system testing and acceptance testing software engineers require a software requirement specification srs document to perform black box testing this testing takes an end user perspective where the black box tester does not know how the outputs are generated from the inputs white box testing requires in depth knowledge of the techniques and platforms used to build software including the relevant programming language it is a type of low level testing used in unit testing and indication testing software engineers need to understand the programming language used to create the application so they can understand its source code white box testing s primary purposes are to strengthen security examine how inputs and outputs flow through the application and improve design and usability when a white box tester does not get the expected output from a given input the result is considered to be a bug that needs to be fixed 