Consider a BFS starting from source $s$.
Suppose,
$s$ has two children: $x$ and $y$ and there is also an edge: $(x,y)$
The BFS tree contains $(s,x)$ and $(s,y)$.
Both $x$ and $y$ lie at the same BFS level:
$d(s,x)=d(s,y)=1$
The edge $(x,y)$ is an edge of the original graph but is not a BFS-tree edge.
Also, neither $x$ nor $y$ is an ancestor of the other.
Therefore, a non-tree edge in BFS does not necessarily connect an ancestor and a descendant.
In fact, for an undirected graph, an edge can connect vertices on:
- the same BFS level, or
- two consecutive BFS levels.
Thus the statement is false.