non functional testing examples in software testing