How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process
-
Upload
sauce-labs -
Category
Technology
-
view
2.047 -
download
0
description
Transcript of How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process
![Page 1: How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process](https://reader036.fdocuments.in/reader036/viewer/2022083003/55936cad1a28ab78138b46ef/html5/thumbnails/1.jpg)
Functional Testing and Continuous Delivery at
Yahoo! MailNeil Manvar
Front-End Developer
![Page 2: How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process](https://reader036.fdocuments.in/reader036/viewer/2022083003/55936cad1a28ab78138b46ef/html5/thumbnails/2.jpg)
About Me
- 2 years with Yahoo! Mail- Bachelors in Computer Science &
Engineering from UC Davis.- Hobbies include UFC/MMA, cycling, and
video games.- CS Interests include in-browser functional
testing and exploring new FE technologies
![Page 3: How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process](https://reader036.fdocuments.in/reader036/viewer/2022083003/55936cad1a28ab78138b46ef/html5/thumbnails/3.jpg)
Role of Browser Testing in Mail
- No more dedicated QA’s- Need to make sure Mail works on various
different configurations- Going towards CD Model
- need automated tests to certify product
![Page 4: How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process](https://reader036.fdocuments.in/reader036/viewer/2022083003/55936cad1a28ab78138b46ef/html5/thumbnails/4.jpg)
Ycuke - Functional Testing Framework
- Cucumber- Watir-Webdriver- Page-Object- Parallel_tests- Saucelabs (get a free trial here!)
![Page 5: How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process](https://reader036.fdocuments.in/reader036/viewer/2022083003/55936cad1a28ab78138b46ef/html5/thumbnails/5.jpg)
Sample Testcase - Feature file
Scenario: Composing a new message and saving as draft Given I am logged in to Yahoo! Mail as User1 And I open compose And I fill out the subject field with “someRandomContent” And I fill out the email message body with “someBodyContent” And I save draft by pressing Control + S Then I should see the save draft confirmation notification
![Page 6: How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process](https://reader036.fdocuments.in/reader036/viewer/2022083003/55936cad1a28ab78138b46ef/html5/thumbnails/6.jpg)
Sample Testcase - Step Definition
step_definitions/Compose_steps.rb:
And /^I fill out the subject field with “(.*)”$/ do | content |on_page Compose do | page |
page.subject_field.when_present.set(content)end
end
![Page 7: How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process](https://reader036.fdocuments.in/reader036/viewer/2022083003/55936cad1a28ab78138b46ef/html5/thumbnails/7.jpg)
Sample Testcase - Page Object
page_objects/Compose_page.rb
class Compose include PageObject
...def subject_field
@browser.text_field(:id => “to-field”)end
...end
![Page 8: How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process](https://reader036.fdocuments.in/reader036/viewer/2022083003/55936cad1a28ab78138b46ef/html5/thumbnails/8.jpg)
Complications
Parallelism- Account Problems- Abuse / Anti-Spam
![Page 9: How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process](https://reader036.fdocuments.in/reader036/viewer/2022083003/55936cad1a28ab78138b46ef/html5/thumbnails/9.jpg)
Continuous Delivery Pipeline
1. Developer submits pull requests- Unit tests are run against pull request.2. Code is reviewed and merged in if PR build
passes.- Unit and Functional Tests are run3. Code is pushed to test servers, and pushed
to prod after “integration” functional tests passes
![Page 10: How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process](https://reader036.fdocuments.in/reader036/viewer/2022083003/55936cad1a28ab78138b46ef/html5/thumbnails/10.jpg)
Trying to run functional tests on Pull Request build.
Challenge: Will get flagged as abusive / spam since we have > 20 pull requests
Solution:Mock backend (record and replay)
![Page 11: How Yahoo! Mail Transformed Its Functional Testing and Continuous Delivery Process](https://reader036.fdocuments.in/reader036/viewer/2022083003/55936cad1a28ab78138b46ef/html5/thumbnails/11.jpg)
Q & A
Try Sauce Labs free! Click here and get a free account!