files 3. Become a Git historian 4. Look for documenta(on 5. Understand your boundaries 6. The daily boy scout 7. Don’t repeat yourself 8. Sta(c analysis tools 9. Understand your tests 10.Extract features 11.Adopt a few core ideas
method, technology, computer system, or applica(on program, "of, rela(ng to, or being a previous or outdated computer system." OUen a pejora(ve term, referencing a system as "legacy" means that it paved the way for the standards that would follow it. This can also imply that the system is out of date or in need of replacement. 1. DEFINITION AND MINDSET
in mind: 1. Is there any documenta(on at all? 2. Is there good commentary on the code? 3. Does the names of things make sense? 4. Are the system use cases are documented? 5. Is there someone in the team that understand the system?
keep in mind: Document everything you learn. Keep documenta(on close to the code, simple is becer. You must understand the design/architecture. Once you understand something refine it's documenta(on.
files Iden(ty the Subjet/System Under Test (SUT) Understand the test setup and dependencies And: Find out the test coverage Single Responsibility Principle also applies to tests Further reading: There are Test Smells
hard, consider extrac(ng features into a new app When: Lack of documenta(on or outdated Single test containing mul(ple SUT Low coverage Hard test setups Slow test suite How: Create a high level collabora(ve test suite, check Specifica(on by Example Bring enough code to make tests pass, iterate