  A common and important problem arising in the study of networks is how to
divide the vertices of a given network into one or more groups, called
communities, in such a way that vertices of the same community are more
interconnected than vertices belonging to different ones. We propose and
investigate a testing based community detection procedure called Extraction of
Statistically Significant Communities (ESSC). The ESSC procedure is based on
$p$-values for the strength of connection between a single vertex and a set of
vertices under a reference distribution derived from a conditional
configuration network model. The procedure automatically selects both the
number of communities in the network and their size. Moreover, ESSC can handle
overlapping communities and, unlike the majority of existing methods,
identifies "background" vertices that do not belong to a well-defined
community. The method has only one parameter, which controls the stringency of
the hypothesis tests. We investigate the performance and potential use of ESSC
and compare it with a number of existing methods, through a validation study
using four real network data sets. In addition, we carry out a simulation study
to assess the effectiveness of ESSC in networks with various types of community
structure, including networks with overlapping communities and those with
background vertices. These results suggest that ESSC is an effective
exploratory tool for the discovery of relevant community structure in complex
network systems. Data and software are available at
\urlhttp://www.unc.edu/~jameswd/research.html.
