You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Concrete Tests to Perform at the Conclusion of Phase 1

  1. Using a baseline pre-import/export list of URIs and binary checksums for the plant patents test data, automate the verification of URIs and checksums for all resources post-export/import.
  2. Spot-check the RDF graphs of several items, comparing the individual triples for discrepancies (facilitated by conversion of the graph to N-Triples and sorting of the triples). Document the findings.
  3. Spot-check the results of a small set of Solr queries performed pre-export and post-reimport, to verify the results. Document the findings.

Long-Term Test Strategy and Goals

  • Purpose
    • Ensure that the import-export utility meets stakeholder requirements for phase 1:
      • Support transacting in RDF
      • Support allowing the option to include Binaries
      • Support references from exported resources to other exported resources
      • Support import into a non-existing Fedora container
      • Support export of resource and its "members" based on the ldp:contains predicate
      • The URIs of the round-tripped resources must be the same as the original URI
    • Facilitate the evaluation of the utility with respect to:
      • Fixity of Binaries
      • Graph isomorphism of RDF resources
      • Performance
  • Target Audience
    • Fedora committers responsible for developing and maintaining the utility
    • Fedora implementers who want to export their resources from a Fedora repository and import them into another repository, including but not limited to another Fedora repository
    • Fedora developers who want to customize and extend the utility to meet their organization’s particular needs
  • Components
    • Test RDF data sets that express inter-resource relationships and contain Binaries or stable external references   
    • A small set of fabricated, repeatable Binaries   
    • Scripts to generate additional RDF data sets   
    • Checksum comparison tool   
    • Test HTTP GET requests and SPARQL queries in vagrant environment
    • Performance tests and analysis tools  
  • Tests  (WORK IN PROGRESS)
    • Resources for tests can be found in the following places.
    • Test Cases: 
      • Simple Export:
        • Goal: verify that data is exported to disk
        • Setup: A new, clean fedora4 repository has been created, either manually on a system or via the use of vagrant.  Test data has been loaded into that repository.  The set should contain both RDF Resources and Non-RDF Resources. 
        • Steps:
          • Run the import-export tool on this repository specifying the location in the file system in which the data should be stored. 
        • Verification:Verify that binaries and descriptions are represented in the exported data.  How to automate this?  A controlled, reasonably sized dataset could be walked, where each item is requested via REST API and sorted/diff'd to the file that's on disk.  n-triples would probably be best format for this. 
      • Simple Import:
        • Goal: verify that the import-export tool will successfully import data that was previously exported via the tool. 
        • Setup: A fedora4 system exists and contains some test data, which includes both RDF Resources and Non-RDF Resources. 
        • Steps:
          • Import data from a previously exported dataset using the import-export tool.  
          • Ensure that the dataset is loaded correctly and that both binaries and descriptions were imported correctly. 
        • Verification: Perhaps a jcr/xml fcr:backup could be useful here in verifying this?   
      • Complex Import: 
        • Goal: verify that a fedora4 repository that contains complex relationships will produce the equivalent graph when exported and imported. 
        • Setup: A fedora4 system that contains test data which has external references, cyclic references, and complex ldp:container relationships. 
          • external reference:  the dataset contains Resources that have references to objects outside of the repository
          • cyclic references:  <a> ldp:contains <b>  or <a> bf:relatedItem <b> and <b> bf:isReferencedBy <a>
          • LDP containers:  direct (and indirect for phase 2?)
        • Steps
          • Export data from a fedora4 system that contains the above described complex relationships
          • Import data into a fresh fedora4 system. 
          • Ensure, via validation tool, that the new system's RDF graph is the same as the old system's. 
      • Import / Export:
        • Export newly imported data and compare the filesystem trees to ensure that everything looks the same. 
  • No labels