Ability to have an automated way to ensure that your application works on an end-to-end basis and it’s safe to deploy. Potentially a massive pain Potentially a massive life saver It all depends on how you approach it, it’s about the decisions.
- Know when to break the rules. He can, he has experience. - Personally, I prefer to focus on what works
var driver = new FirefoxDriver(new FirefoxProfile());driver.Navigate().GoToUrl("http://www.google.co.uk");IWebElement searchbox = driver.FindElement(By.Name("q"));searchbox.SendKeys("ASP.net");searchbox.SendKeys(Keys.Enter);var results = driver.FindElement(By.LinkText("Get Started with ASP.NET & ASP.NET MVC : Official Microsoft Site"))Assert.IsNotNull(results);
Testing pipeline• Outside in, driven from requirements• TDD to drive inside aspects once UI automated• Idealistic.. Doesn’t work. Expensive! (Will define this later)
Real World... • Bring flexible to change • Regression testing • Pushing forward, rapidly. • Protecting your own arsehttp://4.bp.blogspot.com/-v6mzllgkJlM/Tm-yiM4fPEI/AAAAAAAAE34/7-BEetlvyHo/s1600/matrix1.jpg
• Focus on solving a pain you have.• Automated UI Testing is one way, which works, but it’s not the only way.• Hire a manual tester? Short-term gain, long term pain.
Pain you may have in the future Depends on the system / scenario. UI Tests may not be the best way
Spike and StabiliseGet something out, get feedback, make it right.
It’s not all about code quality! Should not be the driving force
• Driving quality of your code via UI tests will kill your motivation for the entire project.• IT HURTS! Been there, done that!
• Focus on what will help you deliver value• Automated tests are expensive.• How do you define value?• Justify cost by delivering faster? Less bugs? Company loses less money?
Are “bugs” really bugs if they don’tcost the company money nor annoy users?
Developers love making things complexhttp://xkcd.com/974/
Internet ExplorerSetUp : System.InvalidOperationException : Unexpected error launching Internet Explorer. Protected Mode must be set to the same value (enabled or disabled) for all zones. (NoSuchDriver)