[Kmymoney-devel] Improving the test suite for MyMoneyFile

Cristian OneČ› onet.cristian at gmail.com
Tue Feb 17 14:23:42 UTC 2015


Hi,

Since those two members are used to implement the emit of the
'balanceChanged()' and 'valueChanged()' signals after committing
changes you could write a test case that asserts that those signals
are emitted properly.

For example:
After adding a transaction 'balanceChanged()' should be emitted.
After adding a price 'valueChanged()' should be emitted.

Regards,
Cristian

2015-02-17 16:13 GMT+02:00 victor <pedretti_86 at hotmail.com>:
> Hello,
>
> I am trying to improve some of the test files of KMyMoney for my research
> studies. This is a really complex task when you are not involved in
> programming this application, so I need your help to achieve it.
>
> All the same, I'm only focusing on some specific parts. What I'm doing is to
> introduce several concrete faults into the code and then observe if the
> fault is detected by the test suite (this would be the expected of an
> adequate test suite, but we all now that this is quite difficult sometimes).
> In this sense, I have been doing this in "mymoneyfile.cpp" and testing it
> with its corresponding file test "mymoneyfiletest.cpp". The faults
> introduced are faults which are common when programming because we sometimes
> mix the name of variables of the same type, or do not call the appropriate
> method because of "copy and paste",...
>
> Here I show two of these faults that the test suite is not able to detect
> (the result is the same in the original program and with the inserted
> fault):
>
> 1) The first is in the method "void MyMoneyFile::commitTransaction(void)",
> where I change:
>
> d->m_balanceChangedSet.remove((*it).id());
>
> by:
>
> d->m_valueChangedSet.remove((*it).id());
>
> Exactly the same happens in the method "void
> MyMoneyFile::rollbackTransaction(void)" if, for instance, I change
> "d->m_valueChangedSet.clear();" by "d->m_balanceChangedSet.clear();". These
> changes seem to be meaningful changes, but they are not detected by the test
> suite at the moment.
>
> 2) The other situation that I want to report is in method "void
> notify(void)" belonging to "MyMoneyFile::Private". If I change,
>
> m_balanceCache.clear(i.first, i.second);
>
> by:
>
> m_balanceCache.clear(i.first);
>
> or:
>
> m_balanceCache.clear();
>
> How could I detect that I are not calling the method "clear" in a correct
> way?
>
> I am aware that this is quite specific and may be difficult to create test
> cases for these situations, but I think that this is a very good chance to
> improve the test suite of MyMoneyFile (a very important module in the
> application).
>
> Does somebody know how to reveal the aforementioned faults modifying
> existing test cases or designing a new one?
>
> Thanks in advance.
>
> _______________________________________________
> KMyMoney-devel mailing list
> KMyMoney-devel at kde.org
> https://mail.kde.org/mailman/listinfo/kmymoney-devel
>


More information about the KMyMoney-devel mailing list