Why do production servers and test servers have to be similar?

Production servers and test servers should be similar for the simple reason of guarantying the accuracy of test results. If the servers are similar in nature, the defects identified during testing are more likely to reflect real-world cases that users may encounter. This ensures also that the defects are detected in the early phases and fixing them costs a reduced amount of money. Furthermore, performance tests are best conducted in test environments that are as close to the production systems as possible ensuring that the application can perform effectively under real-world conditions. It is also worth noting that similar environments build trust, confidence and satisfaction, as it provides a clear visibility into the product's functionalities and risks.