Add new user story Openstack Extreme Testing
This user story addresses advanced software tests and required frameworks for conduct those tests in openstack ecosystem. Change-Id: Ic6a7b95231cb624b92c7adf9f65ed5c57560f15d
This commit is contained in:
parent
da98e010eb
commit
b4367b57cd
158
user-stories/proposed/openstack_extreme_testing.rst
Normal file
158
user-stories/proposed/openstack_extreme_testing.rst
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
OpenStack Extreme Testing
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Cross Project Spec - None
|
||||||
|
|
||||||
|
User Story Tracker - None
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
*Problem Definition*
|
||||||
|
++++++++++++++++++++
|
||||||
|
|
||||||
|
In order to provide competitive service to the customers, OpenStack operators
|
||||||
|
are upgrading components, integrating new hardware, scaling up, and making
|
||||||
|
configuration changes in frequent manner. However, all of those
|
||||||
|
variations are not tested in current OpenStack test systems. Most of the
|
||||||
|
OpenStack cloud service providers conduct tests by themselves before introducing
|
||||||
|
new changes to production. Those tests include integration testing, component
|
||||||
|
interface testing, operational acceptance testing, destructive testing,
|
||||||
|
concurrent testing, performance testing, etc.. Currently the OpenStack ecosystem
|
||||||
|
has unit, functional, and integration testing, and most of the above listed
|
||||||
|
tests are missing or only partially implemented in the ecosystem.
|
||||||
|
|
||||||
|
|
||||||
|
Opportunity/Justification
|
||||||
|
+++++++++++++++++++++++++
|
||||||
|
|
||||||
|
These extended tests can significantly improve the overall quality of the
|
||||||
|
OpenStack and dramatically reduce the delivery time to introduce a new release
|
||||||
|
or new changes to production environment. Tests will be run before stable
|
||||||
|
release by the QA team or even more collaboratively by the 3rd
|
||||||
|
parties CI interface, spreading the cost of pre-stable testing and increasing
|
||||||
|
the amount of issues reported for fix before release.
|
||||||
|
However, testing upstream code with all possible combinations of HW and
|
||||||
|
configurations is not practical. One possible solution is, QA team will
|
||||||
|
run these extended tests on few pre-selected reference architectures and
|
||||||
|
other architectures will be added as 3rd party CIs.
|
||||||
|
After release the tests can be used by each distributor in their stabilization
|
||||||
|
processes and finally each operator as they stabilize their configuration
|
||||||
|
and each deployment. Currently operators are doing these extended tests
|
||||||
|
by themselves and not collaborating and taking advantage of each other.
|
||||||
|
|
||||||
|
|
||||||
|
Use Cases
|
||||||
|
---------
|
||||||
|
|
||||||
|
User Stories
|
||||||
|
++++++++++++
|
||||||
|
|
||||||
|
This section utilizes the `OpenStack UX Personas`_.
|
||||||
|
|
||||||
|
|
||||||
|
* Destructive testing
|
||||||
|
|
||||||
|
As `Rey the Cloud Operator`_, I would like to have all the OpenStack projects
|
||||||
|
to be tested for destructive scenarios on OpenStack cloud system with
|
||||||
|
`High Availability <http://docs.openstack.org/ha-guide/>`_ configurations
|
||||||
|
such as controller node high availability, Networking, Storage, Compute
|
||||||
|
service high availability etc..
|
||||||
|
So that as we deploy OpenStack into production we have fewer situations in
|
||||||
|
which OpenStack functions themselves fail (bugs fixed beforehand) and
|
||||||
|
for others we avoid or can plan to mitigate with our specific configurations.
|
||||||
|
|
||||||
|
.. todo:: Add the details of reference architecture for Destructive testing
|
||||||
|
|
||||||
|
* Concurrent testing
|
||||||
|
|
||||||
|
As Rey, I would like to have following OpenStack projects to be
|
||||||
|
tested before stable release for concurrent testing. So that as we deploy
|
||||||
|
OpenStack into production environments we are confident that a real world
|
||||||
|
situation of simultaneous function calls does not fail.
|
||||||
|
|
||||||
|
Openstack Projects for extended testing
|
||||||
|
* Nova
|
||||||
|
* Cinder
|
||||||
|
* Glance
|
||||||
|
* Keystone
|
||||||
|
* Neutron
|
||||||
|
* Swift
|
||||||
|
|
||||||
|
|
||||||
|
.. _OpenStack UX Personas: http://docs.openstack.org/contributor-guide/ux-ui-guidelines/ux-personas.html
|
||||||
|
.. _Rey the Cloud Operator: http://docs.openstack.org/contributor-guide/ux-ui-guidelines/ux-personas/cloud-ops.html#cloud-ops
|
||||||
|
|
||||||
|
Usage Scenario Examples
|
||||||
|
+++++++++++++++++++++++
|
||||||
|
|
||||||
|
**Destructive testing**
|
||||||
|
|
||||||
|
Destructive testing simulates when part of the underlying OpenStack
|
||||||
|
infrastructure (HW or SW) or a component of OpenStack itself fails
|
||||||
|
or needs to be restarted and verifies that the system operates
|
||||||
|
properly even in such conditions:
|
||||||
|
|
||||||
|
* Shutdown a control node where API services are running and verify that API
|
||||||
|
requests are processed as expected
|
||||||
|
* Restart of network switches and verify that services can recover
|
||||||
|
automatically
|
||||||
|
* Restart some OpenStack services and verify that service can recover
|
||||||
|
in expected downtime.
|
||||||
|
* Generate DB/RabbitMQ downtime and verify that there are no request
|
||||||
|
loss or non-recoverable errors in the system.
|
||||||
|
* Shut off a hardware blade
|
||||||
|
|
||||||
|
.. todo:: Add more details to each test case
|
||||||
|
(ref: Destructive testing reference architecture)
|
||||||
|
|
||||||
|
**Concurrent testing**
|
||||||
|
|
||||||
|
Concurrent testing issues requests to a functioning OpenStack cloud more
|
||||||
|
than 1 at a time. This can be the same functional request but for 2
|
||||||
|
different users or different functional requests but accessing the
|
||||||
|
same resource. Expected result is that the functions complete in the
|
||||||
|
same manner as they did when not issued simultaneously.
|
||||||
|
Openstack Rally can use to conduct these concurrent tests.
|
||||||
|
|
||||||
|
* Tenants added at the same moment
|
||||||
|
* Networks requested at the same moment
|
||||||
|
* In a constrained storage environment a release of storage and request
|
||||||
|
for that storage happen at the same time.
|
||||||
|
* Simultaneously shelve and migrate instance and then unshelve the instance
|
||||||
|
* Simultaneously create multiple snapshots from an instance
|
||||||
|
|
||||||
|
|
||||||
|
Related User Stories
|
||||||
|
++++++++++++++++++++
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
*Requirements*
|
||||||
|
++++++++++++++
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
*External References*
|
||||||
|
+++++++++++++++++++++
|
||||||
|
|
||||||
|
* `Destructive testing (os-faults library and Stepler framework) <https://etherpad.openstack.org/p/ocata-qa-destructive-testing>`_
|
||||||
|
|
||||||
|
* `OS Faults <https://github.com/openstack/os-faults>`_
|
||||||
|
|
||||||
|
* `HA Failure Test <https://github.com/avdhoot07/HA-Failure-TEST>`_
|
||||||
|
|
||||||
|
* `RBAC policy testing <https://etherpad.openstack.org/p/ocata-qa-policy-testing>`_
|
||||||
|
|
||||||
|
* `Cloud99 <https://github.com/cisco-oss-eng/Cloud99>`_
|
||||||
|
|
||||||
|
|
||||||
|
*Rejected User Stories / Usage Scenarios*
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Glossary
|
||||||
|
--------
|
||||||
|
|
||||||
|
None.
|
Loading…
Reference in New Issue
Block a user