An acquaintance of mine is building a website for his (non-profit) organization. Since I'm currently an automated tester on a desktop-based application, I thought I could help him do some web testing. I don't have much experience in web testing but I'm aware of a few different areas of web testing like user experience, security, and performance. The site will be built from basically scratch, and I won't be writing any of the code on the front- or back-end (at this point anyway). I'm definitely interested in creating some automated test scripts using Selenium but how should I approach testing a web site that's brand new? Are there any generally good approaches for preparing to test in such a situation?
EDIT: Although I'd like to create some automated tests using Selenium, I'm not definitely not going down a "automation-only" or "Selenium-only" route. Any testing directions or ideas would be appreciated.
At such an early stage a good first step may be to arrange with the developer(s) who will be working on the UI and asking for little things to ease the testability of the site with automation tools e.g. Relevant identifiers on the web page elements.
Specifically addressing User Experience, Security and performance you may not be particularly well served by Selenium, I primarily use Selenium for user functional testing when I don't have access to a web service layer or need to interact with the UI to mimic a user action. UX I find is best tested manually as it is related to look and feel and user flow that is very subjective and hard to automate for. Selenium is also not designed for performance testing (Jmeter is an Open Source tool you might want to look into for performance testing).
As you already have an automation background it may be worth looking into ways people have created maintainable Web test suites with Selenium one popular example is page objects/page object pattern. Although you may already have design patterns you are familiar with and would prefer to use.
Find out what qualities are important and make sure these are tested.
How many users and what is their usage ? Answers to this will help work out your approach to performance testing, it might not be needed
Will the website take payments ? Store personal details - answers to these will help determine the level of security testing
Which browsers are going to be supported ? This determines how much - or little - compatability testing is required
Accessebility testing - any requirements for the level of support the website should offer ?
Given the shabby usability of the average non-profit web site, you might consider donating your time in a different way: write a manual test plan so that your friend (or someone else) could look for bugs, and then run a few informal usability tests. You might end up with a higher-quality site.
Test automation frameworks like Selenium trying to imitate regular web application user. So try use your experience with web application to create test cases based on web application user actions. Create as much as possible automated test which imitate user behavior with web application, but keep in mind that tests should be write and organize in way which makes easy to update and maintaining these tests in future.