ABAP Unit Test Classes - Good References - unit-testing

I'm looking for good reference material regarding the use of ABAP Unit Test Classes.
I'm interested in any of the following:
Documentation on the functionality
Best Practises
"How To Guides"
Blogs/Books on people's experience in using test-driven development in a SAP environment, particularly what sort of scenarios leans themselves to test-driven development & how you get around the dependency of SAP on business data.

There is some documentation in sap.com.
Also, there is a German PDF (see here) that may be helpful if you know some German ;-) At least it contains a few email addresses of people that may be able to help. Not sure because the PDF is from a conference in 2003, so the contact info may not be too up to date.
Lastly. there seems to be a German book (on Amazon Germany) .. again not sure if that helps you.

Wondering if you'd checked these links...
https://wiki.sdn.sap.com/wiki/display/ABAP/ABAP+Unit
https://wiki.sdn.sap.com/wiki/display/ABAP/ABAP+Test+and+Analysis+Tools
Thanks.

I recently wrote a blog article on my experiences here: Adopting Test Driven Development using ABAP Unit

There is some documentation in SE24 for class CL_AUNIT_ASSERT. Doing a where-used on the class gives an indication of how it is meant to be used.
There also is a 5 part blog series on SAP SDN
UPDATE: There is now also an excellent course on ABAP Unit on OpenSAP.com. It is called
Writing Testable Code for ABAP
The URL for the course is: https://open.sap.com/courses/wtc1

Related

How do Devs share relevant testing information with Devs-in-Test and QAs?

One of the problems our group is having is in regards to sharing relevant information between the Devs, Devs in Test and QAs.
How is this typically done in the industry?
For instance, our devs typically follow TDD with CI/CD pipelines offering the capability to illustrate code coverage. Do devs in test and QAs typically review coverage numbers prior to construction of integration and manual test plans?
How are devs typically communicating edge cases and relevant test procedures to the testers these days?
Finally are there any great resources (docs, podcasts etc) that discuss these types of things?
In my experience, there isn't a whole lot of such information shared between DEV and QA, apart from the requirements, things like API documentation and maybe usage examples. The reason is simple: Developer tests (unit, integration) are usually whilebox tests, while tests performed by QA are usually blackbox tests (i.e. oblivious of the code being tested). What use is a coverage report for blackbox tests?
What i think in this case is , If we use tools like JIRA, then in each story/ticket on which Dev is working he/she should mention all the related doc, details and major technical specifications like which module/API/project_layer he has worked on to solve this particular requirement with atleast few of his unit test links to this ticket will certainly help while testing.
And this thing also helps in accounting of code changes done in the project for the tickets so that we can also guess the major regression areas.
Let me know if u find this helpful.
Thanks

Is there a good way to do TDD in Siebel?

I am looking for a way/solution to implement TDD in Siebel development.
I come from web development world and i used a lot unit testing, integration platform and other XP things.
Today i am working on Siebel CRM development for a new job in business in and i am shocked to see that there is no test automation solution in place.
I am currently searching for some documentations, feedbacks, or all other interesting things regarding TDD in Siebel development environemnt.
I could develop some tools myself but i don't want to reinvent the wheel.
If someone have more informations, interesting articles, interesting way to do this it could be very usefull for me.
Thanks
This is really several questions in one. TDD is a way of working, but I think you are already wel versed in what this entails. It can be applied to any kind of technology. From that stance I feel comfortable saying that it's possible with Siebel as well.
As for the tooling to be used, it very much depends on the version of Siebel you are on (HI/Open UI), the skills of your developers, the way of working at your project (Agile/Waterfall), the test (automation) tooling used and the general level of automation at the project/program.
To me it sounds more like a way-of-working transformation then the implementation of a test approach.

Is csUnit dead? If so, what are the living alternatives?

I'm trying to find out how to get csUnit and VS2010/.NET 4 to play nice together. There's no mention of .NET 4 in the csUnit FAQ, which also seems very much out of date. I checked out the Yahoo user group, but can't find any user posts past March 2008 there.
Am I correct in assuming that csUnit is dead? In that case, what test framework have the users moved on to?
In addition to Matthew Vines answer (NUnit and MbUnit), I think xUnit.Net is the 3rd active open source UnitTesting solution.
Consider Moq, Rhino.Mocks and FakeItEasy as active Open Source Mocking frameworks.
I would think that nUnit and MbUnit would be the big ones right now.
But here is a reasonably extensive list of options:
http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#.NET_programming_languages

Devising a test strategy

As part of a new job, I have to devise and implement a complete test strategy for the company's new product. So far, all I really know about it is that it is written in C++, uses an SQL database and has a web API which is used by a browser client written using GWT.
As far as I know, there isn't much of an existing strategy, except for using Python scripts to test the web API.
I need to develop and implement a suitable strategy for unit, system, regression and release testing, preferably a fully automated one.
I'm looking for good references for:
Devising the complete test strategy.
Testing the web API.
Testing the GWT based application.
Unit testing C++ code.
In addition, any suitable tools would be appreciated.
Testing Computer Software is a great soup-to-nuts book on the entire testing process. In addition to the items you mentioned, you'll need to think about other types of testing (performance, security, localization, stress testing, to name a few) and how to manage the test process; test plans, issue tracking, test data, test cases, in addition to the tools.
There's a lot there, and you can't do everything at once. I think a phased approach would be best, where you identify the gaps, weaknesses, and risks in the current process, prioritize them, then set up a high level plan to address them one by one.
Software QA Testing and Test Tool Resources is a good starting place for finding some tools to fit your process. StickyMinds is a nice web site dedicated to software testing, and the folks here at StackOverflow certainly know their stuff, so don't be afraid to ask.
Good luck :)
You can find a ton of excellent information on testing and developing a test strategy in general over on James Bach's blog. Specifically by searching through it for tips on testing strategies.
James is an excellent resource for information about how to do great software testing.
Best of luck.
There's a good conversation here on The Purpose of a Test Strategy.
As testing tools you could use Selenium for web testing and CppUnit for c++ unit testing.

What is Robot Army Testing?

What is Robot Army Testing? Where is it used? How can I learn it?
I'm not sure that it exists. There's Rational Robot, an automated testing record-and-playback tool, but you have to buy it. I've yet to hear of Robot Army testing, however, although I agree with Nick - it sounds AWESOME :)
The only mention I can find of it ANYWHERE is on:
http://www.mail-archive.com/wtr-general#rubyforge.org/msg07756.html
So maybe it's also known as MBT (Model Based Testing)?
If so, take a look at http://en.wikipedia.org/wiki/Model-based_testing for information on that and some handy links to tutorials etc.
Hope that helps!
If by "Robot Army Testing" you mean assembling a suite of automated tests on a grand scale (sort of xUnit on steroids) then this presentation provides a helpful introduction. It is also known as Model-Based Testing.
edit
As uberRouse notes, the use of randomly generated values in testing is interesting. I first came across this in 2005. It was a tool called Agitator from Agitar Software which took manually written unit tests and expanded on the coverage by plugging in random values and edge cases.
This term is not on WikiPedia. Everything, that is at least a little popular technology appears there quickly. Are you sure you don't misspell it?
Robot Framework maybe? We use it and it's great!
BTW, it sounds like web-site DDOS testing ;)