I work as a research assistant on a few projects for PhD candidates at my school. One of the projects involves optimizing a piece of code that does some of their analysis. I record my hours and get paid a wage on completion of the project.
I'm often faced with a substantial chunk of downtime: at this stage, I need to run benchmarks on "realistic data" that can take anywhere between 10 minutes and 2 hours. I have my own unit tests and they run quickly, but there is a point where more time-intensive runs are necessary.
When I have other work to do for this client, I do it while a benchmark runs. Sometimes I run out. Is it ethical for me to record time spent passively monitoring benchmarks (keeping an eye on memory and CPU usage, checking for errors, applying fixes and restarting when necessary) on my hours?
I can't let them run entirely unattended, so I am "at work" to some degree. If I were in an office, I would consider it perfectly reasonable to record the hours at my desk doing the same thing on the clock, given that it's the only thing that I can do right now. I worked in QA in the past, and it was normal for me to spend hours waiting for the test harness to complete while debugging it. However, since I'm responsible for tracking all of my own time, it seems wrong to consider time that's 70% StackOverflow as billable hours.
What's the right thing to do?