functional testing vs non functional testing examples