As SF Admin, I am working on a data access project which implement the different access levels (e.g. OWD, Sharing Rules, Roles and Profiles) in Salesforce. I'm ready to refresh the Partial Copy sandbox for QA to test the changes. However, the team consulted with the IT architect about the testing approach and the architect states that the best IT practice should not test against organization data and should only create test data for testing. From my understanding that if I use partial copy sandbox and some data will also be replicated from production and it can be used for testing. What's the right approach for QA to perform the testing?
Unit tests should construct all the data it needs. This makes them less fragile and helps verify regression. For QA, though, it's preferable to use a copy of real data-- you want to make sure your code will work with your data.
Real data is broken, missing values, odd and old data, etc. A thorough QA test should try to break features in a way that unit tests cannot, and should not, attempt to do. It's a lot harder to write unit tests for fringe cases than it is for QA to try and do random things that are unexpected with possibly bad data.