abstraction and testing lab solution