Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.

Test Automation With Cucumber JVM, Selenium, and Mocha

Join us for an overview of behavior-driven development and test automation, which aided in the production of a Visualforce/JavaScript application for an enterprise client. Using Cucumber JVM, Selenium, Jenkins, and Git - the team was able to catch regression errors during development. We'll provide an overview of the solution used and how it worked in a real-world environment.

Test Automation With Cucumber JVM, Selenium, and Mocha

2.
Safe harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties
materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results
expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be
deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other
financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any
statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new
functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our
operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any
litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our
relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of
our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to
larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is
included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent
fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor
Information section of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently
available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions
based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these
forward-looking statements.

6.
Agile project and automation
• How many people are in Agile project right now?
• Does your development team write unit tests for non-Apex code?
• Does your QA team automate E2E tests?
• Continuous Integration?

12.
Mocha
• JavaScript unit test framework
• The syntax is similar to Jasmin
•
We used Mocha because we used Brunch assembler for project. The assembler
came with Mocha.
• Running on Node.js
• Comes with several reporters
http://visionmedia.github.io/mocha/

13.
How did we use Mocha unit tests? (Sanjay)
• Running Mocha in real browser, for example, IE8.
• Used for UI testing, e.g. filtering, displaying error based
on a condition…etc.
• QA Lead communicated to QA engineers and
developers to balance Mocha UI unit tests and e2e test
using Cucumber JVM + Selenium.
• Can generate report.

16.
Flexible Chatter Contact Follow App
1. One of our clients wants to use “Sync contacts users
follow in Chatter” option in Salesforce to Outlook
configurations
2. They want an app to make their assistants to control
chatter-follow for other people.

17.
Flexible Chatter Contact Follow App Solution
1. Created a “Contacts Relationship” custom object as a
junction object between “Contact” and “User” objects.
2. When a “Contacts Relationship” record is created, an
Apex trigger is fired to make “User” follow “Contact”
relationship in Chatter.
User
Contacts Relationship
Contact
First Name
User
Name
Last Name
Contact
Account Name
Apex Trigger on"Contacts Relationship"

18.
Agile project: Sprint 1 and User Story 001
Suppose we are in Sprint 1 of an Agile project and the Flex
Contact Chatter-Follow is User Story 001.
Here is what to do before writing code:
1. BA and TA gather requirements from client.
2. TA and Dev design solution and create mockup/diagram.
3. BA and Dev writes scenarios and confirm with QA.
4. QA writes test cases and confirms with BA and Dev.

27.
Conclusion
End of the 13 sprints, QA developers wrote e2e test code for
about 90 User Stories and more than 200 test cases.
Developers wrote unit tests for all User Stories.
Jenkins run nightly and send report to QA/Dev team. The
automation saved significant amount of QA time and
delivered quality code to the client.