Difference between revisions of "HowTo:Debugging UBIK"
(→Isolation Testing) |
|||
(One intermediate revision by the same user not shown) | |||
Line 36: | Line 36: | ||
==== Full Test System ==== | ==== Full Test System ==== | ||
− | To reproduce the problem with {{UBIK}}, you require a test setup. This usually means a local copy of the database | + | To reproduce the problem with {{UBIK}}, you require a test setup. This usually means creating a local copy of the affected database, and installing the {{UBIK}} products relevant for the problem. It is important to use the same binaries, plugins and versions as in the system where the problem occurred. |
Then, we can try to provoke the reported issue in the test setup. This might require getting more information about the issue. | Then, we can try to provoke the reported issue in the test setup. This might require getting more information about the issue. | ||
+ | |||
+ | [[Category:Best Practices (internal)|Debug a Customizing]] | ||
+ | [[Category:FAQ|Debugging UBIK]] | ||
+ | [[Category:How-To|Debugging UBIK]] | ||
+ | [[Category:Resources (internal)|Debug a Customizing]] | ||
==== Isolation Testing ==== | ==== Isolation Testing ==== | ||
Line 49: | Line 54: | ||
With Who-Bert code and manually created test data, you can additionally set up a "mock" or "fake" situation, to test the behavior under very specific circumstances. | With Who-Bert code and manually created test data, you can additionally set up a "mock" or "fake" situation, to test the behavior under very specific circumstances. | ||
The View Test Tool simulates how the web service assembles data for the client, ignoring the ACM meta definitions (context, scopes etc.). | The View Test Tool simulates how the web service assembles data for the client, ignoring the ACM meta definitions (context, scopes etc.). | ||
+ | |||
+ | Another way to isolation-test your Plugin code is writing [https://en.wikipedia.org/wiki/Unit_testing unit tests], which is strongly encouraged. | ||
+ | |||
+ | [[Category:Best Practices (internal)|Debug a Customizing]] | ||
+ | [[Category:FAQ|Debugging UBIK]] | ||
+ | [[Category:How-To|Debugging UBIK]] | ||
+ | [[Category:Resources (internal)|Debug a Customizing]] | ||
= Inspection = | = Inspection = |
Latest revision as of 14:08, 15 February 2024
One of the most complex challenges when working on any software project is to debug unintended behavior. In UBIK®, there is an inherent structure to every project, which we can exploit for debugging. Let's find out, how.
Quick-fix check list
Many issues can be resolved by going through the following check list.
- Check settings and configurations for typos, missing entries and other errors
- Restart UBIK® Studio and reconnect to your DB to avoid caching issues
- Check whether all plugins were loaded correctly
- In case the custom code was changed, or UBIK® was upgraded to a new version:
- Compile and publish the customizing (F6)
- Restart the Enterprise Service
- Restart all Web Services
- In case the data model for the client was changed:
- Rebuild and publish the ACM meta definitions using the ACM manager
- Restart all web services
- Restart the UBIK® client application to make sure new meta definitions and content are received
A general policy for debugging
Debugging can be approached methodically. Here's a basic plan for debugging software.
- Reproduction: Get all available, relevant information about the bug and confirm the problem in a test setup
- Inspection: Inspect the actual behavior to understand the cause
- Fix: Design and implement a solution
- Retest: Test the fix