Systems thinking is tremendously relevant to any professional tester, but few testers study it, despite the obvious benefits of learning techniques/approaches that allow you to study systems in terms of the relationships and interactions between their component parts and with other systems (as opposed to studying just the components in isolation and assuming that they'll work the same when you put them together - doesn't that sound a familiar problem to any tester?)

What good learning resources are there out there for testers who want to learn more?

Are there any good tasters out there to tempt testers entirely new to the idea?

What about more practical advice on how you might start applying different systems concepts?

Are there any key texts that are worth getting hold of?

Any great communities/forums where you could discuss what you're learning?

"Few testers study" systems thinking is a gross over-generalization. Systems thinking applies not only to testers but to many people in the software. In fact, one could argue that anyone who has studied biology or other natural sciences in school has "studied" system thinking to some degree. Of course the ability to apply systems thinking to software testing (or engineering) is the key. (FWIW I have never met a tester who tests individual components in isolation, but maybe your experience is different.)
–
Bj RollisonJan 21 '12 at 5:09

Fair point - I'm not at all trying to suggest that systems thinking is only useful to testers. What I wanted to do with this question was to try to gather resource recs for testers who want to study systems thinking as a topic in itself. I believe that being able to use the vocabulary and concepts of systems thinking to examine testing problems may be helpful, even if some of those concepts seem sorta familiar when you first start reading about them (and a lot really should be, for any tester who's been paying attention). Thanks for the feedback - I'll think about how to improve the question
–
testerab♦Jan 21 '12 at 14:00

I actually had training in systems thinking when I was doing my software engineering degree - favoriting this so that I can refresh my knowledge.
–
Kate PaulkFeb 24 '12 at 11:38

1

This talk of Dr. Russell Ackoff gives great examples of system thinking.
–
dzieciouDec 16 '12 at 8:52

What about more practical advice on how you might start applying
different systems concepts?

System thinking can be useful for everyday tasks of a tester: planning tests (What to test and how to test?), isolating defects (Where the root cause sits?), and verifying fixes (What could have been impacted by fix? Will I get enough confidence if I only test this?).

I don't know any specific book that would address those tasks from system thinking perspective. However, from my experience understanding how behavior of the system emerges from behaviors of its components and subsystems helps. You can synthesize this knowledge by analyzing system architecture and by analyzing how users interact with the system (users are a part of the system!).

Understanding system architecture

The book that would help learning system thinking would be about software architecture in general and about particular technologies in particular. Asking questions to developers, architects and ops about the system can help, too. To get a complete picture of the system I often ask the questions like:

How those component interact together?

What are relations between different layers of the system? Is X accessing DB directly or through some facade, Web service or queue?

How tightly are they coupled? By interfaces, format? Do they interact synchronously or asynchronously?

What is the data flow in the system?

If an error occurs here, will it impact that? How errors get propagated in the system?

Are those libraries shared between different components? Could replacing this library have caused this defect?

What is the relation between OS and our system? Let us say you're porting your application from 64bit to 32bit system. What features of 64bit OS/VM we use now that will require verification?

How tightly are we coupled with this DBMS? Do we use any specific features of Oracle that are not supported by MSSQL?

How those German label/regional setting files are used? Are they stored on the front-end or on the back-end? If I change them, will a user see the change immediately, or maybe content is somewhere cached?

Is application stateful? What changes the state of the application? Does application behaves differently depending on its state? Is state the same for the whole application or specific per user/session?

Users are part of the system

Talking to your business analytic and existing users can help understand their relation with the system. For instance:

How may users can use this functionality at the same time? Can they interfere each other?

Do users get notification immediately, or some other process or process is involved in chain? Can it block the system?

What is the relation between resource permissions and user privileges? Maybe she cannot see it because she was not authorized to see it?