User:Ctalbert:Automation Summit
Preparation
- Existing Documents:
- Overview 1: http://developer.mozilla.org/en/docs/xpcshell
- Overview 2: http://www.mozilla.org/scriptable/XPCShell.html
- beginning tutorial: http://developer.mozilla.org/en/docs/Writing_xpcshell-based_unit_tests
- Javascript Main Reference: http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference
- Javascript Main Reference2 http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide
- Javascript 1.7 (branch) Reference http://developer.mozilla.org/en/docs/New_in_JavaScript_1.7
- Javascript 1.8 (trunk) Reference Javascript1.8 Ref http://developer.mozilla.org/en/docs/New_in_JavaScript_1.8 Javascript1.8 Ref
- Using XPCOM Components http://developer.mozilla.org/en/docs/XPConnect:Using_components
- Information on Javascript based XPCOM components: http://developer.mozilla.org/en/docs/How_to_Build_an_XPCOM_Component_in_Javascript
- Documents we want
- Overview of XPCOM, interfaces and how XPCShell helps us to test that.
- Use Overview 1 and Overview 2 from above
- Overview of the necessary Javascript
- Include a sample test, and talk about each step as it is built
- Use Anything we need (and link to as necessary) the Javascript guides and references above.
- Use the Using XPCOM Components document to emphasize how to create these tests
- Something about how to integrate your newly made test into the makefile
- deal with spaces tab question
- Now that you've written it - getting it reviewed
- Have a style checklist
- Talk about bugzilla and requesting a review
- List reviewers
- Automation topics
- How to test for buffer overruns
- How to think about automated testing/regression testing
- How to do negative testing with NULL values
- How to do think about using the APIs in different ways
- How to create Wicked recurrence Rules
- ICS Recurrence
- Test Topics
- Testing a la 2445 - how to create test cases based on iCalendar Rules from the RFC 2445
- Testing with providers
- Testing for memory leaks
- Testing with iTIP RFC 2446
- Testing with Timezones
- Testing for sql injection with SQLite
- Testing the storage provider
- Testing offline
- Testing Sync
- Testing the Javascript based objects
- Testing the views
- Overview of XPCOM, interfaces and how XPCShell helps us to test that.
I'm not sure each of thes bullet points will be a separate document. I'd like to hear some ideas on what should be spearate documents, and what parts of existing documents to reuse
Open Questions
- How much of the existing documents can we reuse by reworking into a more user-friendly format
- How do we give all the stuff we're doing back to MDC for inclusion in their content? Or should it be linked off some main QA/Automation page on the wiki?
- How long should each document be? I don't want the "interminable scrolling" experience of reading these things.
Publicity
- Emphasize that this will teach you the basics of Mozilla Hacking and it is more applicable than simply unit testing. This is just an easy place to start were you can make an immediate contribution.
- Blog, NG, Mozzine Forums, Targetted Publicity
- Cross post to developer newsgroups, other product newsgroups? Ask other products to help us promote?
- Actual Press Releases? I should call in the reporter that got us on Slashdot
Structure of Event
Session 1 The How-To
- It's going to be a little bit lecture style where we actually walk through that tutorial that we build online, in real time.
- Use pastebin to show the code as we complete our test
- Talk about the ins and outs of the JS language
- Talk about how the XPCOM and XPConnect factor into this
- Run the test and pastebin the output.
- Invite questions
Session 2 About Unit/Regression/Automated Testing
- Discuss philosophy behind it.
- Talk about how the tests catch bugs
- Talk about what makes a "good" test
- Discuss general questions
Session 3 iCalendar
- Discuss the high levels of iCalendar syntax
- Discuss how to test per the specification
- Create a sample test that does this
Session 4 Provider Testing
- Create sample test for provider
- Discuss the ins and outs of the listener interfaces
- Discuss the various ideas surrounding the provider testing
Note
- Is this the right order? I'm just numbering as they come to mind
- TODO: Vet the order
- How many sessions? Probably no more than five, maybe only 4.
- Should we do two a day? One after "working hours" in Europe, the other after "working hours" in the states? Or is one a day sufficient? Might be better to do one a day so that people are forced to concentrate and come to them.
- Need direction to decide this. Maybe we will know what to do once we have an idea of how much interest there is?
Guidelines
- Keep all sessions to an hour
- Practice it - have the code written, have the pastebins in tabs showing each step and ready to go so all you have to do is click "submit" as you "finish" each step
- Know what we'll cover and when. Let people ask questions, but don't let people derail it.
- Think "cooking show" style
- Do it in our "normal" calendar-qa channel, so that people get used to having one location to find us.
- Different moderators/presenters for each session?
- Should the sessions be on different days of the same week?
- Monday session 1
- Tuesday session 2
- etc
- Keep them at the same time each day
- Log all sessions so that people can easily read them later and we can use them as training materials in the future.