Gnucash UI test harness documentation
Hi Josh, I wrote my first documentation document on the gnucash dogtail UI test harness, it does not contains your request yet, but it just a start if it is ok, i'm going to follow it with other document, I attached it in open document format (ODT), I hope if this format is suitable or you could suggest other format to be used later on. Best regards, Ahmed Sayed Yahoo! oneSearch: Finally, mobile search that gives answers, not web links. http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC Gnucash_UI_test_harness.odt Description: application/vnd.oasis.opendocument.text ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Dogtail UI Harness Status
Hi Josh, Thank you very much for your positive feedback,honestly I have a stomach lately like the one I used to have before receiving my exams results:), that what keep me silent. Josh Said: If I wanted to add a test for the Scheduled Transaction subsystem ... let's say consisting of: 1/ creating a new Scheduled Transaction with given parameters. 2/ running the Since Last Run dialog. 3/ inspecting a value in the tree view/model. 4/ manipulating the tree view; closing the dialog. 5/ re-opening the Since Last Run dialog. 6/ inspecting a value in the tree view/model. I guess I'm looking for a bit of high-level documentation. I'm sure I can figure it out if I spend enough time with the code, but something short that points me in the right direction would be great. I'm going to write a tutorial to be uploaded to common place (e.g. to gnucash wiki), your suggested testcase will be my start point, i'll start it tomorrow as it is now 2 AM in my country :). I plan to finish documenting all the testsuite related technical details before the school start, also i would like to keep working on the testsuite there is still a lot of work todo, 1 - adding more testcases, 2 - figure out how to speed it up 3 - link the testsuite to the makefile. 4 - add more dialogs and custom widget wrappers. 5 - Solving issues with with the register, and account Trees. 6 - more Testing to the testsuite ፡). Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games. http://sims.yahoo.com/ ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Dogtail UI Harness Status
Hi Josh, In this phase of SOC the following updates done to the Dogtail UI Harness project, the status as usual is mix of bad and good news. Good news first. = 1 - Misc Fix Issues appear while developing the test cases. 2 - a new proposed method to test the reporting, following those steps: a. Open a presaved project b. create a report. c. export the report to HTML file. d. compare this HTML with a presaved HTML ref file after doing some filtering to remove the data modified every testcase like date. 3 - Test cases for adding new customer and vendor using a data driven testcases, the same way could systematically applied to other items in the Business menu. 4 - Test finding new customer and vendor using a data driven testcases, the same way could systematically applied to find other items in the Business menu. 5 - some test cases to test relatively complex and long scenarios from tutorial like Accounts Recievable and Accounts Payable 6 - More and cleaner comments for the test cases code. The bad news. = 1 - no testcases for preferences dialogs yet only check if the dialog appears properly. 2 - Some limitation on creating the account only Parent-child(2-Levels), can not go deeper than this. 3 - register processed using raw input and keyboard hot keys, dogtail has a limitaion in accessing current register. 4 - In Add new account wizard, selecting multiple categorize does not works properly. 5 - running the whole test suite may takes from 1-1:30 hours. according to my last run. Some statistics: Currently we have a wrapper for ~ 40 dialogs and widget. Number of testcases ~ 50. Total number of LOC ~ 3000. Fussy? Opinionated? Impossible to please? Perfect. Join Yahoo!'s user panel and lay it on us. http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7 ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: gsoc code license
Sorry Josh I might be not clear in my previous Email, the specific repository I mentioned in my Email, is the repository provided by Google itself. not sure if all could access the following links but I think mentor and student at least could access it the repository will be here http://google-summer-of-code.googlecode.com/svn/ Here is the repository information http://code.google.com/p/google-summer-of-code/ here is the license issue http://code.google.com/multiple_licenses.html also here more details about the repository http://groups.google.com/group/google-summer-of-code-announce/web/how-to-provide-google-with-sample-code Best regards, Ahmed Sayed Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games. http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
gsoc code license
Hi Josh, There is request from google to upload our soc code to a specific code repository, so I confirm that all my files indicate that it is under Gnu General Public License, sorry not sure how important this issue is, but i think other gnucash SOC projects should consider this issue also. Best regards, Ahmed Sayed Be a better Heartthrob. Get better relationship answers from someone who knows. Yahoo! Answers - Check it out. http://answers.yahoo.com/dir/?link=listsid=396545433 ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: dogtail test suite test harness
Sorry for the delay, I was out of home for 3 days:). (As Derek asked:) are these window x,y coordinates, or logical widget locations? Based on the command above I'd ASSUME it's logical widget locations.. ?? But I'm wondering how it deals with invisible widgets. yes it is logical, yes i could not deal with invisible widget, but please could you give me a solid example for this invisible widget, I use a mix of mouse coordinate and keyboard hot-keys, you could look at the code on the dogtail branch in GnuCash.py (Class Register), I will add more comments to make it more clear. 2 - I got a problem with expanding the tree in the account pages so i only could create an account like Expenses:Taxs only parent and child more account like Expense:Taxs:Insurance currently no luck with them Where does the problem lie? With dogtail, I imagine...? It seems somewhat important that we're able to test files as generated with our Common Accounts account-template. dogtail could expand a tree from other application, i tried it with at-spi browser (an application bundeled with dogtail), but with gnucash i could only collapse the treetable?!!, i am going to find out other options, I'm also going to dogtail mailing list to find out what does this mean. Derek said: I'd suggest that instead of this you work on all the other dialogs and try to get as much coverage as you can without spending too much time purely on the register. I'm with Derek, I expect more issues while writing more testcases. Josh Said: you suggested some approach like Junit, I tried pyunit and it looks nice to me, do you have any issues regarding using it to organize our test cases. It looks like you've started down that path. Whatever you're comfortable using is good, but things that are established and will time (like python's `unittest` module) are always good to leverage. (good to leverag) sorry I didn't get the meaning of this expression, i hope it means that you agree with me on using pyunit :). Best Regards, Ahmed Sayed Pinpoint customers who are looking for what you sell. http://searchmarketing.yahoo.com/ ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: dogtail test suite status
Hi Josh, After sending this Email, i tried to commit some codes, and i got and error i notice that, i didn't do svn add to the test-dogtail, but I thing it works fine now. Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games. http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
dogtail test suite status
Hi Josh, Waiting your comments :), I committed the code to the dogtail branch i created a new dir under src called src/test-dogtail it contains my up to date code. Best regards, Ahmed Sayed - Original Message From: ahmad sayed [EMAIL PROTECTED] To: Josh Sled [EMAIL PROTECTED] Cc: gnucash-devel@gnucash.org Sent: Saturday, July 7, 2007 1:46:59 PM Subject: dogtail test suite test harness Hi Josh, Sorry for my long silence i got some issues with my PC lately, I solved it at last, currently i have a mix of good news and bad news. the good news is: 1 - Currently we have wrapper to most of dialogs, our wrapper module reach more than 1000 LOC. 2 - I'm able to test the register and i compelete a smplified version of tutorial 1 and 2. the bad news is: 1 - In order to be able to access some components, I use some raw inputs, according to dogtail the raw input is to do mouse click using the coordinate, Like rawClick(wiget.position[0], widget.position[1]) 2 - I got a problem with expanding the tree in the account pages so i only could create an account like Expenses:Taxs only parent and child more account like Expense:Taxs:Insurance currently no luck with them also to access the register I use some tricks and work around Like === def set_cell_text(self, text): relative_pos = self.column_val - self.prev_col_val print relative_pos if relative_pos 0 : for i in range(relative_pos): self.keyCombo(Tab) else: for i in range(abs(relative_pos)): self.keyCombo(ShiftISO_Left_Tab) self.typeText(text) in this code i save my previos position in if it is after my current position press tab for n times else press shit-tab for n times, something like this. ofcourse i was expecting more from dogtail unlike other Testing tool, i used or read about but the register needs some work to make it play nice with dogtail(make it accessible), BTW: i tried to play with gnucash register code, and atk but i make a very slight progress, like making dogtail read the register as table but it will require a lot of time the register code is too big. 3 - i have a problem with my svn account I contacted Derek to help me solving it. The news ends here, :) Back to testplan running: you suggested some approach like Junit, I tried pyunit and it looks nice to me, do you have any issues regarding using it to organize our test cases. Best regards, Ahmed Sayed Take the Internet to Go: Yahoo!Go puts the Internet in your pocket: mail, news, photos more. Park yourself in front of a world of choices in alternative vehicles. Visit the Yahoo! Auto Green Center. http://autos.yahoo.com/green_center/ ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: dogtail test suite test harness
Derek, Sorry, I found that gnucash devel is very busy those days so I expect that it will be better to send this issue in private Email. Best regards, Ahmed Sayed Expecting? Get great news right away with email Auto-Check. Try the Yahoo! Mail Beta. http://advision.webevents.yahoo.com/mailbeta/newmail_tools.html ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
dogtail test suite test harness
Hi Josh, Sorry for my long silence i got some issues with my PC lately, I solved it at last, currently i have a mix of good news and bad news. the good news is: 1 - Currently we have wrapper to most of dialogs, our wrapper module reach more than 1000 LOC. 2 - I'm able to test the register and i compelete a smplified version of tutorial 1 and 2. the bad news is: 1 - In order to be able to access some components, I use some raw inputs, according to dogtail the raw input is to do mouse click using the coordinate, Like rawClick(wiget.position[0], widget.position[1]) 2 - I got a problem with expanding the tree in the account pages so i only could create an account like Expenses:Taxs only parent and child more account like Expense:Taxs:Insurance currently no luck with them also to access the register I use some tricks and work around Like === def set_cell_text(self, text): relative_pos = self.column_val - self.prev_col_val print relative_pos if relative_pos 0 : for i in range(relative_pos): self.keyCombo(Tab) else: for i in range(abs(relative_pos)): self.keyCombo(ShiftISO_Left_Tab) self.typeText(text) in this code i save my previos position in if it is after my current position press tab for n times else press shit-tab for n times, something like this. ofcourse i was expecting more from dogtail unlike other Testing tool, i used or read about but the register needs some work to make it play nice with dogtail(make it accessible), BTW: i tried to play with gnucash register code, and atk but i make a very slight progress, like making dogtail read the register as table but it will require a lot of time the register code is too big. 3 - i have a problem with my svn account I contacted Derek to help me solving it. The news ends here, :) Back to testplan running: you suggested some approach like Junit, I tried pyunit and it looks nice to me, do you have any issues regarding using it to organize our test cases. Best regards, Ahmed Sayed Fussy? Opinionated? Impossible to please? Perfect. Join Yahoo!'s user panel and lay it on us. http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7 ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: GnuCash Testplan First Draft
Hi Josh, The second item implies that the test framework should be able to modify gconf keys before starting gnucash (in this case, to remove the have seen the first-time dialog key). Which makes perfect sense, but I don't recall that this has been called out before. Yes, i implemented 2 functions which modify the gconf keys, one delete only the /apps/gnucash/history/file0 also there is a a more aggresive version which recursively unset all gnucash entries. to start it as fresh one. You might want to ensure these are in the correct order so that you're always creating the entity that's required for a subsequent stage. For instance, you may need an Employee before you can start a Job. I'm not quite sure what that ordering is. In similar situations to ensure that order for the cases we need to find test cases we are going to have in the test case setup a data file we are not going to start every thing from the beging This is a really good idea, but it's going to be a function of our ability to test the register, I fear. :/ Sorry Josh, i didn't got this. Best regards, Ahmed Sayed Take the Internet to Go: Yahoo!Go puts the Internet in your pocket: mail, news, photos more. http://mobile.yahoo.com/go?refer=1GNXIC ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: GnuCash Testplan First Draft
andi5 said I just remembered that there is the environment variable GNC_GCONF_PATH to replace the prefix /apps/gnucash. I have no clue whether this is helpful here at all. look like a safer solution, i'm not sure if (gconftool-2 --recursive-unset /apps/gnucash) will cause any harm. Thank you andi Looking for a deal? Find great prices on flights and hotels with Yahoo! FareChase. http://farechase.yahoo.com/ ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: GnuCash Testplan First Draft
when writing a test case we always has setup and teardown, the both these methods will be different according to the testcase, some testcase will need to have a gnucash without any data file, others will require this data file, these operation will be done in the setup, in general the basic testcase will be setup()# do the required setup (e.g start gnucash if not) testcase() teardown() # do the required clean up close gnucash, kill gnucash process, ) setup will be different from test case to other, in some cases we need to open gnucash without a file, In other cases will have gnucash open with a loaded data file, I miss writing the setup for these test cases, it will be fixed in the next test plan version. Testing the register, Regardless our ability to test the register it is relatively important, but how it could be done 1 - Create a custom class that wrap some raw events, this class used to do some higher level actions Like def write_something_on_cell(x ,y, something): press enter key for x times press tab key for y times. raw type (something) also use all possible accelerator and hot keys. 2 - Modify the widget code to be accessible, I prefer this but not sure how feasible is it? , Best regards, Ahmed Sayed Be a better Globetrotter. Get better travel answers from someone who knows. Yahoo! Answers - Check it out. http://answers.yahoo.com/dir/?link=listsid=396545469 ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
GnuCash Testplan First Draft
Hi all, This is Just a base for the gnucash testplan it will be developed over time, things may be removed and added. but it just beginning, The test cases not going to follow this order in creation, also there still TBD (to be done) issues, it is open for suggestions. Best regards, Ahmed Sayed Yahoo! oneSearch: Finally, mobile search that gives answers, not web links. http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC gnucash_testplan Description: Binary data ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: UI Dogtail test harness, Some issues begin to appreas
Thank you, David I thought dogtail could uniquely identify widgets by their name The problem is with the widget that does not have name or dialog that have no title, also window that does not have no title, so to avoid adding user visual change, you agree with me that adding description will be nice, dogtail has a list of the attributes to detect the (widget name, description, roleName, ) but as i get as long as i could use a way to uniquely specify the widget it will be better, because when depending in rolename, may cause the confusing if i have multiple dialogs opened as child for gnucash BTW: The dialog i notice that have this issue is the dialog that popup when clicking (Process Payment) menu item. So i think adding the accessible description will be a nice idea. This is a shared dialog. It shows either a close button or a cancel button depending upon how the window was instantiated. I can't tell from my brief look at the code if this change can happen dynamically as the user is interacting with the dialog, of if it is staticly set when the dialog is instantiated. If the latter, then perhaps the unused button could be deleted instead of hidden. Thank you for the explanation, I'm going to avoid code change as much as i could. Best regards, Ahmed Sayed Shape Yahoo! in your own image. Join our Network Research Panel today! http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7 ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
UI Dogtail test harness, Some issues begin to appreas
Hi josh 1 - There is a dialogs with no title like process payment, which i need to make dogtail detect the existance of the dialog, so This issue could be solved by 2 ways, a - Add Title to this dialog. b - add an accessible description for this widget. Both may require Code change. 2 - also, Dogtail sniffer as well as my code detect an invisible Cancel Button in dialogs Like Find Customer and others, anyone explain this behavior, is this a gnucash issue or dogtail issue. 3 - How could i get a dev account to be able to commit the current code i have to the svn. i got the i'm going to have a branch in which i'm going to commit my updates, what should i to make it happen Best regards, Ahmed Sayed Pinpoint customers who are looking for what you sell. http://searchmarketing.yahoo.com/ ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Gnucash UI dogtail test harness some ideas
Hi josh, I'm not sure that this XML file is useful. The idea is not in making the testplan in xml only, xml is only a suggested approach, the main idea is to separate the testplan from the code In the complex case of some XML file that was describing the tests more fully (or even formally), that file could contain a whole mini-language for doing test Setup ... I always prefer to use XML at its descriptive level, xml o describe some thing, which will be what this test case are going to do in formal describtion, and which method in the python code do it, maximum complextity i intend to add is to add keywords, to control which test cases to run like run all testcases that marked as smoke test, all run the whole regression, i didn't have a wide experience but i see this practice in the GUI test suites, the other complexity i expect to add is to make this XML, is putting the test case data in this xml, which will be we have more than one test case in the testplan file but all of these test cases call the same python method with different data. Even in the simple case, the XML file is just a re-iteration of all the test functions (or methods, whatever they are) that already need to be specified in the code. I really liked this, but this make writing the test plan part of the code which is good with unit testing. I've used testing tools in both the programatic and declared approach, and I've found the former to be much more desirable. Josh, honestly i didn't have your wide experience to discuss you in design issues, but i speak according to my small experience in the similar case, also according to my reading regarding similar situation, i read an articles about testplan data should be separated from the test case code, and tools the provide this separation considered better. I hope I can convince you to put that part of the project off until later on, if/when more of the core and required parts of the test framework are proven out. Ok, no problem but actually writing the test plan is the real and very important part i have this fancy dream of having a solid test plan editor in which i begin writing the test plan for gnucash, ok no problem. you could convince me easily Josh :) The validator: How much of this validator would be custom work vs. being provided by dogtail? It will be a custom work, yes dogtail dump the node data, in both plain and xml format but its dump method is very obvious and limited so it will be a custom work. - filtering: If you dump a whole dialog, but are only interested in checking the validity of a few fields, you need to filter the others so that `diff` doesn't report extra differences. That's why it will be a custom work, also there is other issues, like packing widget which in most cases will be filtered canonicalizing: If you change the visual layout of the dialog, that (probably) shouldn't invalidate the test. Something needs to bring the dumped/asserted state (and perhaps the expected state as well) into a canonical form for a good comparison. really this a good point, first which is the benefit of keeping the validation reference in separate file to make an update easily and without code change just replacing the file, also i there is no way to avoid the need to update the test cases but you could try to minimize that need, because changing the GUI may lead to make the testcase logic itself not correct, for example renaming the button, dogtail till now i didn't find any way other than name, label which is name to uniquly identify the node (control, widget), i'm with you is diff my give false negative in case of changing the layout only, and we need to add more intellegent to validate, but if I could succesfully separate the validator it will be easy to replace diff later one, another issue diff will be very useful in validation widget like trees and tables. In Conclusion: I'm going to delay the testplan, for later on. you are ok, with the validator but I will consider the issues you mentioned. Best regards, Ahmed Sayed Food fight? Enjoy some healthy debate in the Yahoo! Answers Food Drink QA. http://answers.yahoo.com/dir/?link=listsid=396545367 ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Gnucash UI dogtail test harness some ideas
Hi all, I intend to do some modules around dogtail first, 1 - Testplan editor is a common practice in Testing tools, in which user could state the testcase formally, also could be used by the reporting tool to generate meaningful report, this formal description will be linked to a python method and the regression will run by feeding this file to a script My suggestion here is to use xml with the following format Testcase python_method=test_new_account_dialog Test the new Account dialog /Testcase 2 - Generic Validator is a way to write a quick validator, by storing the state of the widget or dialog under test, by state I mean all its children named and their values, those data will be dumped to a file and stored as reference after the first run, and then it will be used as reference for later runs. Those modules will NOT be the only way to run the regression in case of testplan you could run as a normal python code also specific validation for certain testcases my created, things but these modules will be important IMO for the following reasons Tesplan module: will give a more controllability on the list of test cases. Generic validator : Is a quick way to do a validation but it is not the only way it will depends on the situation, and easier to update if any dialog modified, no code change will be required only updating the references. Best regards, Ahmed Sayed ___ You snooze, you lose. Get messages ASAP with AutoCheck in the all-new Yahoo! Mail Beta. http://advision.webevents.yahoo.com/mailbeta/newmail_html.html ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Fwd: Welcome to our 2007 Google Summer of Code Students
Thank you Derek, Oops, I left you off this. I'm very sorry. No problem I already in the gnucash-devel mailing list :), of course if you mean me ;) . BTW: after subscribing I waited to get the confirmation Email, but not getting it, by chance while looking at my spam folder I found it marked by Yahoo as a spam :(, Other mailing list confirmation I get did not marked as spam. __ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel