nickpalladino
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # Field Book Release Test Cases ## App Installation ### Clean Install Verify that the app can be installed and started without error. #### Procedure 1. Ensure that Field Book is not already installed on the device 2. Connect the device to a computer via USB cable and click the run app button in Android Studio 3. Select the appropriate device and click OK 4. Verify that the app is loaded onto the device and launches without error #### Result Status: PASSED Tested By: Nick Palladino Date: 10/17/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Pixel 3a OS: Android 9 API: 28 ### Upgrade Previous Version Verify that the app can be upgraded and that no data loss or corruption occurs. #### Procedure 1. Ensure that Field Book is not already installed on the device 2. You'll need to have the Android support library installed in Android studio. This can be found in File...Settings, Appearance & Behavior...System Settings...Android SDK. 4. Get Field Book [v4.0.3](https://github.com/PhenoApps/Field-Book/releases/tag/v4.0.3) from Github by running: ``` git checkout c091e2e803ea60d2520830423885947e360241e3 ``` 4. You'll need to add an [ApiKeys.java](https://ipfs.io/ipfs/QmUor7crLBmpC7as1kVHwsZdZQ6CGoKSfMLjXMosYX8BNw) file to the project under com.fieldbook.tracker/utilities. An example file is included with this test case. 5. Load the app to the target device from Android Studio and run it 6. On the Fields page, import field_sample.csv 7. On the Traits page, import trait_sample.trt 8. On the data collection page, enter data for each of the trait types for two different plots. 9. Export the data in a table format using only unique identifier and only active traits. Retreive the the file from the device in Android Studio terminal using the command below where the filename is what you named the file. ``` adb pull /sdcard/fieldBook/field_export/tableuniqueactive.csv ``` 11. Get Field Book [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) from Github 12. Load the app to the target device from Android Studdio and run it 13. Verify that the app is installed and launches without error 14. On the data collection page, verify that all of the trait observations saved in the previous version are displayed correctly 15. Export the data in a table format as in step 7 16. Verify that the files match with the exception of audio trait data of "Data has been saved" being replaced with "". 17. Connect to a breedbase BrAPI server by going to Settings...BrAPI Configuration and entering a URL, then logging in with your credentials to authorize Field Book. 18. On the Fields page, import a BrAPI field. Select the BrAPI field as the active field. 19. On the Traits page, import some BrAPI traits. 20. On the Collect data page, collect a combination of non-BrAPI and BrAPI traits. 21. Goto Export data...BrAPI. Verify that the imported study name is displayed and that the number of New Observations is correct and the number of User Created Trait Observations is correct. 22. Press the Export button and verify that a message is displayed saying BrAPI export successful. Verify that New Observations changed to 0 and Synced Observations changed to 6. 23. Export the BrAPI field observations as a csv in table format with only unique identifier and only active traits. 24. Verify that the csv file matches the BrAPI data collection observations in Field Book 25. On the Traits page, Export all of the traits which will include both BrAPI and non-BrAPI. Retrieve the traits file using the following command where the filename is what you named the file: ``` adb pull /sdcard/fieldBook/trait/samplebrapi.trt ``` 27. Verify that the traits csv file matches the data on the Traits page. #### Result Status: PASSED Tested By: Nick Palladino Date: 10/21/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Pixel 3a OS: Android 9 API: 28 #### Files - [ApiKeys.java](https://ipfs.io/ipfs/QmUor7crLBmpC7as1kVHwsZdZQ6CGoKSfMLjXMosYX8BNw) ### Android API 16 Install Verify that the app can be installed and run on the minimum supported API version which is currently API 16. #### Procedure 1. Configure an emulated Pixel 2 device with an x86 image of Android Jelly Bean (4.1) in Android Studio 2. Load and run the app from Android Studio on the device 3. Verify that the app loads on to the device successfully 4. Verify that the app launches sucessfully 5. Configure and authenticate to a BrAPI breedbase server on the Settings...BRAPI confiugration page 6. On the Field page, import a remote field. Click Ok after finished downloading 7. Verify that the field is saved successfully 8. Select the saved field to make it active 9. On the Collect data page, collect a few trait observations 10. Go to export data and select BrAPI 11. Verify that the collected trait observation statistics are correct 12. Click the export button 13. Verify that a message is displayed saying that the export was successful and the statistics reflect that #### Result Status: PASSED Tested By: Nick Palladino Date: 10/18/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Emulated Pixel 2 OS: Android 4.1 API: 16 ## CSV Import ### Sample Data Field Import Verify that a CSV file of field data is imported correctly. #### Procedure 1. Start with a clean install of Field Book 2. Copy [field_sample.csv](https://ipfs.io/ipfs/QmQEAUd3SmfxgC68rXXNKQ8wakoy9MKmghMbEbxzwGiGv7) to the device by running the following command in the Android Studio terminal: ``` adb push field_sample.csv /sdcard/fieldBook/field_import ``` 3. On the Fields page, select import field...Local, then select field_sample.csv. 4. Set plot_id as the unique identifier, row as primary order, column as secondary order. 5. Click OK 6. On the collect data page, use primary navigation arrows to spot check that all of the plot ids are loaded and the rows and columns look correct. 7. On the Fields page, attempt to import the field again and verify that an error message is displayed saying the field already exists #### Result Status: PASSED Tested By: Nick Palladino Date: 10/18/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Pixel 3a OS: Android 9 API: 28 #### Files - [field_sample.csv](https://ipfs.io/ipfs/QmQEAUd3SmfxgC68rXXNKQ8wakoy9MKmghMbEbxzwGiGv7) ### Sample Trait Import Verify that a CSV file of trait data is imported correctly. #### Procedure 1. Start with the state of the previous test case with field_sample.csv imported. 2. Copy [trait_sample.trt](https://ipfs.io/ipfs/QmQvdTFkNKJ7nC7FaKhwQDj8Ykws5u14AezkFcWTT5oYXn) to the device by running the following command in the Android Studio terminal: ``` adb push trait_sample.trt /sdcard/fieldBook/trait ``` 3. On the Traits page, select Import...Local, then trait_sample.trt 4. Verify that all of the imported traits are present as specified in the csv file. This will require going to the edit menu on some of them to verify all parameters are present #### Result Status: PASSED Tested By: Nick Palladino Date: 10/18/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Pixel 3a OS: Android 9 API: 28 #### Files - [trait_sample.trt](https://ipfs.io/ipfs/QmQvdTFkNKJ7nC7FaKhwQDj8Ykws5u14AezkFcWTT5oYXn) ### Breedbase Generated Field Import Verify that a CSV file of field data generated by Breedbase is imported correctly. #### Procedure 1. Start with the state as of the last test case. 2. Copy [fieldbook_layout_2019-10-17_13_04_44_2018_amurensis_DM_trial.csv](https://ipfs.io/ipfs/Qme3wYWJsY8aXnj1fJ6aK9KLBRxZ2WLQEwXVE1KL12NP6e) to the device by running the following command in the Android Studio terminal: ``` adb push fieldbook_layout_2019-10-17_13_04_44_2018_amurensis_DM_trial.csv /sdcard/fieldBook/field_import ``` 3. On the Fields page, select import field...Local, then select fieldbook_layout_2019-10-17_13_04_44_2018_amurensis_DM_trial.csv. 4. Set plot_name as the unique identifier, row_number as primary order, col_number as secondary order. 5. Click OK 6. On the collect data page, use primary navigation arrows to spot check that all of the plot ids are loaded and the rows and columns look correct. 7. On the Fields page, attempt to import the field again and verify that an error message is displayed saying the field already exists #### Result Status: PASSED Tested By: Nick Palladino Date: 10/18/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Pixel 3a OS: Android 9 API: 28 #### Files - [fieldbook_layout_2019-10-17_13_04_44_2018_amurensis_DM_trial.csv](https://ipfs.io/ipfs/Qme3wYWJsY8aXnj1fJ6aK9KLBRxZ2WLQEwXVE1KL12NP6e) ### Breedbase Generated Trait Import Verify that a CSV file of trait data generated by Breedbase is imported correctly. #### Procedure 1. Start with the state of the previous test case. 2. Copy [2019-10-18_17_22_41_breedbase_test.trt](https://ipfs.io/ipfs/QmYMnYY5cHwdNaicdWdABcQhTcNJHBPnXeBnJtLua7dduw) to the device by running the following command in the Android Studio terminal: ``` adb push breedbase_trait.trt /sdcard/fieldBook/trait ``` 3. On the Traits page, select Import...Local, then 2019-10-18_17_22_41_breedbase_test.trt 4. Verify that all of the imported traits are present as specified in the csv file. This will require going to the edit menu on some of them to verify all parameters are present #### Result Status: PASSED Tested By: Nick Palladino Date: 10/18/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Pixel 3a OS: Android 9 API: 28 #### Files - [2019-10-18_17_22_41_breedbase_test.trt](https://ipfs.io/ipfs/QmYMnYY5cHwdNaicdWdABcQhTcNJHBPnXeBnJtLua7dduw) ### Breedbase Trait Export Then Import Verify that a CSV file of trait data generated by Breedbase is imported correctly after being exported. #### Procedure 1. Start with the state of the previous test case. 2. On the Traits page, export the breedbase traits 3. Retrieve the exported CSV by running the following command with the appropriate file name: ``` adb pull /sdcard/fieldBook/trait/trait_import_export.trt ``` 4. Verify that the traits in the CSV match the Field Book traits page 5. On the Traits page, import the traits file that was exported in step 2 6. Verify that the traits are loaded successfully and no error messages are displayed. 7. Verify that all of the imported traits are present as specified in the csv file. This will require going to the edit menu on some of them to verify all parameters are present 8. Collect data for multiple traits on at least two plots 9. Export a CSV in database format with only unique identifiers and only active traits 10. Verify that the exported data matches the collected data. #### Result Status: PASSED Tested By: Nick Palladino Date: 10/22/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Pixel 3a OS: Android 9 API: 28 #### Files - [2019-10-18_17_22_41_breedbase_test.trt](https://ipfs.io/ipfs/QmYMnYY5cHwdNaicdWdABcQhTcNJHBPnXeBnJtLua7dduw) ## Data Collection ### Collection Of Each Trait Type Verify collection for each trait type works. #### Procedure 1. Start with the state of the previous test case. 2. On the Traits page goto to Import...Local trait_sample.trt 3. On the Collect data page, collect data for each of the trait types on two plots 4. Verify that the trait navigation arrows work and all expected traits are present 5. Verify that the plot arrows work and all expected plots are present #### Result Status: PASSED Tested By: Nick Palladino Date: 11/13/19 #### Test Environment Field Book: [f8681f9bf27d92727046c3d3c0fe4c724eb8724d](https://github.com/PhenoApps/Field-Book/commit/f8681f9bf27d92727046c3d3c0fe4c724eb8724d) Device: Pixel 3a OS: Android 9 API: 28 ## CSV Export ### Sample Field Data Export Verify csv export works for Field Book collected sample data. #### Procedure 1. On the Fields page, select field_sample from the list to make it active 2. On the Collect data page, collect multiple trait observations for at least two plots. 3. On the Export data page, select Local. Configure the export settings to be in database format, only unique field columns, and only active traits 4. Retrive the file from the device with the following command (where dbonlyuniqueactive_database.csv is the name of the file you specified): ``` adb pull /sdcard/fieldBook/field_export/dbonlyuniqueactive_database.csv ``` 5. Open the file to view the content and compare it to what the Collect data page is showing. Verify that entries for the collected traits and plots are present and correct. 6. Export again, this time with the settings of database format, all imported columns, all traits. Retrieve the file using the appropriate file name as in step 4. 7. Verify that the contents of the file match what is shown on the Collect data page for the plots collected. Verify that all columns, not just plot_id are included. 8. Export again, this time with the settings of table format, only unique, and only active. Retrieve the file using the appropriate file name as in step 4. 9. Verify that the contents of the file match what is shown on the Collect data page for the plots collected. Verify that all plots are listed and are empty other than the collected plots. Verify that all of the active traits on the 10. Export again, this time with settings of table format, all imported columns, all traits. Retrieve the file using the appropriate file name as in step 4. 11. Verify that the contents of the file match what is shown on the Collect data page for the plots collected. Verify that all columns, not just plot_id are included. #### Result Status: PASSED Tested By: Nick Palladino Date: 10/21/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Pixel 3a OS: Android 9 API: 28 ### BrAPI Field Data Export Verify csv export works for Field Book collected BrAPI field data. #### Procedure 1. On the Fields page, select a BrAPI field from the list to make it active 2. On the Collect data page, collect multiple trait observations for at least two plots. 3. On the Export data page, select Local. Configure the export settings to be in database format, only unique field columns, and only active traits 4. Retrive the file from the device with the following command (where dbonlyuniqueactive_database.csv is the name of the file you specified): ``` adb pull /sdcard/fieldBook/field_export/dbonlyuniqueactive_database.csv ``` 5. Open the file to view the content and compare it to what the Collect data page is showing. Verify that entries for the collected traits and plots are present and correct. #### Result Status: PASSED Tested By: Nick Palladino Date: 11/13/19 #### Test Environment Field Book: [f8681f9bf27d92727046c3d3c0fe4c724eb8724d](https://github.com/PhenoApps/Field-Book/commit/f8681f9bf27d92727046c3d3c0fe4c724eb8724d) Device: Pixel 3a OS: Android 9 API: 28 ## Multiple Users ### Data Collection Verify that multiple users can collect observations and that the exported data reflects this. #### Procedure 1. On the Profile page, enter text for the person and location fields. 2. On the Collect data page, collect data for multiple traits on at least two plots 3. Go back to the Profile page and change the name and location information. 4. Collect data for multiple traits, some on one of the same plots as the previous user but different traits and some on a new plot. 5. Export the data to a CSV file using the database format with unique identifiers nad active traits. 6. Verify that the CSV files contents contain the correct person and location column values for each of the collected trait observations. 7. Record a value as the second user over one of the first user's recorded values. 8. Export the data to a CSV file using the database format with unique identifiers nad active traits. 9. Verify that the CSV file shows that the second user has overwritten the first user's data. #### Result Status: PASSED Tested By: Nick Palladino Date: 10/21/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Pixel 3a OS: Android 9 API: 28 ## BrAPI ### Import Field Verify that fields can be imported via a BrAPI connection to breedbase. #### Procedure 1. Select Fields > + (upper right) > Remote (BrAPI) 2. Select the field to import from the list of fields stored in Breedbase. 3. Press "Save Field" at bottom and wait for download to complete 4. Press "OK" 5. In Field Book seelct Fields > + > Local > name_of_downloaded_field_layout_file.xls. 6. Select any property except plot_number as the unique identifier. 7. Select row_number and column_number for the primary and secondary orders respectively. 8. Verify both fields exist. 9. Verify each field can be selected for data collection. 10. Repeat steps 1--10 but importing via csv first and BrAPI second. 11. Repeat steps 1--10 but in step 7 select plot_number as the unique identifer 12. Verify that a message displays that duplicate fields cannot be imported. 13. Verify that only the field layout downloaded from Breedbase is listed. 14. Delete the field layout in Field Book so that no fields are listed. 15. Repeat steps 6--8 except select plot_number for the unique identifier. 16. Repeat steps 1--4 selecting the same field layout. 17. Verify that a message displays that duplicate fields cannot be imported. 18. Verify that only the field layout imported from csv is listed. 19. Delete the field layout in Field Book so that no fields are listed. 20. Repeat steps 1--4 twice. 21. Verify that a message displays that duplicate fields cannot be imported. 22. Verify that only the field layout downloaded from Breedbase is listed. #### Result Status: PASSED Tested By: Dave Meidlinger Date: 10/22/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Galaxy Tab A OS: Android 5.1.1 API: 22 ### Import Traits Verify that traits can be imported via a BrAPI connection to breedbase. #### Procedure 1. From Field Book homepage select Traits > Import/Export (pull down menu upper right) > Import > Remote (BrAPI). 2. Select the traits to download and press "Save Traits". 3. Verify the traits are listed on the Traits page. 4. Select Import/Export > Import > Local. 5. When dialog box appears asking, "Export current trait list?" answer NO. 6. Select Local and tap the trait_sample.trt file listed. 7. Verify that only the traits imported via csv appear. 8. Repeat steps 1--6 but import via csv first and via BrAPI second. 9. Verify that all traits imported from both methods appear. 10. Delete all traits and fields and repeat step 11 from the Import Field section of this document. 11. Import traits via csv by repeating steps 4--6. 12. From the Field Book home page select "Collect Data" and record some observations. 13. Select "Export Data" fromt eh home page and select BrAPI. 14. Verify the message appears "Selected Field must be imported from BrAPI". 15. Delete all fields and traits. 16. Import a field via BrAPI by repeating steps 1--4 from the Import Field section of this document. 17. From the home page Select Traits > + (lower right), input trait data, and press Save. 18. From the home page select "Collect Data" and record some observations with the new trait. 19. From the home page select "Export Data" > BrAPI. 20. Verify that a message displays that the observations are skipped for exporting if they contain the locally created trait. 21. Verify that the collected data for non-custom traits was exported to Breedbase. ``` -- You can use this query in the breedbase db to check that the traits were synced, SELECT phenotype_id, nd_experiment_id, phenotype.* FROM phenotype JOIN nd_experiment_phenotype using(phenotype_id) JOIN nd_experiment_stock using(nd_experiment_id) JOIN stock using(stock_id) where phenotype.create_date > '2019-10-08' order by stock_id --The create date should be one day before the current day. --You can narrow it down to hours and minutes if you want to be more accurate. ``` 23. Delete all traits and import a set of traits via BrAPI. 24. Select Import/Export > Export and choose a filename (e.g. duptest.trt). 25. Attempt to import the same set of traits via BrAPI. 26. Verify that a message displays that duplicate traits are not allowed and verify that no duplicate traits are listed. 26. Import traits again choosing Local and selecting the test file created in step 23. 27. No message will appear and the csv traits should overwrite the existing traits, so there should also be no change in the trait list. 28. Delete all traits and import via Local using the test file from step 23. 29. Attempt to import the same set of traits via BrAPI and verify that a message displays stating that duplicate traits are not allowed. 30. Verify that there are no duplicate traits listed. 31. Repeat steps 22--30 except attempt to import a set of traits only partially containing duplicates and verify that the unique traits were imported. #### Result Status: PASSED Tested By: Chris Tucker Date: 11/13/19 #### Test Environment Field Book: [f8681f9bf27d92727046c3d3c0fe4c724eb8724d](https://github.com/PhenoApps/Field-Book/commit/f8681f9bf27d92727046c3d3c0fe4c724eb8724d) Device: Galaxy Tab A OS: Android 5.1.1 API: 22 ### Pushing to BrAPI 1. Download a brapi field and traits 2. Set the profile info name to any name 3. Collect data on a bunch of those traits 4. Go through the brapi export. 5. Run the following query in your breedbase database to see the data in breedbase ``` -- You can use this query in the breedbase db to check that the traits were synced, SELECT phenotype_id, nd_experiment_id, phenotype.* FROM phenotype JOIN nd_experiment_phenotype using(phenotype_id) JOIN nd_experiment_stock using(nd_experiment_id) JOIN stock using(stock_id) where phenotype.create_date > '2019-10-08' order by stock_id --The create date should be one day before the current day. --You can narrow it down to hours and minutes if you want to be more accurate. ``` 6. Check that the trait name and values are assigned correctly. - You can see the trait name in the 'uniquename' field. 8. Check that the operator is assigned correctly. #### Result Status: PASSED Tested By: Nick Palladino Date: 11/13/19 #### Test Environment Field Book: [f8681f9bf27d92727046c3d3c0fe4c724eb8724d](https://github.com/PhenoApps/Field-Book/commit/f8681f9bf27d92727046c3d3c0fe4c724eb8724d) Device: Google Pixel 3A OS: Android 10 API: 29 ### Scanning barcodes (1D/2D) 1. Have any field csv or brapi in fieldbook. 2. Look at the plot id (or plot number for BrAPI field) of a field in the data collection page. 3. Go to the breedbase barcode page, /barcode 4. Generate a barcode from self input bar code text - For BrAPI fields, the plot number from fieldbook is the barcode text 5. In Fieldbook, go to a different plot than your test plot. 6. Click the barcode icon in the top tool bar - To enable barcode icon, go to settings to enable the feature. 7. Scan the barcode on your screen 8. Check that it is taking you to your test plot on the collect data page. #### Result Status: FAILED Tested By: Chris Tucker Date: 10/22/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Google Pixel 3A OS: Android 10 API: 29 ### Delete BrAPI Synced Data 1. Download the specification file trait_tests.xml from the trello card - https://trello.com/c/XpN9nuk0/37-fie-55-dont-allow-empty-values-to-be-saved-in-brapi-synced-trait-values-instead-show-that-na-will-be-saved 3. Import traits from BrAPI. There should be one for each data type in the specification file - Ignore barcode and zebra print 4. Change the data types of the traits so that there is one trait per data type on the specification 5. Collect data for each of the traits. Fill in two plots atleast, and one value per trait for each plot. 6. For photos, audio, and lat and long, delete the values for the observations 7. Check that the photo, audio, and lat and long disappears and when you navigate away and then back to the photo it is still gone 8. Sync with breedbase 9. Go to data collection page 10. Delete values that don't have text you can edit (Boolean, categories, etc.). - The delete behavior on these mimic the behavior of normal traits when 'NA' is selected - Try the 'NA' button on a non-BrAPI trait to see what the behavior is. Normally, it reverts the value to the default, or removes the value 11. For editable text, backspace out all text, check that 'NA' and BrAPI sync value warning show - 'NA' text should be a hint 12. For editable text, delete values, BrAPI warning should appear, 'NA' value should fill in. 13. Export via BrAPI 14. Check breedbase to see that the data was updated ``` -- You can use this query in the breedbase db to check that the traits were synced, SELECT phenotype_id, nd_experiment_id, phenotype.* FROM phenotype JOIN nd_experiment_phenotype using(phenotype_id) JOIN nd_experiment_stock using(nd_experiment_id) JOIN stock using(stock_id) where phenotype.create_date > '2019-10-08' order by stock_id --The create date should be one day before the current day. --You can narrow it down to hours and minutes if you want to be more accurate. ``` #### Result Status: PASSED Tested By: Chris Tucker Date: 11/13 /19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/f8681f9bf27d92727046c3d3c0fe4c724eb8724d) Device: Google Pixel 3A OS: Android 10 API: 29 ### BrAPI Export Trait Categorization 1. Import a BrAPI field and make it the selected field 2. Get the IP of one of your neightbors' breedbase instances 3. Import a BrAPI trait(s) from your neighbors' instance 4. Switch back to your breedbase instance 5. Import a couple of BrAPI traits from your instance 6. Make a selection of: - Your BrAPI traits - Your neighbor's BrAPI trait(s) - A few non-BrAPI traits 7. Collect some data on all of your active traits 8. Go to the BrAPI export and check that the categories reflect the number of collected observations correctly. - Observations collected under your neighbor's trait should be under 'Different Data Source' - Non-BrAPI traits should be under 'User created trait observations' - Your BrAPI traits should be under 'New Observations' 9. Sync the traits - Check to see that your traits going from the 'New Observations' to 'Synced Observations' - Everything else should remain the same 10. Update some of your BrAPI fields 11. Update some of your neighbor's BrAPI fields 12. Delete the values of some of your observations 13. Go to the export BrAPI page - Your edited BrAPI fields should be in 'Edited Observations' row - Your neighbor's BrAPI fields should be in the 'Different Data Source' still - The deleted fields should be in the 'Edited Observations' row #### Result Status: PASSED Tested By: Chris Tucker Date: 10/22/19 #### Test Environment Field Book: [4a042d95d041913dd982ab4602d56b849185b008](https://github.com/PhenoApps/Field-Book/commit/4a042d95d041913dd982ab4602d56b849185b008) Device: Google Pixel 3A OS: Android 10 API: 29 ## Images ### Loading Images In Collect Data View Verify that multiple images can be taken per plot and are displayed. #### Procedure 1. Start with no preexisting data collected 2. Import a BrAPI field and traits 3. On the traits page, edit one of the trait types to be Photo 4. Enter "test description" in the details box 5. On the collect data page, switch to the photo trait for at least two plots and take at least 5 images for each. (Note: navigation after taking a photo takes you back to the first plot and is being fixed upstream) 6. Verify that a loading dialog is shown while images are being loaded when the loading is not instantaneous and switching between plots 7. On the BrAPI export page, verify that the statistics show 10 New Images 8. Click the Export button 9. Verify that a Saving Observations.. dialog is shown and after a while a message saying Brapi Export Successful is shown and then 10 Synced Images are shown in the statistics. #### Result Status: PASSED Tested By: Nick Palladino Date: 11/11/19 #### Test Environment Field Book: [18db1c34272fa9af261ff31cedccffe6f2dc8f58](https://github.com/PhenoApps/Field-Book/commit/18db1c34272fa9af261ff31cedccffe6f2dc8f58) Device: Pixel 3a OS: Android 9 API: 28 ### Image Export After BrAPI Authorization Timeout Verify that images can be successfully uploaded from a BrAPI authorization timeout state #### Procedure 1. On the data collection page, capture a few new images using the photo trait for a plot 2. Force a BrAPI authorization loss (in this case we'll login to breedbase through the web interface which will change the user token) 3. On the BrAPI export page, verify that the statistics are accurate 4. Click export 5. Verify that a Login Needed dialog pops up 6. Click Log in to site 7. Enter your credentials and authorize access 8. Verify a message is displayed saying brapi authorization successful 9. Click export 10. Verify that a message saying brapi export successful is displayed after the images have been exported and that the statistics have been updated correctly. #### Result Status: PASSED Tested By: Nick Palladino Date: 11/11/19 #### Test Environment Field Book: [18db1c34272fa9af261ff31cedccffe6f2dc8f58](https://github.com/PhenoApps/Field-Book/commit/18db1c34272fa9af261ff31cedccffe6f2dc8f58) Device: Pixel 3a OS: Android 9 API: 28 ### Image Deletion Verify that images that have not been synced via BrAPI can be deleted. #### Procedure 1. On a plot without any image observations, collect at least three images 2. Move an image into the center of the image view which indicates it is selected 3. Press the delete button in the lower right to delete the selected image 4. Press Yes on the dialog asking if you want to delete the image 5. Verify that the seleted image disappeared from the view 6. Repeat the process until all images on the plot have been deleted #### Result Status: PASS Tested By: Nick Palladino Date: 11/11/19 #### Test Environment Field Book: [18db1c34272fa9af261ff31cedccffe6f2dc8f58](https://github.com/PhenoApps/Field-Book/commit/18db1c34272fa9af261ff31cedccffe6f2dc8f58) Device: Pixel 3a OS: Android 9 API: 28 ### BrAPI Synced Image Deletion Verify that images that have been synced via BrAPI are set to NA. #### Procedure 1. On a plot without any image observations, collect at least three images 2. On the export page, sync the collected images via BrAPI 3. Move an image into the center of the image view which indicates it is selected 4. Press the delete button in the lower right to delete the selected image 5. Press Yes on the dialog asking if you want to delete the image 6. Verify that a message is shown saying "cannot delete a brapi synced trait, using NA instead" 7. Verify that the selected photo has been replaced with a no photo available image on the display. 8. Verify that the appropriate entry in the user_traits table of the SQLite database has "NA" for a value 9. Repeat this process for the rest of the images on the plot 10. After all of the images have beeen changed to NA, press the delete button again on one of them 11. Verify that the message saying saying "cannot delete a brapi synced trait, using NA instead" is shown again 12. Verify that the user_traits table of the SQLite database shows "NA" for the value of all the images 13. On the BrAPI export page, verify that the statistics show the correct number for Edited Images (the brapi synced traits that were changed to NA) 14. Press export 15. Verify that a message saying brapi export successful is displayed and that the statistics Synced traits number is updated as expected #### Result Status: PASSED Tested By: Nick Palladino Date: 11/11/19 #### Test Environment Field Book: [18db1c34272fa9af261ff31cedccffe6f2dc8f58](https://github.com/PhenoApps/Field-Book/commit/18db1c34272fa9af261ff31cedccffe6f2dc8f58) Device: Emulated Pixel 2 OS: Android 9 API: 28 ### Sync Images & Observations Verify that images and observations can be collected and exported together. #### Procedure 1. On a plot without any images or other observations, collect at least 3 non-image observations and 3 image observations. 2. Repeat the previous step on a different plot 3. On the brapi export page, verify that the statistics show the correct number for new observations and new images 4. Press export 5. Verify that a message is displayed saying the export was successful 6. Verify that the statistics were updated and are correct #### Result Status: PASSED Tested By: Nick Palladino Date: 11/11/19 #### Test Environment Field Book: [18db1c34272fa9af261ff31cedccffe6f2dc8f58](https://github.com/PhenoApps/Field-Book/commit/18db1c34272fa9af261ff31cedccffe6f2dc8f58) Device: Emulated Pixel 2 OS: Android 9 API: 28 ### Exported Image Orientation Correct Verify that images exported match what is displayed on phone #### Procedure 1. On a real phone with exif saving capabilities, collect a few images both landscape and portrait 2. On the brapi export page, export the images 3. Verify that the exported image data has the same orientation as the images displayed in fieldbook which also matches the orientation that they were taken at. (Verification can be done by examining the sent data with a tool like Wireshark or with the phenotypic data storage system, in this case, breedbase) #### Result Status: PASSED Tested By: Nick Palladino Date: 11/11/19 #### Test Environment Field Book: [45350d6b3d405c6ac96dcec43d82c6e8bc45e75a](https://github.com/PhenoApps/Field-Book/commit/45350d6b3d405c6ac96dcec43d82c6e8bc45e75a) Device: Pixel 3a OS: Android 9 API: 28 ### Exported Image Metadata Correct Verify that the exported image metadata is correct #### Procedure 1. On a real phone with location services enabled, collect a few images 2. On the brapi export page, export the images 3. Verify that the exported image data has the metadata output you expect. - additionalInfo (empty object, not populated) - copyright (year picture was taken) - imageLocation (GeoJSON coordinates of current location) - description (Populated from Photo trait details text box) - timestamp (time picture was taken) - mimeType (will always be image/jpeg) - width/height (matches dimensions of the exported image) - filesize (matches dimensions of the exported image) - filename / imagename (both are the same and contain a string with plot, trait, and date) - observationUnitDbId (matches plot that image was collected on) - descriptiveOntologyTerms (ontology variable id) Verification can be done by examining the sent data with a tool like Wireshark or with the phenotypic data storage system, in this case, breedbase #### Result Status: PASSED Tested By: Nick Palladino Date: 11/13/19 #### Test Environment Field Book: [f8681f9bf27d92727046c3d3c0fe4c724eb8724d](https://github.com/PhenoApps/Field-Book/commit/f8681f9bf27d92727046c3d3c0fe4c724eb8724d) Device: Pixel 3a OS: Android 9 API: 28

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully