Working and Testing - One2Remember/UrbanFlix GitHub Wiki

Testing

Unit Testing

Because our application is fundamentally a content stream, virtually all testing was done via the emulator and on an Android phone. However, some of the business logic was consolidated into the MovieReview Class, the User Class, the PreferencesHelper Class, and the FirestoreHelper Class. Of these four, the first three were readily testable, though PreferencesHelper was a bit of a challenge, requiring including a few more external dependencies for tools designed to test Shared Preferences helper class. Unfortunately, testing FirestoreHelper was beyond the scope of this project, as it would've required emulating the application with a dummy connection to Google's Firestore using their own testing framework. While technically possible, we feel this was beyond the scope of this project.

PreferencesHelper Test Suite

PreferencesHelper

MovieReview Test Suite

ReviewTest

User Test Suite

UserTest

Integration Testing

For Integration Testing, we took a top-down approach. The first thing we implemented in the project were basic navigation features with each Activity acting as a module stub. As we fleshed out those modules, each was integrated into the larger skeleton and tested rigorously before being fully committed. By constantly rerunning emulations via AndroidStudio on different phones, we were able to ensure each module worked properly before it was fully integrated. By the time all modules had been basically functional, no additional integration testing was required. As we tweaked the individual modules, we reran the emulator, and in no cases did we ever break our original core design, showing the fundamental structure of the application interface was sound from the initial top-down design.

Work Instance

Movie Reviews

Home page view

Home Page

Searching a movie title

Movie Search

Upvote/Downvote

Brand new review

Same review downvoted

Same review upvoted

Account Creation

Account Creation Page

Account Creation Page

Email or Username already exist

Account Creation Failed

Account Login

Account Login Page

Login Page

Failed Login - Incorrect Username or Email

Login Failed

Account Page

Account Page

Create a Review

Create Review Page

Create a Review

Home page - Before

Before

Home page - After

After

Database Instance

Movie Review Creation

Before Making a New Review

Before new review

Making New Review On the App

Before new review phone

After Adding New Review

After new review

Account Creation

Before making new account (credentials hidden for security)

Before new account

After making new account (credentials hidden for security)

After new account