Like in English, many verbs make their perfect tense with hebben.
Zij heeft gelezen – She has read.
Ik heb gegeten – I have eaten.
Unlike in English, however, some verbs form the perfect tense with zijn only, and there’s another group which forms the perfect tense with both zijn and hebben, depending on a context.
The verbs that go only with zijn denote either a change of place or a change of state.
Change of place:
De trein is vertrokken. – The train has departed.
Zij zijn gekommen. – They have come.
De trein is gestopt. – The train has stopped.
Zij zijn ontsnapt. – They escaped. (ontsnappen – to escape)
Change of state:
Hij is gestorven. – He has died. (stervern – to die)
Zij is geslaagd. – She succeeded. (slagen – to succeed)
NOTE:
Blijven also always makes its perfect tense with zijn!
Ik ben thuis gebleven.
The verbs that sometimes have zijn and sometimes hebben denote means of locomotion. E.g.: lopen, rijden, fietsen
1. When a destination is mentioned, these verbs go with zijn:
Ik ben naar de stad gelopen. – I walked to town.
Hij is naar huis gereden. – He drove home.
Wij zijn naar Rotterdam gefietst. – We cycled to Rotterdam.
2. When the emphasis is on the locomotion itself
and no destination is mentioned, hebben is used.
Zij heeft vandaag veel gereden. – She drove a lot today.
Heeft u gefietst of gelopen? – Did you cycle or walk?
NOTE: zijn always has zijn as it’s auxiliary verb in perfect tense!