advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

Embed Size (px)

Citation preview

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    1/23

    Advanced Testing & Debugging

    Getting the Most from the Developer Console

    Josh Kaplan, Salesforce.com, Sr. Product Manager

    @Josh SFDC

    Tony Tonev, Salesforce.com, Software Engineer

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    2/23

    Join the conversation: #forcewebinar

    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 un

    materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the r

    expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact cou

    deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues,

    financial items and any statements regarding strategies or plans of management for future operations, statements of belief,

    statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of o

    The risks and uncertainties referred to above include but are not limited to risks associated with developing and deliverin

    functionality for our service, new products and services, our new business model, our past operating losses, possible fluctua

    operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outco

    intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in wh

    operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our g

    releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and

    and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of sa

    inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This documents acontaining 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 c

    available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decis

    upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these

    looking statements.

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    3/23

    Join the conversation: #forcewebinar

    Join the conversation: #forcewebinar

    Josh Kaplan

    Sr. Product Manager,

    @JoshSFDC

    Tony Tonev

    Software Engineer

    Speakers

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    4/23

    Join the conversation: #forcewebinar

    Follow Developer Force for the latest news

    @forcedotcom / #forcewebinar

    Developer Force group

    Developer Force Force.com Community

    +Developer Force Force.com Community

    Developer Force

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    5/23Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

    Have questions?

    We have an expert support team at the ready to answer youduring the webinar.

    Ask your questions via the GoToWebinar Questions Pane. The speaker(s) will choose top questions to answer live at th

    webinar.

    Please post your questions as we go along! Only post your question once; well get to it as we go down t

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    6/23Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

    Agenda

    Testing Apex Why test? When test? How test?

    Code Coverage Advanced Debugging

    Log Inspector Checkpoints

    Set checkpoints View memory contents Inject logic

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    7/23

    Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

    Assumptions

    This webinar assumes the following:

    You know what Apex code is how to launch the Developer Console

    You have used the Developer Console before done debugging before

    But dont worry, you can catch up via these resources:

    http://wiki.developerforce.com/page/Webinar:_Intro_to_Apex_Code_(2012-July)

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    8/23

    Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

    Why test?

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    9/23

    Join the conversation: #forcewebinar

    Testing Protects You From Others

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    10/23

    Join the conversation: #forcewebinar

    Testing Protects You From Us

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    11/23

    Join the conversation: #forcewebinar

    When should I test?

    Write tests throughout development

    Before development After development In their own @isTest classes

    You should test frequently!

    During development Before deployment During deployment During release preview window

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    12/23

    Join the conversation: #forcewebinar

    How can I run tests on my code?

    Salesforce provides several avenues for test execution

    Developer Console

    Setup User Interface Automatically during deployment Through the Tooling API *COMING SOON!*

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    13/23

    Join the conversation: #forcewebinar

    Developer Console

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    14/23

    Join the conversation: #forcewebinar

    Testing in Setup User Interface

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    15/23

    Join the conversation: #forcewebinar

    Asynchronous Test Execution

    Salesforce runs your tests in the background so they can be

    processed as resources allow.

    Asyncronous testing runs tests in no particular order It allows you to see status of tests as they complete The process is integrated into developer console

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    16/23

    Join the conversation: #forcewebinar

    Code Coverage

    We store the results of your testing to calculate code cov

    and show you these stored results in the developer cons Aggregate coverage for each class and trigger Coverage by each test method on each class and trigger

    CAUTION!These results are stale as soon as you change the test or th

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    17/23

    Join the conversation: #forcewebinar

    Lets See The Demo Already!

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    18/23

    Join the conversation: #forcewebinar

    Use Case: UberJet

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    19/23

    Join the conversation: #forcewebinar

    Debugging Code

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    20/23

    Join the conversation: #forcewebinar

    Debugging with the Log Inspector

    Execution Log The entire transaction, line by line and more

    Source / Variables Current code location and variable values

    Stack How you got where you are

    How long each step took Execution Overview

    Limits Performance per action, per method

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    21/23

    Join the conversation: #forcewebinar

    When the log is not enoughcheckpoints!

    A checkpoint is like a breakpoint, but cloud-approved

    Heap

    Provide a view into the memory at the checkpoint SOQL query

    Run a SOQL query at the checkpoint Apex Code

    Inject a miniature apex snippet at the checkpoint

    R

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    22/23

    Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

    Recap

    Testing Is Important, Testing Is Easy Test always Use the Developer Console to see results and code coverage statist

    Debugging Is Hard, Debugging Can Be Easier The Log Inspector provides many views into the haystack Use Checkpoints to see the state of the world at a critical point

    R

  • 7/27/2019 advancedtestinganddebuggingusingthedeveloperconsolewebinar-130403165141-phpapp02

    23/23

    Join the conversation: #forcewebinarJoin the conversation: #forcewebinar

    Resources

    Developer Console topic page:http://wiki.developerforce.com/page/Developer_Console

    Next Steps Write More Tests! Use Developer Console To Run Your Tests Use Developer Console To Debug Your Code\