Manual Tests to Run Before Dgraph Release

These are generic tests. See also version-specific tests for v1.2.x, v20.03.x

Deployment

  • Manual Start. (Mac, Ubuntu or CentOS, and Windows)
    • Manual start (3 nodes minimum, 1 zero + 2 alpha)
    • Manual start (3 nodes minimum, 1 zero + 2 alpha) with encryption
    • Manual start (3 nodes minimum, 1 zero + 2 alpha) with acl
    • Manual start (3 nodes minimum, 1 zero + 2 alpha) with tls
    • Manual start (3 nodes minimum, 1 zero + 2 alpha) with encryption, acl and tls
  • Kubernetes (Platform Independent)
    • Deploy with yaml file
    • Deploy with Helm
  • Docker (Mac, Ubuntu or CentOS, and Windows)
    • Deploy with docker

Export / Import / Backup / Restore

  • (Mac, Ubuntu or CentOS, and Windows)
  • Import a big dataset with the live loader
  • Import a big dataset with the bulk loader (start with a clean installation)
  • Export the dataset imported in the previous step (Tip: http://localhost:8080/admin/export)
  • Test the enterprise backup (same dataset)
  • Restore the backup previously taken
  • Start a cluster with the restored data and verify existing data can be mutated. Also verify that new data can be added.
  • Backup data in a cluster running (latest version of Dgraph - 1), and restore the backup to a cluster running the latest version. The restore operation should succeed because Dgraph stores backups in a backwards-compatible format.

Upgrade

  • (Mac, Ubuntu or CentOS, and Windows)
  • Import-export
    • Install previous GA release (its latest patch). Import a big dataset and then export the data
    • Load the data previously exported into the new release that is being tested
  • In-place
    • Only for patch releases: Start from a previous patch release. Load a big dataset. Stop the cluster, install new binary, start the cluster again. Check the logs for errors. Quickly verify that the cluster has started and the data are there

Ratel (Platform Independent)

  • do some random testing until we write down some specific tests

you have to run with local bin use http://localhost:8000/?local

For TLS. mTLS or regular TLS. Both?

Do we have docs, step-by-step instructions? checklist, track pass/fail?

This is great doc.

I wrote of a TLS Manual Steps detailing out the specifics (5 types of tests):

@santo @LGalatin.

Kubernetes Deploys

How would we want to do K8S deployments, what’s the focus? Will this test dgraph or test our helm charts, manifests, etc in the script.

On deployment w/ K8S: we could factor in things like:

  • K8S platform: AKS, EKS, GKE
  • Service (LoadBalancer): internal, external, http, https, grpc, dns registration
  • Ingress: internal, external, http, https, grpc, dns registration
    • ingress types: gce, alb, ingress-nginx on gce, ingress-nginx on aws
    • others: linkerd, itsio, envoy, aws app mesh

Test Rail Tool

@Sankalan13 and I were investigating TestRail (https://testrail.io) as a possible solution. The idea is detail out the tests we’d like to run for this, and then detail the steps to verify a feature (some of this document well, some if it not documented well). And after or in parallel, start automating some of this.

This can also segue into dog-fooding (stage environments) in regards to Kubernetes Deployments.

Here’s some screen shots.

Test Cases for TLS

Test Suites