Nowadays, the importance of software testing is imperative in the software industry since software becomes more and more complicated. Although the concept of the Test Pyramid gives a great strategy of grouping tests based on different granularity, it’s still difficult to practice it properly in software development. In fact, understanding how to write good tests is as a significant craft as understanding how to write clean and efficient code, which also needs to care about the maintainability. Learning the skill of writing good tests requires lots of practices and introspection. This talk will share my experience of learning software testing and then discuss how to involve testing perspective in learning software design. And throughout this talk, I will demonstrate and explain the cases of my testing implementation in practice by using some open-source testing frameworks.