Most people use "package abc". There are some exceptions.
1) In the standard library, any package that "testing" itself depends
upon can't use "package abc". For example, "testing" imports "bytes",
so "bytes" can't import "testing". That means that all the "bytes"
package tests have to be in package "bytes_test" instead. This
applies to several other standard library packages, but only matters
for the standard library itself.
2) Examples, as opposed to tests, are normally written as the same
kind of code that a user of the package would write. So examples are
normally in "abc_test" and import "abc" and write "abc.F()".
3) Some people want to explicitly write black box tests that don't
depend on any internal details of the package. Those people use
"abc_test" to ensure that they don't refer to unexported names.
Ian