I thought it used data. Please explain to me how it works.
Depends how you use it. If you text through the Google Voice app only, it uses data. If you have those Google Voice texts forwarded to your regular text message number, it uses your text plan.

In regards to minutes, when you make phone calls, you can configure Google Voice to display your GV number when you make outgoing calls on some or all of your otgoing calls. When you dial through your traditional dialer, it'll use your minutes.

If someone calls you back through your GV number and you have it setup to forward to your traditional cell number, it'll use your minutes.

However, you don't have to have your Google Voice number forwarded to your traditional cell number. If you make or receive calls through an app like Groove IP or Talkatone, it'll use data only.

I have both apps and prefer Groove IP. However, I like Skype best and also have a Skype plan with Unlimited calling and Skype number.
When I call through Skype it uses data only and when people receive my call, it shows my GV number on their caller ID.

I have calls to GV forwarded to my Skype number. When someone calls me using my GV number, it forwards to Skype and uses data only when I answer.