An assembly that can access the Friend type(Visual Basic) or internal type (C#) member information are referred to as a “friend assembly“.
You don’t have to mark types and members as public in order for them to be accessed by other assemblies if you identify an assembly as a friend assembly.
Friend assembly is very relevant in the following programming situations,
Adding new features to a class library which must have access to existing internal and external members in C# and Friend in Visual Basic.
In unit testing cases when unit test code runs in a separate assembly module and needs access to members in the assembly to be tested when they are marked as Friend in Visual Basic or internal in C#.