| || |
Book for multi-core software system testing
I would like to ask those of you who know to recommend a good book about system testing of embedded multi-core software. I am looking for an intermediate level book, that is to say, I don't want some basic stuff nor do I want the most advanced stuff either. It would be good if it had some case studies for example.
I have been searching the web for such a book and the best I could find are some system test books that are pretty old and only a hand-full of books related to embedded multi-core systems (in general) that are targeted at a developer audience.
Anybody has a hint?!?
PS: I thought this section was the right one to post in. If I am mistaken than I apologize.
Re: Book for multi-core software system testing
As you say, most reference material is developer oriented, as much testing that relates to muti-processing requires developer input and a source level knowledge of your application. Whether or not an application is running on a multi-core device will only matter to the application if it is either multi-threaded or multi-processing. Errors specific to multi-threading tend to be lock / blocking related, here's an introductory article that gives you some idea of whats involved. You would certainly need to have a good understanding of mutexes, semaphores, critical sections,and resource aquisition and release to proceed, and all this information tends to be in developer books. The main problem here for a tester is that most of these mechanisms that help determine an applications state are not exposed for testing purposes, and are often time critical. In order to test a multi-threaded application, you would need either error logs or an API that showed which threads currently owned or were trying to access which resources. You developers may help you on this.
A couple of questions back which may help narrow the context of advice being offered here;
What embedded environments are we talking about? Windows mobile, symbian, Linux, iPhone, Android, etc... these all vary somewhat in their approach to multi-processing.
What languages is you app written in? C++, Java, etc...
Is your app browser based or stanalone / thick client?
Are you talking purely about software or are you dealing with software coupled to bespoke hardware?
What are your testing interfaces? Purely GUI, APIs, developers willing to write specific test harnesses.