There are a few things to consider with this setup:
- zebra danios are very active swimmers and tend to need a lot of horizontal space to really feel comfortable
- zebra danios are also naturally schooling and will likely be more comfortable in a larger group. (Usual recommendation is at least 5 or 6.)
- your catfish appear to be some variety of Corydoras (possibly Corydoras aeneuspaleatus?) so I don't imagine they'll grow much larger than their current size
- two cory cats don't necessarily need more than 10 gallons of water volume, but I do think that they would benefit from a tank with a larger footprint (more floorspace)
- cory cats are another fish that prefers to be in groups; normally it's recommended to have at least 4-6 although having a pair is definitely better than just having one alone!
- regardless of whether or not you decide to move them to a different tank, if your catfish no longer fit in their cave/hiding place, I would recommend replacing it and/or adding a larger one that they will be able to fit into as soon as you are able
- the type of snail you have may be significant; some snails stay relatively small while others (like "apple" or "mystery" snails) can get quite large and have a fairly high bio-load
To sum it up for this specific setup: You probably have enough water volume for the fish you currently have, but may not have enough horizontal space. If you decide to upgrade your tank, you may want to consider moving up to a 20 gallon and adding a few more fish of each species so that they can school together.
In the general case, it can be a bit more tricky and there are several factors that need to be considered.
- the fish should have room to turn around comfortably (some fish have a very large turning circle)
- there should be enough room to have plenty of open swimming space for any active swimmers
- there should be enough room to have ample hiding places for fish that need them
- there should be enough decor/hardscaping for territorial fish to "stake their claims" as needed
- there should be enough water volume and filtration that parameters can be kept in line (ammonia = 0, nitrites = 0, nitrates < 20ppm) and tank can be kept generally healthy with an amount of maintenance that you are comfortable with
- fish that have inefficient digestive tracts (like goldfish) will produce more waste and may "outgrow" their tanks sooner (at smaller sizes) than fish with more efficient digestive tracts
- some fish prefer to school as juveniles but become territorial or aggressive as adults and/or during spawning; this is another way in which they can "outgrow" their tank
- some fish require different water conditions as juveniles than adults and may outgrow their tank that way
In general, if you are finding that water conditions are rapidly deteriorating then it is likely that the tank is overstocked and/or the inhabitants are being overfed. Overstocking could mean that there are too many fish for the tank and/or that the fish in the tank have gotten too large. Aggression may be another sign that the tank is overstocked. Or it could be stocked with incompatible tankmates. Frequent/repeated outbreaks of disease may be another indicator. If fish seem stressed (loss of colour, loss of appetite, loss of energy, not displaying normal behaviour, etc.), it's likely a sign that something is amiss. That something isn't necessarily that the tank is too small, but it could be a possibility depending on the situation.