Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I am looking for a free QT UI testing tool for Windows. I have unit tests for my backend modules using boost::Test. However, the UI has more potential to malfunction and I would also like to test this.
The testing frameworks that I found using the search function on Stackoverflow only involve a few frameworks - and those do cost. Also, it should be usable with an LGPL project.
Is there any free way to do it?
Testing / Troubleshooting User Interfaces is a very tough process.
Classic unit-test frameowrks (QTest, boost, gtest) are usefull for testing non-interactive modules, classes, functions.
When inputs are required, things become much complicated.
You could choose a "mocking" framework such as gmock to "simulate" a user input.
But if your GUI application has many windows, dialog-boxes, gui elements it might become a real pain in the neck.
There is a second approach that I recommend.
I spent years developping applications with Qt. My first applications did not respect any MVC model.
The debugging and the code tuning was very painfull.
I also made an effort to separate the logic from the user-interface as much as possible.
Just like the MVC model of Qt (QAbstractItemModel).
This way, you're able to test your models in regular unit-tests frameworks.
You can extend this logic to all of your gui components.
Finally, you'll still have to perform "human tests" to troubleshoot your application.
But this is a normal phase in the development process.
There's only a human resource that could use your software, click anywhere in the windows, dialog-boxes, do weird things etc
That's the best way to find out unbelievable GUI bugs !
Not a unit-test can find them out.
A developper cannot reproduce the behavior of the person that will use your software.
Because we unconsciously know where bugs may occur...and thus, we often don't click where it's not recommended...
Think about it.
Z.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
My requirement is to seamlessly hot deploy code update to a running service without losing the current status, including collection data. Is there any c++ framework out there I can use to develop such a solution?
You probably should read some research papers on dynamic software updating, e.g. on Kitsune (which you might use)
There is a major issue about updating the call stack (and instances in local variables); read also about continuations; and you might have some special case (if your application is event loop driven like most GUI applications are, you probably want to update the code outside of event handlers).
You certainly should think of dynamic software update very early in your design. Perhaps some terminology and concepts from garbage collection & persistence & serialization techniques are relevant.
Your requirement (to seamlessly hot deploy code update to a running service without losing the current status) is very hard and will need a lot of work (probably years) and is still a difficult & interesting research topic (definitely it is a good PhD subject).
You might want to use your own meta-programming techniques, that is generate most of the relevant C+++ support code by your own code generators.
If you already have a significant code base, you could consider customizing a recent GCC compiler with MELT (e.g. to query the compiler's internal representations and generate some code from them) -but even that means a lot of work-
PS. Coding in something better than C++, like Erlang or Common Lisp, would make your goal less difficult.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm curious if there are any free open source projects written with ColdFusion (CFML) that have substantial unit testing or other forms of automated testing already done for the core features?
I'd like to consider basing some of my open source project on existing code if the implementation is following more best practices and has automated tests.
For example, a library for handling form / validation. A library for string manipulations. Database handling, etc.
Edit: MXUnit is fine for unit testing framework, but I'm asking more about non-testing frameworks that have implemented unit tests to verify their features.
If you're looking to get involved in an open source project that is pro-unit testing and involves form / validation then have a look at ValidateThis - http://www.validatethis.org/
When I've added to the framework in the past the guys supporting it have asked for tests to be included where at all possible so there should be plenty there to get you started. I'd advise asking on the VT forums for more information and on how you can support the project.
If you're looking for a unit testing framework for your own projects then I'd recommend MXUnit (http://www.mxunit.org/) which is certainty the most popular U.T. tool in the ColdFusion community at the moment.
In terms of application frameworks that have built in testing features I can only comment on one and that's ColdBox (http://www.coldbox.org/) which I know is built upon MXUnit but also includes a pile of other features including their own mocking tool - Mockbox (http://wiki.coldbox.org/wiki/MockBox.cfm)
Bruce, The ColdBox MVC Platform has always published its Unit Tests as part of the GitHub repo:
https://github.com/ColdBox/coldbox-platform/tree/master/testing/cases.
Since you mentioned validation, here are the tests specifically for ColdBox's validation engine:
https://github.com/ColdBox/coldbox-platform/tree/master/testing/cases/validation
You will need to tweak some settings to run them locally, but they are all there.
Since you mentioned wanting to build reusable libraries, please check out ColdBox plugins (for small chunks of reusable code) and ColdBox Modules (For more complex functionality that uses all pieces of the MVC platform).
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 11 months ago.
Improve this question
i already know java, c++ (no one framework for GUI development) and little of c# (winforms for gui development) but i'm thinking to ivest my free time to learn Qt, what do you recommend me? has Qt a good future or not?
I think it's worth it. We used Qt recently because it allowed us to make a cross-platform GUI that looks good on Linux, Windows, and Mac. It's kind of a tough learning curve to figure out how to use the QLayouts correctly, but after you do your GUI will look great on many different platforms, with many different font sizes, and with many different window sizes. I like how Qt allows you to make applications that use the native widgets with the native look and feel. Applications built with Qt will look like they belong no matter what platform they are running on. Another great feature is that the Qt framework is small enough that you can just include the Qt DLL files in your application's binary directory, so it simplifies the installation process for your application and makes life easier for everyone (no VMs to install, no 600 MB downloads).
I'd recommend using Qt directly from C++. There are wrappers for it on many languages, but it's hard to believe those wrappers will support every feature and allow you to subclass Qt classes.
You can kind of make cross-platform GUIs with C# WinForms, using Mono on Linux and Mac. But Mono's WinForms is not maintained, the results look really bad, and there are some crippling bugs on macOS.
I can't say enough good things about Qt. Their documentation is bar-none. I've never seen more examples and better documentation that with Qt. It's the standard by which I judge all other frameworks. What's more, the Cross-Platform capabilities are amazing. You get native looking apps, all for free. I'd say go for it.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
Looking for a C++ GUI library in which you can design fancy GUIs (like for games),
something in which you can make something beautiful (rounded buttons with rollover effects, embed beautiful background graphics, cool and colorful scrollbars and progress bars, etc.)
It needs to be open source & allowed to be used in proprietary software. Should be also cross-platform, and shouldn´t need to be linked to thousands of libraries or days to get the compiler configured to run even for small samples.
I hope I´m not asking too much
I tried CEGUI and I wasn´t convinced — it was tricky and I compiled the samples but they didn´t run on some computers.
QuickGUI seems to need OGRE (tell me if I´m wrong), which I don´t want to learn now.
Navi needs GeckoRuntime, which ist too big for my project!
wxWidgets doesn´t seem to be focused on design but on functionality (tell me if I´m wrong)
Try GTK+ or Qt, although it's more of a framework than a library. Both are widely used GUI toolkits. Hope that helps.
I believe libRocket is designed with game user interfaces in mind.
http://www.librocket.com/
Its based on HTML/CSS which, in my opinion, is an excellent way to define a user interface.
You might want to take a look at Qt. You can probably do much of what you are asking for using Qt. More specifically take a look at these features in Qt
CSS Customizations of Qt Widgets
QtOpenGL for 3D graphics ( if you need 3D graphics and need to embed Qt Widgets into a 3D environment).
QGraphicsView for combining multiple widgets in different ways
When you download Qt, it comes with a set of demos. You can take a look at these demos and other examples and re-use the concepts of the parts you like.
I have worked with Qt quite a bit and I can confidently say that you can achieve just about anything you can imagine.
GuiChan? http://guichan.sourceforge.net/wiki/index.php/Features
I haven't personally used it yet, but will intend to use it on a game I'm currently working on.
Scaleform is a commerical solution.
http://www.scaleform.com/products/clik
Many people tell me good things about it.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Which one would you choose and why?
I'd like to hear opinions from people having experience with embedding a web browser engine in C++ application.
I should stress I need all features of web browser engine except rendering i.e. HTTP client, cookie handling, DOM style HTTP parser, JavaScript engine. How can one strip either WebKit or Gecko of rendering code to avoid coding and run-time overhead?
This is a follow up to What embedded browser for C++ project?
There exists at least one project that has similar requirements and it embeds Gecko. That's Aptana's Jaxer. As far as I know, they have had good success with this. This doesn't quite answer your question, but it does demonstrate that this is certainly doable with Gecko, and there is GPL'd code available that you can look at as to how to do this (Jaxer is an open source project).
There has also been a similar question asked in the past on this. I don't agree with all those answers, as there is some misinformation there such as Firefox being the dictator of what happens in Gecko (it certainly influences, but is not the deciding factor).
Full disclosure: I work on the Mozilla codebase.
I am biased, but I would say WebKit. Especially through the use QtWebKit, it should be easy to have a non-visual web engine (with all the bells and whistles, except painting). And if one is really concerned about excluding all the painting related code, the code base is modular enough (especially the platform abstraction layers) that this can be done in a reasonable time frame.
Notice that QtWebkit (and webkit in general i think) will require you to have an active x server - even though you do not show any GUI (It is required in the core of Qt as QWebPage uses QWidget).
This might be a design flaw in Qt - i havent investigated further into why they might have done this.