This is a practical oversimplification which will be right most of the time. For more detailed information see Mastery of the Tenses!
"have been doing" / "has been doing"
For focusing on Activity not Result when using the Present Perfect.
- Have you been waiting long?
- (I am worried you are angry because of the activity of waiting.)
- I have been running all morning, that's why I am sitting down now.
- (I am tired because of the activity of running.)
- You have been working in the garden all morning, you need to get changed!
- (Your clothes are dirty because of the activity of gardening.)
For activities, not states, that are still continuing.
- I have been working all day.
- How long have they been talking on the phone?
- She has been studying English for 3 years.
For recent finished events, but again to focus on the activity.
- I’ve just been talking to your stupid friend for an hour.
- You’ve been running around all day, take a break.
- We’ve been looking for you!