From 124fe18e6619126a4c938c77044309054821f7ad Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Wed, 26 Oct 2011 09:00:39 -0400 Subject: [PATCH] More slides. --- uds-p-qa/images/lp-os-projects.png | Bin 0 -> 33545 bytes uds-p-qa/index.html | 67 ++++++++++++++++++++++++++++- 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 uds-p-qa/images/lp-os-projects.png diff --git a/uds-p-qa/images/lp-os-projects.png b/uds-p-qa/images/lp-os-projects.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca1aadf26ce6f4656fa7b69a9261ef4fe5ea88c GIT binary patch literal 33545 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 -HTML Slidy +OpenStack Distributed QA @@ -49,10 +49,73 @@ Monty Taylor

-

OpenStack's Trunk is Gated

+

OpenStack's Gated Trunk

+ +
+

Types of Tests

+ + +
    +
  • Unit tests
  • +
  • Functional tests +
      +
    • Can be run on real or virtual servers
    • +
    • Easy for developers to run
    • +
    +
  • +
  • Integration tests +
      +
    • May be able to run on virtual servers, should run on real servers
    • +
    • Difficult or impossible for a developer to run
    • +
    +
  • +
+ +
+ +
+

OpenStack Projects

+ +
+ +
+ +
+ +
+

Test Process

+ +
    +
  • PXE boot
  • +
  • Install Ubuntu
  • +
  • Install OpenStack
  • +
  • Run test suite
  • +
+ +
+ +
+

Test Process Improved

+ +

One time:

+
    +
  • PXE boot
  • +
  • Install Ubuntu
  • +
  • Install OpenStack dependencies
  • +
  • Snapshot LVM volume
  • +
+

Each test:

+
    +
  • Kexec boot into LVM snapshot +
  • Install OpenStack
  • +
  • Run test suite
  • +
+ +
+