diff options
-rw-r--r-- | docs/com/pres/functest2019/functest2019.md | 105 | ||||
-rw-r--r-- | docs/com/pres/functest2019/index.html | 52 |
2 files changed, 157 insertions, 0 deletions
diff --git a/docs/com/pres/functest2019/functest2019.md b/docs/com/pres/functest2019/functest2019.md new file mode 100644 index 000000000..48f01cb0c --- /dev/null +++ b/docs/com/pres/functest2019/functest2019.md @@ -0,0 +1,105 @@ +# Functest 2019 + +[Cédric Ollivier](mailto:cedric.ollivier@orange.com) + +2019/01/08 + + + +## Gates + + +### Today's Verify -1 + +- one error is detected by yamllint, pep8, pylint, ansible-lint, bashate or + doc8 +- one unit test fails (py27 and py35) +- specific modules are not rated 10/10 by pylint +- our Framework is not fully covered +- unix permissions are wrong +- one doc cannot be generated without warning + +Please see [tox.ini](https://git.opnfv.org/functest/tree/tox.ini) for details + + +### Great! But + +- the current gate checks all coding rules, our Framework and all interfaces +to third-parties but **not our testcases** +- it doesn't break **the circular dependencies** between Installers and +Functest (Installers ask for a trustable healthcheck but we need results of +"Installer runs" as prerequisites) + +Our testcases have still **to be verified by hand** what differs from +OpenStack Workflow. + + +### Functional gating + +- we need to run all Functest patches before merge against reference +plateforms (OpenStack and Kubernetes) +- a voting job must forbid the merge if one test fails (as the workflow +process implemented by OpenStack) + + +### Improve the current daily model + +- all Functest jobs are linked to the OPNFV installers and can hardly be + reused by endusers +- all test suites are run sequentially +- rally_full is excluded due to its duration (~3 hours) +- all possible remaining resources are cleant when installing the scenarios + +**It's fine for gating installers but not for verifying that Functest supports parallel and live testing** + + +### New Xtesting Ansible role + +- deploy anywhere the full OPNFV CI/CD toolchain in few commands +- easily add external bots voting in reviews +- produce all Xtesting-based fonctional jobs (Xtesting, Functest and Functest + Kubernetes) in Releng +- could be instanciated for testing services out of the infrastructure domain + +**It's already in a [good shape](https://lists.opnfv.org/g/opnfv-tech-discuss/message/22552). [Try it!](https://wiki.opnfv.org/pages/viewpage.action?pageId=32015004)** + + + +## Quality Assurance + +**Functest is matching the OpenStack Quality Golden rules** + + +### Pylint and coverage (started from E release) +- only need to refactor several vnf testcases and to remove duplicated code +- document well and cover Functest utils: they are reused by +OPNFV third-parties (SFC, SDNVPN) + +** Functest will be rated 10/10 very soon** + + +### releasing + +- Functest could be also released as a classical Python packages like Xtesting( +[PyPI](https://pypi.python.org/pypi)) +- Xtesting and Functest could be released as GNU/Linux distribution packages + + + +## other challenges + + +### proposals + +- integrate Rally and Tempest as core modules in Functest (we do merge tempest.py and + conf_utils.py) +- deploy cloud-native VNF (Clearwater IMS?) +- why not leveraging on OpenStack middlewares such as + [oslo.config](https://docs.openstack.org/oslo.config/latest/)? +- promote our VNF testcases in the upstream communities + +**Any new testcase is more than welcome!** + + + +## Thank you diff --git a/docs/com/pres/functest2019/index.html b/docs/com/pres/functest2019/index.html new file mode 100644 index 000000000..33dc9a9f2 --- /dev/null +++ b/docs/com/pres/functest2019/index.html @@ -0,0 +1,52 @@ +<html> +<head> +<title>Functest 2019</title> +<meta name="author" content="Cédric Ollivier"> +<meta name="viewport" + content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> +<link rel="stylesheet" href="../reveal.js/css/reveal.css"> +<link rel="stylesheet" href="../reveal.js/css/theme/white.css"> +<link rel="stylesheet" href="../reveal.js/lib/css/zenburn.css"> +<script> +var link = document.createElement( 'link' ); +link.rel = 'stylesheet'; +link.type = 'text/css'; +link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js/css/print/pdf.css' : '../reveal.js/css/print/paper.css'; +document.getElementsByTagName( 'head' )[0].appendChild( link ); +</script> +</head> +<body> + <div class="reveal"> + <div class="slides"> + <section data-markdown="functest2019.md" data-separator="^\n\n\n" + data-separator-vertical="^\n\n" data-separator-notes="^Note:"></section> + </div> + </div> + <script src="../reveal.js/lib/js/head.min.js"></script> + <script src="../reveal.js/js/reveal.js"></script> + <script> + Reveal.initialize({ + dependencies : [ { + src : '../reveal.js/plugin/markdown/marked.js', + condition : function() { + return !!document.querySelector('[data-markdown]'); + } + }, { + src : '../reveal.js/plugin/markdown/markdown.js', + condition : function() { + return !!document.querySelector('[data-markdown]'); + } + }, { + src: '../reveal.js/plugin/highlight/highlight.js', + async: true, + callback: function() { + hljs.initHighlightingOnLoad(); + } + }, { + src: '../reveal.js/plugin/notes/notes.js', + async: true + } ] + }); + </script> +</body> +</html> |