Take the 2-minute tour ×
Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It's 100% free, no registration required.

I understand and practice most normal testing methodologies, however for systems with several distinct interacting processes testing obviously becomes a lot harder. Unit testing is often not possible, or preventively difficult.

I am interested in the tools, techniques, and idea's for automated testing of large distributed systems.


I have found the following video presentation from a google engineer about some of their testing techniques. Do know of any other similar presentations?

share|improve this question
1  
Just because the system is distributed should not make unit testing impossible. Using a mocking framework you can mock out dependencies (if the code is written well enough) and isolate different parts of the system. –  Peter Kelly May 11 '11 at 9:16
    
@Peter, exactly. I would say integration testing, especially defect isolating might be harder. –  dzieciou Dec 1 '12 at 16:18
    
@Brian: The link you mention looks great, but could you list to the community what techniques they mention, so people understand better the context of your question without listening to 50min presentation? –  dzieciou Dec 1 '12 at 16:26
    
@Brian: The mentioned presentation looks like about testing mainly browser-system interaction despite the fact Google Checkout system has much more interaction place worth testing (Web services, payment services). One of the comment under presentation confirms my impression: "Nothing? much about distributed system testing as the title suggest. The video is all about how selenium and google checkout works at basic functional level....". What kind of system do you want to test? –  dzieciou Dec 1 '12 at 16:34
add comment

2 Answers

up vote 3 down vote accepted

You will find that testing a distributed system is best done by testing each of the components first in isolation through unit tests and then a smaller set of integrated tests to prove that the deployed application works as intended.

You say "Unit testing is often not possible, or preventively difficult." this is worrying, as you really need to think about the testability of the application as it is developed. Particular with a distributed system it is important to architect the application in a way that it encourages unit tests to be written. For example each component should provide an interface that can be mocked when performing unit tests. Your unit tests should then prove that each component functions correctly when not relying on other components within your application.

After you are confident in this then you can preform integration testing to ensure that each component when integrated functions as expected.

share|improve this answer
add comment

Harder ? maybe the implementation of the tests, but the methodology for testing is basically the same.

share|improve this answer
    
Can you elaborate more on what is the same and give us some examples, so the OP can learn more? –  dzieciou Dec 1 '12 at 16:21
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.