We have a large and long established product, and also a pretty complete set of TestComplete automation tests for it.
We are using TestComplete : 10.60.3387.7 and Syncfusion: 188.8.131.52.
One area we have not been able to test is a Syncfusion GridTreeControl. We have looked for some preliminary assistance on this in the past, but we were not ready to look at this seriously until just now.
There seem to be several options available, and what I am asking for is advice as to which might be the best to take:
1) map the control to some other type of control that TC already understands -- I am not sure of the details of this but it sounds like it would likely fail as soon as we encounter some feature of the GridTreeControl that the other control did not have...
2) add IAccessible implementations for parts of the control that we need to access. This sounds promising, however I haven't got into this in great detail as I want to be sure I am going in a productive direction before getting too deeply into it
3) use the TC SDK -- this might prove a little awkward as it seems to be a C++ SDK and the control is obviously .NET -- however we have a managed <-> unmanaged interoperability layer elsewhere in the product, so we could go this way if it made sense in other ways
4) call .NET assembly methods directly from scripts, presumably after adding suitable methods to either the application, or else a "test only" assembly that we deploy next to it
The problem with the last two is that we may be getting a little far from the ideal of testing. e.g. that we won't be driving the application exactly as a user would, and will instead be poking around a little in its internals. Thus our results may not precisely confirm that a user undertaking the same steps would get the same result. I am not sure how true this is for access via IAccessibility.
Any advice gratefully received!
Oh, one thing that might change the answer, we have a full source-code license for Syncfusion and can change their code if required. Obviously this has a maintenance cost. Ideally it might be best if we write test-only code in a separate assembly or (if it is harmless enough) inside the app.
Sounds like you have investigated this question very hard. That’s great!
I would vote for calling Syncfusion GridTreeControl’s methods and properties in TestComplete. By using this method, you can make sure that the code will work even if the control’s version is changed (due to the backward compatibility).
--------- Tanya Gorbunova SmartBear Community Manager
Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️