Clarion and ANT (or some other automated testing platform)

Our Team works in a manufacturing environment. Changes to our application suite come fast and furious as new products or features evolve. While we can make our changes in a timely manner, getting the end-user testing done is a HUGE issue. We have discussed alternatives; but, upper management does not see the value of another body. On top of that, even if we could hire someone, our market is very niche and the learning curve would be massive.

To that end, I am exploring the use of an ANT-like solution that could be used to perform our testing. Has anyone done this? What product did you use?

Thanks, in advance,

Steve

people have done automated testing before. i think there might even be an article on ClarionMag about it.

Dave harms wrote an article about unit testing, Sean.
Don’t recall clarionmag having anything about actual full app automated testing, though.

Hope the New Year is treating you well!

Yeah,

That might be what I was thinking about.

I know automated testing has been talked about, maybe it was on the newsgroups.

OK…

Sounds like a business opportunity for the really ambitious.

What I recall Dave writing about was “The Problem with Embeds” and moving your Business logic Code from Embeds to a Class. Then he created Clarion Test (available on GiHub) that made it possible to test Classes or any kind of Library. So in the end a good portion of code is no longer hidden in the APP and can be tested. That would allow a form of Unit Testing

There are several Clarion Live Webinars that showed Clarion Test. Mike Hanson has showed developing new Classes using it for Test Driven Development.


25+ years ago in 16-bit Clarion I recall using Visual Test to script many automated tests that exercised Window Forms and examined results. It worked well. When we moved to 32-bit it would no longer move between controls reliably and would almost always stall, so we gave up.

I only use Clarion and the applications developed on it for automated testing. Our internal framework has a set of tools for these purposes.

  1. DCT testing. We check according to certain business rules.
  2. App testing. We check the structure of the Window, the completeness and filling of the promps in the templates.
  3. Checking the contents of the database. The fields of the tables are checked for acceptable values and relationships between the tables. The procedure is generated automatically based on the contents of the dct and user options.
  4. Business logic testing. Business logic procedures usually form samples in a queue, and the values in these samples may overlap. In difficult cases, we enable special testing procedures that compare such values. The framework has a system table with a list of tests.
  5. Testing reports. Reports are usually generated in advance in a queue. We store sets of report parameters and execution results in the test database. Then we run automatic testing from time to time, in which the program consistently generates a report with each set of parameters and compares it with the saved results. You can also run batch tests that perform testing for a given list of reports.
  6. Testing the interface. The Ctrl+Alt+U hotkey is integrated into the window procedures, and after pressing it, the window is played. A recycle is performed, tab traversal, and mouse pointing at controls with tooltip display. You can run tests in batch mode according to a set list of procedures.
  7. Testing the user experience. We can enable recording of pressing/selecting controls in certain windows with a fixed time between them, and then play it in visual mode.
  8. Load testing. You can create the required number of users who will automatically perform resource-intensive calculations on a given list in a loop. Then, against the background of their work, check the performance of ordinary users. Load testing can be performed on a working customer database or automatically create a database by filling in tables according to the specified parameters.
  9. Testing the speed of read/write operations to the database according to the specified parameters.
  10. Code timing. Measurements of the execution time between specified locations in the code. The internal software inserts lines with the appropriate operators into the right places in the clw, compilation and measurements are performed. Then it restores the original clw.
  11. A high-level debugger for step-by-step debugging of code in routine and class methods. Internally, the software inserts a debugging procedure call with positioning parameters into the clw via a line, compiles it, and we get the opportunity check the operation of the code in step-by-step mode. After debugging, we restore the original clw from the copy. Setting simple and conditional breakpoints, viewing variable values, groups, queues, dynamically changing variable values, searching in source code, bookmarks, etc. It is important that step-by-step debugging can be run remotely from the client database.
  12. Like everyone else, we sometimes use Windows message monitoring.