I'm putting together BDD inspired unit tests for the API part of my application. (Yeah, I know, BDD is supposed to be about the domain and talking to the suits, but I'd rather try out BDD on something less visible first)
Ordinary use. The developer uses the API methods with ordinary parameter values.
Extreme use. The developer invokes the API with unusually large/small parameters. E.g. the zip() method is passed a 2 GB file.
API abuse. The developer invokes the API with crazy parameters--what crazy programmer would pass in a date to an integer parameter, right?--parameters are forgotten, etc.
Malicious hacking. The developer doesn't care what the API is intended to do, but instead is looking for ways to execute arbitrary code. Tests would include JavaScript, SQL just to see if we can get them to execute anywhere.
Are there any other scenarios I should consider?