Presentation is loading. Please wait.

Presentation is loading. Please wait.

Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Software Tools.

Similar presentations


Presentation on theme: "Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Software Tools."— Presentation transcript:

1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Software Tools

2 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Types of Tools –Software Development Tools You’ve Seen Integrated Development Environments (IDEs) –Code editing –Debugging –Development of multiple components (e.g. JSPs, Servlets) –Unit Testing Model Development –Diagram Construction –Mapping between Diagrams and Code Source Code Control –Version Control –Concurrency Control

3 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Types of Tools (2) –Tools We’ve Not Discussed Generalized Build Environments Loggers Code Profilers Code Coverage for Testing Memory Leak Detectors Integration and System Testing Performance Testing / Database Testing

4 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Generalized Build Environments –Make utility – traditional Unix utility for building C, C++, assembly, etc. modules –Ant http://ant.apache.org Java-based Idea: transcend Make’s limitations –Limited to shell-level execution –Tied to single operating system –Odd syntax (e.g. tabs required) Ant features –Extended using Java classes –Configuration files using XML Results –Easier to use –Cross platform functionality

5 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Generalized Build Environments (2) –Maven –Tool for continuous building of systems –Java-based –Integration with Eclipse, NetBeans –http://maven.apache.orghttp://maven.apache.org –Cruise Control –Another continuous build tool –Linkage to email, Ant, source code control –Two main modules –Build module –Reporting module –http://cruisecontrol.sourceforge.nethttp://cruisecontrol.sourceforge.net

6 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Loggers –Idea: Easy, generalized writing of messages to one or more logs –Several levels of messages (errors, warnings, informational, etc.) –Configurable (turn on/off, log sources) –Java version –Java.util.logging.Logger and other classes –Not very configurable –Log4J –Part of Apache, more configurable –Allow logging code with small run-time cost –http://logging.apache.org/log4j/1.2/index.htmlhttp://logging.apache.org/log4j/1.2/index.html

7 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Code Profilers –Idea Certain code sections in a system are executed more often Makes sense to focus on these sections for –Testing –Performance Enhancements –Possible Refactoring –Examples Eclipse Profiler Plug-In –http://eclipsecolorer.sourceforge.net/index_profiler. htmlhttp://eclipsecolorer.sourceforge.net/index_profiler. html Eclipse Test and Performance Tools, including Profilers –http://www.eclipse.org/tptp/http://www.eclipse.org/tptp/.NET Profiler List –http://codeverity.com/blogs/tim_weaver/archive/20 04/11/02/43.aspxhttp://codeverity.com/blogs/tim_weaver/archive/20 04/11/02/43.aspx

8 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Code Coverage –Concept How do you determine how much of your code is covered by the tests you’ve created? If overall percentage is low, you’re much more likely to have problematic software Need to identify sections of code that are not or weakly covered –Examples Emma (http://emma.sourceforge.net )http://emma.sourceforge.net EclEmma (http://www.eclemma.org/ )http://www.eclemma.org/ Emma for Eclipse Available with Eclipse 3.3 in lab

9 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Memory Leak Testing –Idea Memory-leaks in a long-running or real-time system can be fatal to the application Need to identify possible memory leaks before deployed More problematic in C and C++ Still a problem in Java (memory tied up, can cause excessive garbage collection affecting performance) –Tools Valgrind (for C/C++, on data/mikey)

10 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Integration and System Testing –Idea Unit testing is only part of the solution Need to test parts together to determine interaction problems, confirm lower level tests still work as move up to higher levels of testing –Possible Solutions Story-Based Testing Cucumber: http://www.cukes.infohttp://www.cukes.info JBehave: http://www.jbehave.orghttp://www.jbehave.org Open source tools –http://opensourcetesting.org/http://opensourcetesting.org/ Commercial products –Example: Enterprise Architect, SparxSystems –http://www.sparxsystems.com.au/EAUserGuide/ind ex.html?o321.htmhttp://www.sparxsystems.com.au/EAUserGuide/ind ex.html?o321.htm

11 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Performance Testing –Idea Systems that work well at low load may not work well at high load Need to use other forms of testing, such as “stress testing”, to determine if system can perform at requirement levels and how much extra performance capability is available –Example – Database Applications Size of database can affect query/statement speed –Database Generators »Many commercially available »Fairly easily written Number of connections can affect server load –Need to simulate many connections to DB –http://www.sqledit.com/stress/http://www.sqledit.com/stress/ General database testing –DBUnit, http://dbunit.sourceforge.net/ http://dbunit.sourceforge.net/

12 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Other Tools, Systems, Languages –IDEs –Eclipse –Visual Studio –NetBeans (http://www.netbeans.org )http://www.netbeans.org –IDEA (http://www.jetbrains.com/idea/ )http://www.jetbrains.com/idea/ –Languages / Systems –Ruby on Rails (http://www.rubyonrails.org )http://www.rubyonrails.org –Ruby: interpreted language, very object-oriented –Rails: system that allows easy development of MVC web applications from a model using scaffolding that you can customize –Groovy (http://groovy.codehaus.org )http://groovy.codehaus.org –Dynamic scripting language, similar to Java –Grails – Groovy on Rails (http://grails.codehaus.org )http://grails.codehaus.org –Database Systems –Derby: http://db.apache.org/derby/ )http://db.apache.org/derby/ –JavaDB (Sun Derby): http://developers.sun.com/javadbhttp://developers.sun.com/javadb


Download ppt "Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Software Tools."

Similar presentations


Ads by Google