TestTypes.rst 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. Types of tests
  2. ==============
  3. No matter if your organization is agile or waterfall oriented or follows one of the many hybrid variants. Sooner or later
  4. you'll have an increment - an outcome from your software developers or customizers. You paid for it. You want it in production.
  5. But will it work? Will there be any unwanted side effects to existing functionality?
  6. Increment testing
  7. -------------------
  8. Usually an increment is tested manually by human testers who are not identical with the developers.
  9. Depending on maturatiy of your organization and many other factors, the testers will be more or less clearly instructed,
  10. what to test. They might have written business requirements and deduct the test cases themselves. In ideal setups they
  11. were part of the development lifecycle, know the deviations from original requirements, pitfalls and workarounds and can
  12. adjust their test expectation accordingly.
  13. Unless you're in a greenfield situation where the whole system landscape needs to be tested and retested for months or years
  14. your Testers will focus on testing the increment - not so much the existing functionality, which used to work fine already.
  15. Use ``baangt`` already in preparation of this test phase. Create all the test cases, that you plan to execute. Create all
  16. the data combinations, that you'll want to have tested. Once the functionality is there, record the most complex scenario
  17. in the recorder. Instead of testing 100s of cases manually, you'll need only one recording and the prepared dataset. Start
  18. the TestRunExecution, sit back and wait for the results. Simple like that.
  19. Heartbeat and Alive-Testing
  20. ---------------------------
  21. Alive-Testing is usually done with just one quick test case in all stages (Dev, Pre-Quality and Quality-System). It will
  22. show general availability of the landscape and applications running on it. Alive-Tests with some APIs could run for instance
  23. every 5 minutes.
  24. Heartbeat tests are a smaller subset of regression tests. E.g. if you have 10.000 testcases in regression tests, you'd
  25. use a few hundred for heartbeat tests. They'd usually run a few times per day on Pre-Quality- and once per day on
  26. Quality-System) and of course in the build pipeline.
  27. Regression testing
  28. ------------------
  29. If you followed through on Increment testing imagine the joy of the next release! You'll have the increment tested and run
  30. all test cases of previous increments as well. That's called regression testing. If you did everything well use the results
  31. of regression tests and increment tests as rock-solid base for your decision whether to move on to production or not.
  32. Performance testing
  33. -------------------
  34. So you did regression and increment tests, moved to production and receive countless complaints from users, that the
  35. performance of the system is too slow. Additionally there are now bugs that appear due to timeout situations. Damn.
  36. **What happened?**
  37. You tested only for functionality, but not for load. With a few simple adoptions to your test cases you can simulate any
  38. number of users. To achieve realistic performance testing you'll need more hardware for testing than for regression and
  39. increments. But you'll use the same tool: ``baangt``.
  40. As of today (Jan 2020) ``baangt`` does not provide infrastructure monitoring. In order to analyze the results of your
  41. performance tests you'll need additional tools, but ``baangt`` will give indications, which components or which functionalities
  42. need a closer look by your experts.
  43. End to End (E2E) Testing
  44. ------------------------
  45. Whenever you have more than one system/microservice dealing with a process, you'll need E2E-Testing. Of course E2E-Tests
  46. are more complex than just running test cases against one functionality and compare results to the expected values and
  47. behaviour. In larger organizations you'll want to have E2E-Regression tests before you release increments to production.
  48. ``baangt`` follows a structure of TestCaseSequences where you combine multiple single Testcases into one Sequence, which
  49. is exactly tailored to run E2E Tests.
  50. Lifecycle tests of business objects
  51. -----------------------------------
  52. Lifecycle tests come in basically two variations, but can be combined - depending on the requirements of the business.
  53. Many industries deal with objects, that follow a certain (long) life cycle. The life cycle can go over years or decades.
  54. These tests are complex and cost a lot of time and effort.
  55. Time travel tests
  56. ^^^^^^^^^^^^^^^^^
  57. Often companies have "Time travel" system landscapes, where they
  58. create copies of the whole system landscape (or large parts of the core systems), change the system time on all servers
  59. and run tests subsequently with different dates. ``baangt`` does not support this type of testing out of the box. But
  60. we provide a functionality to "Pause" Testcase and TestCaseSequence execution. You can easily subclass the corresponding
  61. master classes and create your own mechanism, when to pause a Testcase or TestCaseSequence.
  62. Cradle to the grave
  63. ^^^^^^^^^^^^^^^^^^^
  64. Another common form of lifecycle tests. In this case the system time remains basically the same, but the test cases are
  65. created in a sequence to follow the birth of an object until it's deletion. This might be a material, which get's created,
  66. production recipe created, work planned, sales contract and order created, produced, delivered, invoiced, paid and
  67. revenue calculated. In service industries C2G-Tests are designed around a customer. ``baangt`` fully supports complex
  68. testcaseSequences running on multiple technologies (Web, API, etc.) also in asynchronous scenarios, for instance if you
  69. need to wait for nightly batch processing of a mainframe.
  70. No oversimplification
  71. ---------------------
  72. Please don't get me wrong. Just because we have a great tool, it doesn't mean that testing will happen by itself. There's
  73. still a lot of expert work needed for Testdesign, Stagedesign, Creation and maintenance of Testsets, creation and
  74. maintenance of test data sets, deployment strategies. ``baangt`` provides efficient ways to work, but work still needs
  75. to be done.