Sheet 1
Evernote Basic
  Structure (what the product is)
    What files does it have?
      Standard app Contents folder, post drag/drop install
    How was it built?
      Switched from .NET framework to C++ in 2010 (Between Version 3.5 and 4)
      "Major Departure" - What product risks could this involve? What was refactored? Everything?
      Web Server: TomCat
      Notes: ENML Format (Evernote Markup Language)
        Subset of XHTML
    One program or many?
      One standalone program as part of a suite of other standalone programs offered by Evernote
      Can work in isolation from one another, not dependent/reliant on other apps being installed.
    Physical material comes with?
      None, digital download
    Can test module by module?
      Yes (see Function node)
  Function (what the product does)
    Notes
      Create New
        Drop Down Option: New by folder
        Default option: New in last used folder
      Edit
        Title
          Character limit?
          Character types?
        Body
          Character limit?
          Character types?
          Formatting
            Native
            Copy/Paste (from other popular applications)
        WYSIWYG Editor
          Font Decorations (Bold, Italic, Highlight, Underline, etc.)
          Alignment (Left, Right, Justified, etc.)
          Bullets
          Numbering
          Tables
        Insert Media (via File)
          Allowed formats
          Dimensions (once inserted)
        Insert (via Camera)
          Webcam dialog functionality
      Delete
        Option: Delete w/o confirmation (via keyboard combo/shortcut)
        Default: Display confirmation
          Confirm
          Cancel
      Tags
        Add
          Via Enter
          Via comma (,)
        Delete
          Via Backspace (from right)
          Via Delete (from left)
          Via select/click (ad-hoc)
      Move
        To another Notebook
        To another Notebook "again" option
      Share
      Export
        To .enex format
        To .html format
        Include/Exclude Tags in export
      Copy Note Link
        Verify by pasting in Textedit
        Test in various browsers
      Shortcuts
      Open in seaprate window
      Sorting
        By folder
      Present
        Default: Current screen (same screen as app window)
        On another screen
      Print Note Feature
    Subscription Levels
      Basic
      Premium
    Accounts (drop-down)
      Switch Account
      Add Another Account
      Account Info...
    Initial Startup
      Sign-Up (new user)
      Sign-In (existing users)
    Save Attachments
      File Dialog
    Notebook
    Resource
      image/gif
      image/jpeg
      image/png
      audio/wav
      audio/mpeg
      audio/amr
      application/vnd.evernote.ink
      application/pdf
    Saved Search
  Interface
    UI
    Cloud API
      EDAMUserException
      EDAMSystemException
      EDAMNotFoundException
  Time
  Data (what it processes)
    Export File Types
    Import File Types
    Error Handling
    Character Limitations
    Storage
      Local
      Cloud
    Data Sync
      Mobile App
        iOS
        Android
        Windows Phone/Metro/Win 8&10 apps?
      Desktop
      Web
    Data
  Platform (what it depends upon)
    Base OS dependencies
      Mac
        Security Updates?
      Windows
        .NET Package reliance?
  Operations (how it will be used)
    HTSM Quality Criteria - Usability
    HTSM Test Techniques
      Flow Testing
      Scenario Testing
      Risk Testing
Using SFDPO: http://www.satisfice.com/articles/sfdpo.shtml
What files does it have? Do I know anything about how it was built? Is it one program or many? What physical material comes with it? Can I test it module by module?
What are its functions? What kind of error handling does it do? What kind of user interface does it have? Does it do anything that is not visible to the user? How does it interface with the operating system?
A Note represents a single unit of information within an Evernote account. A note is made up of a single body section (the content) and zero or more associated Resources (images, audio, PDF, etc.). The note's structure is similar to a MIME email message: the body is made up of hypertext, and the resources represent embedded "attachments" that the body can refer to.
Each note exists in only one Notebook at a time. It is not possible for a single note to exist in two different notebooks. If the note is copied, a new note is created. If the new note is edited, the original will not be changed.
Each user account contains a set of zero or more Tags, which are an organizational tool to help users find relevant notes. Tags are applied only to Notes; Notebooks, Resources and other objects cannot be tagged.
Tags are full objects in the Evernote data model. A note with the tag "food" does not store the string "food", but instead includes a reference to the tag object with the name "food". The tag's name is unique within the user's account. If a note has been assigned the tag "food", then this is the same tag as "food" on any other note in the account. Each tag can be assigned to any number of notes, and each note may have any number of tags.
Should only work for "Premium" subscription
Determine what features should be limited in Basic vs Premium subscription levels. (e.g. Presentation ability)
Each User has a set of associated Accounting information that allows clients to determine the level of service available for that user, such as the monthly "uploadLimit", which specifies the number of bytes of new content that the user can upload into their account each month.
Each user account contains at least one Notebook. Notebooks are used to organize collections of Notes. Each notebook has a name, which must be unique within the owner's account. Notebooks can be grouped into stacks, which contain one or more notebooks, but cannot directly contain notes. A given user's account may contain up to EDAM_USER_NOTEBOOKS_MAX notebooks.
A Resource is a binary data block that is associated with a single Note, similar to an attachment for an email message. Resources typically contain images, audio clips, PDFs, documents, etc.
Each resource may have a set of ResourceAttributes that describe its system-defined properties. For example, meta-data from images may be extracted from a JPEG EXIF block and stored as searchable attributes on the resource.
Each account contains zero or more SavedSearches, which can be used to find a set of Notes meeting various criteria. These criteria can include a combination of keywords, tags and attributes. These criteria can be saved within the account for re-use at a later date, and each saved search has a unique name within that account for ease of identification.
Every way the product is accessed. UI, API, CLI, etc.
https://dev.evernote.com/doc/articles/error_handling.php
Any relationship between the product and time. Can more than one thing happen at once? Do bottlenecks exist if more than one thing happens at once?
What kinds of input does it process? What does its output look like? What kinds of modes or states can it be in? Does it come packaged with preset data? Is any of its input sensitive to timing or sequencing?
Everything the product processes
What operating systems does it run on? Does the environment have to be configured in any special way? Does it depend on third-party components?
Who will use it? Where and how will they use it? What will they use it for? Are there certain things that users are more likely to do? Is there user data we could get to help make the tests more realistic?