Studying Fine-Grained Co-Evolution Patterns of Production and Test Code