owned this note
owned this note
Published
Linked with GitHub
# 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