It's really hard to find what tools, libraries, automated testing, etc. are used by SE's team. Nothing has been posted officially on SE's main site. But, I did found few interesting posts, and a video that I would like to share here which covers few of the OP's question.
Reddit's 40-page long post "We keep Stack Exchange / Stack Overflow / Server Fault running - Ask us anything!" is by far the best post I ever read and all the comments/replies are given by SE's team members.
Here is what Nick Craver said on Reddit user "andygrunwald" question:
How does your QA stack look like? Unit and integration tests plus User
acceptance tests with selenium / BDD?
Teams differ here on testing. The Careers team actually runs unit
tests for example, where Core does not. They used to run Selenium as
well, but that was dropped a while ago as not being worth it to
maintain. It's a running joke that if you really love TDD, you likely
wouldn't be happy on the Core team :)
Here is what Geoff Dalgas says about "Our production build performs the following tasks:"
Compiles the code including minification of JS and stops if there are any build failures
Copies the new assemblies to two of our servers, these run our meta sites meta.stackexchange and meta.stackoverflow
Each server is removed from our load balancer one at a time which is controlled via haproxy.
Haproxy will ping each server as they come up to warm them and only put them back in rotation when they return a 200 response code.
After we have confirmed our new features are working on our meta tier we will then deploy to the rest of our network, including Stack
We have monitor for our exceptions and follow a very important rule: A B C D E F (Always Be Checking after a Deploy for Exceptions or
Video presentation of The architecture of StackOverflow by Marco Cecconi (@Sklivvz) at Developer Conference 2013 also talks about "tests" where he says: (extracted few quotes - listen to talk between 9:15 - 11:20 for more)
We don't have many tests. I'm not advocating that you shouldn't put in
tests. [The reason we can get away with this] is that we have a great
community. So instead of having automated test we have automated human
The same video was posted on Y Combinator's HackerNews website where SE's Jason Punyon posted the below comment:
It's not that no one follows the norms or tests. On the Careers team
we do much more automated testing because there's money and literally
people's jobs at stake. We have unit tests, integration tests and UI
tests that all run on every push. All the tests must succeed before a
production build run is even possible.
There is also a comment on 'bug reports' from Sklivvz:
Remember that our community writes bug reports but also vets bug
reports. We rarely have to deal with bad reports. Interestingly, large
quantities of false negatives are a non-issue.
And, finally David Haney's comment about Meta.SE posted under the OP's question:
This one, right here. :)