B1–B2

Present Perfect Test — English Grammar Exercises

"I've lived here for ten years" or "I lived there in 2010"? One 30-question quiz covers every present perfect pattern.

  1. I ___ the report yet — I'll finish it tomorrow.

    • haven't finished
    • didn't finish
    • not finished
    Show answer

    haven't finished

    Present perfect negative — 'haven't + past participle'.

  2. My parents ___ to New York twice — they really like it there.

    • have been
    • have gone
    • went
    Show answer

    have been

    'Have been' = visited and returned. 'Have gone' would mean still there.

  3. Have you ___ driven a truck?

    • ever
    • never
    • before
    Show answer

    ever

    'Ever' goes before the past participle in questions about life experience.

  4. The parcel hasn't arrived ___.

    • yet
    • already
    • before
    Show answer

    yet

    Don't use 'already' in negatives. 'Yet' at the end of a negative — something expected to happen.

  5. I gave my teacher the essay last week, but she ___ marked it.

    • still hasn't
    • hasn't still
    • has still not
    Show answer

    still hasn't

    'Still' goes before 'hasn't / haven't' — 'still hasn't marked it'.

  6. My car has ___ broken down — please send a mechanic.

    • just
    • before
    • yet
    Show answer

    just

    'Just' goes before the past participle — 'has just broken down'.

  7. David has worked in Mexico ___ ten years.

    • for
    • since
    • ago
    Show answer

    for

    Use 'for' with a period of time — 'for ten years'.

  8. I haven't seen her ___ Tuesday.

    • since
    • for
    • ago
    Show answer

    since

    Use 'since' with a specific point in time — 'since Tuesday'.

  9. I ___ married for ten years.

    • 've been
    • am
    • am being
    Show answer

    've been

    For a situation that started in the past and continues now, use the present perfect — not present simple.

  10. We've had four holidays ___ this year, and it's only September!

    • so far
    • ago
    • since
    Show answer

    so far

    'So far' = 'up to now' — fits an unfinished period like 'this year'.

  11. John has worked here since he ___ school.

    • left
    • has left
    • leaves
    Show answer

    left

    The verb after 'since' is usually in the past simple — 'since he left'.

  12. That was the worst film I ___ seen!

    • 've ever
    • ever
    • never
    Show answer

    've ever

    Superlative + present perfect with 'ever' — 'the worst film I've ever seen'.

Present Perfect Test: Five Patterns in One 30-Question Quiz

The present perfect is one of the tense forms most frequently flagged in learner writing at B1–B2 level. Analysis based on the English Profile Programme places present perfect errors among the top verb-tense confusions at intermediate level, often exceeding 10% of all tense-related mistakes in a given text. Part of the difficulty is that 'present perfect' is not one rule but a family of related uses: talking about experience, describing an unfinished period, choosing between the present perfect and the past simple, and deciding between the simple and continuous aspect. This 30-question test reviews all five patterns side by side — six questions each on experiences, situations up to now, present perfect vs past simple, present perfect continuous, and present perfect simple vs continuous — so learners can see directly how the choice of tense depends on the time expression and the type of verb in each sentence, not on a single fixed rule.

Talking About Experience: Have You Ever...?

The present perfect describes life experience without stating exactly when something happened. Word order and companion words matter as much as the verb form: 'ever' goes before the past participle in questions, 'yet' (not 'already') appears at the end of negatives, 'just' goes before the past participle for something very recent, and 'still' goes before 'hasn't/haven't', not after.

Have you ever driven a truck? (experience question)
I haven't finished the report yet — I'll finish it tomorrow. (not 'already')
I gave my teacher the essay last week, but she still hasn't marked it. ('still' before 'hasn't')
My car has just broken down. ('just' before the past participle)

Situations That Started in the Past and Continue Now

When a state or habit began in the past and is still true, English requires the present perfect, never the present simple — 'I've been married for ten years', not 'I am married for ten years'. 'For' introduces a duration, 'since' a starting point, and 'so far' means 'up to now' within an unfinished period like 'this year'.

David has worked in Mexico for ten years. (duration)
I haven't seen her since Tuesday. (starting point)
We've had four holidays so far this year, and it's only September! (unfinished period)
John has worked here since he left school. (past simple after 'since')

Present Perfect or Past Simple?

The deciding factor is whether the time period named in the sentence is finished or still open. 'Last week' and 'ago' are closed, finished periods, so they take the past simple. 'This year' and questions with 'when' about a specific point take either the present perfect (to introduce news) or the past simple (to give the specific detail).

Jane passed her driving test last week. (finished time)
Caroline's bought a lot of clothes this year. (year still open)
Julian has passed his driving test. He took it on Wednesday. (news, then detail)
"George has arrived." "Really? When did he get here?" ('when' → past simple)

Present Perfect Continuous: Duration and Present Results

The present perfect continuous (have/has been + -ing) emphasises the duration of an activity or explains a visible present result, and is common with 'how long' questions.

We've been waiting for about an hour. (duration)
How long have you been living in this neighbourhood? ('how long' question)
"Your clothes are all wet!" "I know — I've been washing the car." (explains the present result)

Present Perfect Simple or Continuous?

Stative verbs like 'know' never take the continuous. Sentences that count how many times something happened, or use 'always', also prefer the simple form even when an activity has been repeated.

I've known him since we were children. (stative verb — never continuous)
He never answers his phone. I've called him six times! (counted number of times → simple)
Jane's been fixing the computer all morning — and it's still not working. (unfinished activity → continuous)

Common Mistakes in the Present Perfect Test

✗ I haven't finished the report already. → ✓ I haven't finished the report yet. ('already' is not used in negatives)
✗ I gave her the essay, but she hasn't still marked it. → ✓ she still hasn't marked it. ('still' comes before 'hasn't')
✗ I'm married for ten years. → ✓ I've been married for ten years. (continuing state needs the present perfect)
✗ John has worked here since he has left school. → ✓ since he left school. ('since' + past simple)
✗ "When has he got here?" → ✓ "When did he get here?" ('when' asks for a specific past time)
✗ I've been knowing him for years. → ✓ I've known him for years. ('know' is stative — no continuous form)

Frequently Asked Questions

What is the present perfect used for?

The present perfect (have/has + past participle) links the past to the present in three main ways: talking about life experiences without saying exactly when ('I've been to Japan'), describing situations that started in the past and continue now ('I've lived here for ten years'), and reporting a past action whose result is visible now ('I've lost my keys — I can't get in'). What all three uses share is that the exact time of the action is either unknown, unimportant, or still relevant to the present moment. As soon as a specific past time is named or implied, English switches to the past simple instead.

What is the difference between the present perfect and the past simple?

Use the past simple for actions at a specific, finished time in the past: 'Jane passed her driving test last week.' Use the present perfect when the time period is still open or unspecified: 'Caroline's bought a lot of clothes this year' (the year isn't over). Time expressions are the clearest signal — 'yesterday', 'last week', 'in 2019' and 'ago' all take the past simple, while 'so far', 'this year', 'ever' and 'since' typically take the present perfect. In news-style reporting, speakers often introduce an event with the present perfect and then switch to the past simple for the specific details: 'Julian has passed his driving test. He took it on Wednesday.'

When do I use 'for' and when do I use 'since'?

'For' introduces a length of time — a duration, counted in minutes, days, years or any other unit: 'for ten years', 'for a long time', 'for ages'. 'Since' introduces a starting point — a specific moment when a situation began: 'since Tuesday', 'since 2015', 'since he left school'. A useful test is to ask whether the word after the preposition answers 'how long?' (use 'for') or 'from when?' (use 'since'). Note that the clause after 'since' is normally in the past simple, not the present perfect: 'since he left school', not 'since he has left school', even though the main clause stays in the present perfect.

Why can't I say 'I've been knowing him for years'?

'Know' is a stative verb — it describes a mental state rather than an action, so English does not normally put it in a continuous form. The correct sentence is 'I've known him for years', using the present perfect simple, not the continuous. The same rule applies to other stative verbs commonly tested alongside the present perfect, such as 'love', 'believe', 'understand' and 'belong'. Continuous forms (present perfect continuous included) are reserved for dynamic actions that can be seen as ongoing, like 'wait', 'work', 'read' or 'repair' — verbs where 'in progress' makes logical sense.

Also Practice

Last updated: · Satori Editorial

Not sure where to start?

Take the free level test — 32 questions, about 7 minutes, with your score shown immediately. Leave your email to get study tips and updates.

Take the level test