I would like to emphasize this requirement, in addition to my upvote, by way of argument, because this felt extremely annoying restriction has forced me several times to confusing callTestCase() workarounds, which cause further disadvantages, e.g. when using Test Listeners sensibly:
I disagree with you, Trong Bui, when you suggest a kind of best practice, based on your own handling of test cases and test suites, according to which all test cases in a test suite should function independently of each other. I have worked with other testing software before and neither there nor in Katalon Studio have I ever seen the need to inflate test cases to such an extent that one lost track of completed sensory units or could no longer debug them reasonably.
On the contrary:
With its many options for managing test cases in folders, test suites in folders and test suite collections and custom keywords in packages, Katalon Studio in particular invites you to structure your work flow according to your own needs, which I appreciate very much! For me, however, this inevitably includes the fact that I want to store several related test steps, which I need repeatedly, in individual test cases in order to avoid generating duplicate code. And that means that a test suite MUST offer the possibility to call such test cases repeatedly. If I have to misuse a master test case as a test suite to be able to call all test cases in the desired order and several times if necessary, then I simply lack understanding for this felt superfluous and only hindering restriction. I cannot see what higher purpose this is intended to serve or what dangers it is intended to prevent. I therefore do not consider this requirement to be a nice to have but a must have.
Thanks for this otherwise great software and your effort!