A quality assurance engineer creates tests to find any problems with software before the product is launched. They identify and analyze any bugs found during testing and document them. They also must to pay very close attention to detail and coach their team on managing testing tools, reporting results, and motivating process improvement. A normal work day for a quality assurance engineer includes developing new tests to run, running the tests, and documenting the results; if any defects are noted the quality assurance engineers will need to collaborate with the software developers to find a fix and patch the program. Once the defect has been patched, they will need to run the test again to make sure there are no new bugs and to make sure the defect found has been corrected.Quality assurance engineers typically work in an office setting during standard business hours. They typically need to have at least a bachelor's degree in computer science, as well as experience with computer programming languages such as, Java, C++, Python, SQL, and XML; they must also have experience with Microsoft Windows and Linux. Many employers require five to 10 years' experience with software development or testing.