I'll offer up my usual recommendation for Ursula K. LeGuin's Steering the Craft, which has a lovely chapter on dialogue tags and what they do as well as some good exercises.
For myself, I find that as always it's a case of what I'm trying to do and how it does it. There are cases where dialogue tags can be done away with entirely. Sometimes it really doesn't matter who's talking, such as when you're including some crowd chatter, or running through a confused scene where everyone is talking at once. Sometimes it's obvious who's speaking from the dialogue because the people involved have very different roles: a doctor and a patient, an interrogator and a prisoner, the person in the pit of piranhas and the person being persuaded to get her out. Sometimes characters have distinctive enough voices that the speaker needs no identification.
But such a scene puts all the weight on the dialogue. There is nothing happening outside the back-and-forth talk, no information worth conveying about the character's actions or environment. They are doing nothing but stare at each other and talk. A "talking heads" scene can have its place, but its utility is limited and usually it is are quite short -- and when it isn't, it get boring fast as the characters "tell" each other stuff that would be much more effectively shown. It gives a fast-paced, choppy feel to the story, which is great when you want breathlessness, not so great when you don't.
Action tags can more evenly distribute the load; they let the characters move around, interacting with their environment, doing things, accomplishing things. But they take up a lot of page space, and can be distracting and interruptive. I have a nasty habit of letting them get out of control myself, and must prune on the rewrite back to action tags that give useful information: that ground the dialogue in the setting, accomplish something, or give insight into a character's emotional state -- by preference, all of the above. "Said" substitutes are shorter and punchier than action tags, but more visible than "said", and so like action tags they must carry their weight by giving useful information. Words like "stated" and "questioned" and "exclaimed" are almost always useless baggage. Volume control words -- whispered, muttered, murmered -- are better, when appropriate, because they ground the "sound" of the dialogue in the reader's head (although shouted, yelled, bellowed need a little more caution; if there's an exclamation point the reader will safely assume the character is yelling, so make sure the double emphasis is warranted.) I have a fondness for noise tags (hissed, barked, snapped) but I pretty much always try to read the attached dialogue aloud. Ever tried to snap a three-syllable word or hiss a sentence with no "s"'s? Yeah, it does not work out. Those words are great when they give the reader a sense of the emotions and tone that the dialogue itself can't, but put them in the wrong place and they're brake lights on the interstate leading to a ten-car pileup.
And finally there's said, quiet, solid, and unappreciated. Said is a simple little word. It breaks up a breathless exchange. It tells you who's speaking when that's not clear. And it does so without drawing attention to itself, without taking away from the narrative. Just a little pause, a breather, and then back to the next speaker. Can it be overused? Sure. But often, it's exactly what you need.
As so often happens with writing, there's no right or wrong answers here, only the technique that works best for the dialogue you're writing now, for the speed you need it to happen at and for the weight you want the dialogue to carry.