# Test Practices

> Some guidelines and recommendations on testing from the Selenium project.

URL: https://www.selenium.dev/documentation/test_practices/
Site index: https://www.selenium.dev/llms.txt

---

A note on "Best Practices": We've intentionally avoided the phrase "Best
Practices" in this documentation. No one approach works for all situations.
We prefer the idea of "Guidelines and Recommendations." We encourage
you to read through these and thoughtfully decide what approaches
will work for you in your particular environment.

Functional testing is challenging to get right for many reasons.
As if application state, complexity, and dependencies do not make testing difficult enough,
dealing with browsers (especially with cross-browser incompatibilities)
makes writing good tests a challenge.

Selenium provides tools to make functional user interaction easier,
but does not help you write well-architected test suites.
In this chapter, we offer advice, guidelines, and recommendations
on how to approach functional web page automation.

This chapter records software design patterns popular
amongst many of the users of Selenium
that have proven successful over the years.

---

Section pages:

- [Design patterns and development strategies](https://www.selenium.dev/documentation/test_practices/design_strategies/index.md)
- [Overview of Test Automation](https://www.selenium.dev/documentation/test_practices/overview/index.md)
- [Types of Testing](https://www.selenium.dev/documentation/test_practices/testing_types/index.md)
- [Encouraged behaviors](https://www.selenium.dev/documentation/test_practices/encouraged/index.md): Some guidelines and recommendations on testing from the Selenium project.
- [Discouraged behaviors](https://www.selenium.dev/documentation/test_practices/discouraged/index.md): Things to avoid when automating browsers with Selenium.
