Comment Re:What did it do? (Score 1) 38
I was working on a twenty-year-old Java project which had very few unit tests last year. In a couple of days with Copilot I added tests for a couple of hundred classes; for the simple ones it generated the entire test and I just needed to run it, for more complex classes it needed more help since it didn't understand things like not trying to mock final classes. The tests also found a handful of bugs that had been in the code for years so I fixed them.
Last week I had to write a test for old C++ code which maps between internal and external error codes because the test didn't exist and we were changing the mappings so I didn't want to break any mappings which weren't supposed to change. So I was able to cut the switch statement from the mapping code and past into the test then have Copilot convert the switch into a map of inputs to outputs so I could test every possible mapping by looking up the result in the map or checking for the default code otherwise (it also wrote most of that part but didn't get it all correct).
There's a modest amount of Copilot code in the actual released software but Copilot does tend to screw up by calling methods which don't exist and things like that which have to be fixed. So it rarely produces a perfect result. I suspect it would work better if it was a project which had been developed using Copilot as maybe then it would have created those methods that it later expects to call.
Another thing it's good at is taking Java code and converting it from looping through a collection into using a stream instead. I swap languages all the time and can never remember all the different stream methods in Java so I just write it as a loop and then tell Copilot to turn it into a stream.
Mostly it's taken out a lot of the work that junior developers might have done in the past. So we're allowing senior devs to do more work in the same time but eliminating the jobs for people who would progress to being senior devs in the future.