Show simple item record

dc.contributor.authorLe, Anh Thuen_NZ
dc.date.available2011-04-07T03:09:59Z
dc.date.copyright2006-10en_NZ
dc.identifier.citationLe, A. T. (2006, October). Current problems and tools support for testing distributed systems (Dissertation, Bachelor of Applied Science with Honours). Retrieved from http://hdl.handle.net/10523/1184en
dc.identifier.urihttp://hdl.handle.net/10523/1184
dc.description.abstractTesting is a critical activity in designing and implementing software and computer systems, especially distributed systems (Eickelmann & Richardson, 1996). In addition, validating distributed systems is a complex process, and it requires the knowledge of “the communication taking place and the order of communication messages exchanged between the individual components to avoid deadlocks or livelocks during runtime” (Ulrich, Zimmerer, Chrobok-Diening, 1999, p.2). This dissertation attempts to briefly emphasise the role of testing in distributed systems. In addition, it addresses few common issues in building distributed systems together with a number of solutions to these issues. The main focus of this dissertation is on three main features of distributed systems that often challenge the programmers and testers, which are concurrency, scalability, and fault tolerance. For the first two features, a number of open source testing tools are chosen to compare and contrast the strengths and weaknesses of each tool. A number of testing techniques are applied to show the importance of the third feature, namely, the fault tolerance. Besides, the importance of each feature is highlighted by testing a number of sample distributed systems.en_NZ
dc.format.mimetypeapplication/pdf
dc.subjectdistributed systemsen_NZ
dc.subjectTestingen_NZ
dc.subjectvalidating distributed systemsen_NZ
dc.subjectconcurrencyen_NZ
dc.subjectscalabilityen_NZ
dc.subjectand fault toleranceen_NZ
dc.subject.lcshT Technology (General)en_NZ
dc.subject.lcshQ Science (General)en_NZ
dc.titleCurrent problems and tools support for testing distributed systemsen_NZ
dc.typeDissertationen_NZ
dc.description.versionUnpublisheden_NZ
otago.bitstream.pages79en_NZ
otago.date.accession2007-03-01en_NZ
otago.schoolInformation Scienceen_NZ
thesis.degree.disciplineInformation Scienceen_NZ
thesis.degree.nameBachelor of Applied Science with Honours
thesis.degree.grantorUniversity of Otagoen_NZ
thesis.degree.levelHonours Dissertationsen_NZ
otago.openaccessOpen
dc.identifier.eprints554en_NZ
otago.school.eprintsInformation Scienceen_NZ
dc.description.referencesAlbrecht, M. (2003). Multithreaded Tests with JUnit. Retrieved June 6, 2006, from http://today.java.net/pub/a/today/2003/08/06/multithreadedTests.html Amiri, K. (2005). Timestamp Ordering & Database Recovery. Retrieved September 17, 2006, from http://www.doc.ic.ac.uk/~amiri/DB05/Lecture8-9.pdf Ambler, S. W. (2006). Agile Database Techniques – Effective Strategies for the Agile Software Developer. America: John Wiley & Sons. Anderson, R. J. (2001). Security Engineering: A guide to Building Dependable Distributed Systems. Canada: John Wiley & Sons, Inc. Burback, R. L. R. (1998). No Global Clock. Retrieved August 15, 2006, from http://www-db.stanford.edu/~burback/dadl/node91.html Cohen, F. (2004). Java Testing and Design: From Unit Test to automated Web Tested. America: Prentice-Hall. Cristian, F., Dolev, D., Strong, R., & Aghili, H. (1987). Atomic Broadcast In A Real- Time Environment. In Simons, B. & Spector, A. (Eds), Fault-Tolerance Distributed Computing (pp. 51-71). Germany: Springer-Verlag. Dorfman, M. (1997). Requirements Engineering. In Thayer, R. H. & Dorfman, M. (Eds.), Software Requirements Engineering (pp. 7-22). IEEE Computer Society Press. Dunedin City Restaurant Review. (2005). Retrieved May 25, 2006, from http://info-nts- 12.otago.ac.nz:8080/DCRR/Main_Page.jsp Dustin, E. (2002). Effective Software Testing: 50 Specific Ways to Improve Your Testing. America: Addison Wesley Professional. Eickelmann, N. S., & Richardson, D. J. (1996). An Evaluation of Software Test Environment Architectures. IEEE Proceedings of ICSE, 18, 353-364. Emmerich, W. (1997). Distributed System Principles. UK: University College London. Retrieved June 20, 2006, from http://www.cs.ucl.ac.uk/staff/ucacwxe/lectures/ds98- 99/dsee3.pdf Employee Directory System - University of Otago Language Centre. (2006). Retrieved July 15, 2006, from http://139.80.15.230/Emp_dir Fagerström, J. (1988). Design and Test of Distributed Applications. Software Engineering – Proceedings of the 10th International Conference. 88-92. Ghosh, S. & Mathur, A. P. (1999). Testing for Fault Tolerance. Retrieved July 10, 2006 from, http://citeseer.ist.psu.edu/ghosh99testing.html Goel, A. (2004). Advances in Distributed Systems. Canada: University of Toronto. GroboTestingJUnit. (2004). JUnit Extension. Retrieved July 4, 2006, from http://groboutils.sourceforge.net/testing-junit/ GroboUtils Project. (2003). Retrieved July 4, 2006, from http://groboutils.sourceforge.net/ Haddad, P. & Donoghue, T. (1998). Choosing an Approach for Locking. Retrieved July 20, 2006, from http://developer.apple.com/documentation/LegacyTechnologies/WebObjects/WebObjects _5/Topics/ProgrammingTopics.2a.html Hierons, R. M. (2004). Testing a Distributed System: Generating Minimal Synchronised Test Sequences That Detect Output-Shifting Faults. Retrieved August 25, 2006, from http://people.brunel.ac.uk/~csstrmh/papers/ist01a-pre.pdf Hillston, J. (2002). Distributed Systems. UK: The University of Edinburgh. IEEE Standards Board 610.12-1990. (1990). IEEE Standard Glossary of Software Engineering Terminology. America: The Institute of Electrical and Electronic Engineers. Indiana University – University Information Technology Services. (2006). What is a Distributed Application? Retrieved June 20, 2006, from http://kb.iu.edu/data/adob.html Ireland, A. (2006). The Software Testing Life-Cycle. Edinburg: Heriot-Watt University. Katzan, H. J. (1979). Distributed Information Systems. America: Petrocelli Books, Inc. Krzyzanowski, P. (2002). Fault Tolerance. Retrieved May 11, 2006, from http://www.cs.rutgers.edu/~pxk/rutgers/notes/pdf/fault-tol.pdf Lampert, D. & Lvov, S. (2006). Database vs DbPool in Netscape ES 3. Retrieved August 10, 2006, from http://www.weizmann.ac.il/lvov/sergei/ Lamport, L., Shostak, R., & Pease, M. (1982). The Byzantine Generals Problem. ACM Transactions on Programming Languages and Systems. 4, 3, 382-401. Long, B., Hoffman, D., & Strooper, P. (2001). A Concurrency Test Tool for Java Monitors. 16th IEEE International Conference on Automated Software Engineering (ASE01), 421. Miller, R. W. & Collins, C. T. (2001). Acceptance Testing. Retrieved June 10, 2006, from http://citeseer.ist.psu.edu/527940.html Mosberger, D. & Jin, T. (1998). httperf – A Tool for Measuring Web Server Performance. Retrieved June 15, 2006, from ftp://ftp.hpl.com/pub/httperf/ MSDN. (2006). Integration Testing. Retrieved June 10, 2006, from http://msdn.microsoft.com/library/default.asp?url=/library/enus/ vsent7/html/vxconintegrationtesting.asp Myers, G. J. (1978). The Art of Software Testing. America: A Wiley-Interscience Publication. Nesterenko, M. & Jin, M. (2002). Classification of Distributed Systems. Advanced Operating Systems. Retrieved August 10, 2006, from http://deneb.cs.kent.edu/~mikhail/classes/aos.s02/l01DStaxonomy.PDF Neuman, B. C. (1994). Scale in Distributed Systems. Readings in Distributed Computing Systems. IEEE Computer Society Press. NTP: The Network Time Protocol. (2006). Retrieved September 5, 2006 from http://www.ntp.org/ntpfaq/ OLC Assets System - University of Otago Language Centre. (2005). Retrieved July 15, 2006, from http://139.80.15.230/assets Open System Testing Architecture 1.4.3. (2005). Retrieved July 26, 2006, from http://OpenSTA.org Pfleeger, C. (1997). Security in Computing (2nd ed.). New Jersey: Prentice Hall. Pfleeger, S. (1997). Software Engineering: Theory and Practice. America: Prentice Hall. Pressman, R. (2001). Software Engineering: A Practitioner’s Approach. Boston: McGraw Hill. Raishe, T. (1999). Black Box Testing. Retrieved August 15, 2006, from http://www.cse.fau.edu/~maria/COURSES/CEN4010-SE/C13/black.html Rupp, N. A. (2003). Multithreaded Tests with JUnit. Retrieved June 6, 2006, from http://today.java.net/pub/a/today/2003/08/06/multithreadedTests.html Saluja, K. K. (2005). High Level Fault-Tolerance: Checkpointing and Recovery. Retrieved September 2, 2006, from http://homepages.cae.wisc.edu/~ece753/slides/Lecture-Set_9.pdf Strooper, P., Duke, R., Wildman, L., Goldson, D., & Long, B. (2004). Practical Tools and Techniques for the Testing of Concurrent Software Components. Retrieved June 10, 2006, from http://www.itee.uq.edu.au/~testcon/ Strooper, P. (2005). Tool Support for Testing Concurrent Java Components. Australia: The University of Queensland. Tanenbaum, A. S., & Steen, M. V. (2002). Distributed Systems – Principles and Paradigms. America: Prentice-Hall. Taylor, R. N., Redmiles, D. F., & Hoek, A. V. D. (2006). Decentralized Architectures. Retrieved June 15, 2006, from http://www.isr.uci.edu/architecture/archdecent.html TestMaker. (2006). Retrieved August 5, 2006, from http://www.PushToTest.com Turnbull, M. (1987). Support for Heterogeneity in the Global Distributed Operating System. ACM Press, 21, 11-22. Ulrich, A. W., Zimmerer, P., & Chrobok-Diening, G. (1999). Test Architectures for Testing Distributed Systems. Proc. of Software Quality Week. 1-6. Wake, W. C. (2000). The Test/Code Cycle in XP: Part 1, Model. Retrieved August 25, 2006, from http://xp123.com/xplor/xp0002/index.shtml Warfield, A., Coady, Y., & Hutchinson, N. (2001). Identifying Open Problems in Distributed Systems. Retrieved June 10, 2006, from http://www.cs.unibo.it/ersads/papers/warfield.pdf. Williams, L. (2004). White-Box Testing. Retrieved April 15, 2006, from http://agile.csc.ncsu.edu/SEMaterials/WhiteBox.pdf.en_NZ
 Find in your library

Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record