- The tests themselves are written in xUnit, optionally with Shouldly.
- The UI testing framework we use is Selenium, extended with Atata.
- Chrome needs to be installed on your machine, the latest version. If you also want to test other browsers then install the latest version of each of them:
- For Edge only the new Chromium-based Edge is supported that you can download from here.
- For Firefox it needs to be installed too.
- For IE you'll need to do some manual configuration in the browser.
- Browser driver setup is automated with Atata.WebDriverSetup.
- There are multiple recording tools available for Selenium but the "official" one which works pretty well is Selenium IDE (which is a Chrome/Firefox extension). To fine-tune XPath queries and CSS selectors and also to record tests check out ChroPath (the Xpath cheat sheet is a great resource too, and XmlToolBox can help you with quick XPath queries).
- Accessibility checking can be done with axe via Selenium.Axe for .NET.
- HTML markup validation can be done with html-validate via Atata.HtmlValidation.
- When testing e-mail sending, we use smtp4dev as a local SMTP server.
- Monkey testing is implemented using Gremlins.js library.
- Visual verification is implemented using ImageSharpCompare.
- Ben.Demystifier is used to simplify stack traces, mainly around async methods.
- Security scans are done with Zed Attack Proxy (ZAP).