Tuesday, June 28, 2011

GMS Software Quality

When developing GMS there are several ways we work to ensure the quality of each release, and we are continuously striving to improve the quality of GMS to make it as bug free as possible. We use a multi-layered approach to help in finding bugs as quickly as possible. We use unit testing, code reviews, intermediate testing with continuous builds, automated testing through the graphical user interface, and review by the Quality Control team.

The quicker a bug can be found and fixed the better. As a developer, best of all is to find and fix a bug before anyone else sees it. Our unit tests help this happen. Unit tests are tests that are included right along with the GMS code. When changes are made, tests are written to make sure that existing functionality isn't broken, and tests are written to test new functionality. Unit tests are a group of tests that run very quickly and are run each time GMS is built.

Code reviews can also be very helpful in finding issues. For code reviews we have another member of our development team look at the code changes we've made to make sure there aren't any problems. Just like reviewing a manuscript, it's always good to have another set of eyes to look at the code to make sure everything is okay.

Our intermediate tests are written in the same way as unit tests but each test takes more time to run. All of our unit tests only take a few seconds to run but intermediate tests can take several minutes. To run both our unit and intermediate tests we have a continuous build machine that is constantly looking for changes in our code base. When changes are made, GMS gets built and the unit and intermediate tests get run. To manage this process we use CruiseControl.NET. CruiseControl.NET automatically manages our unit and intermediate testing and provides a GUI interface so all developers can always easily see if the tests are passing or failing.

Our next layer of testing is graphical user interface (GUI) testing. For GUI testing we use TestComplete™. TestComplete™ allows us to record and write scripts that run the GUI of GMS. Tests include all of the GMS tutorials, several reported bugs, and tests that cover specific areas of GMS. The tests run each night and the results are reported through CruiseControl.NET.

The last layer of testing is the Quality Control team. After every sprint the QC team reviews the work the development team did during the sprint. If they find any problems they are reported to the development team.

When all of these fail to find new or existing bugs, and a bug isn't found here at Aquaveo, it is likely a bug will be found by one of our users. When this happens we will do whatever we can to get a bug quickly fixed and in our next release. For this to happen we need to know about the bug. It is very helpful to us when users who have run across a bug will take time out of their busy schedule and notify our Tech Support department about the bug (support@aquaveo.com, (801) 691-5530 [Monday-Friday, 8am-5pm Mountain Time]). They can walk you through what is needed so we can reproduce the bug and fix it. Another thing that can be helpful if it's a crash detected by BugTrap is entering your email address, a description of what you were doing, and clicking on "Submit Bug" to submit a bug report. We regularly go through the submitted bugs to fix them.

Wednesday, June 8, 2011

May 2011 Sprint Highlights

Some of the more interesting accomplishments from the May 2011 sprint:

  • Added three new GMS videos on the YouTube channel.
  • Fixed 24 bugs
  • Created an installer for GMS 8.1 for 32 and 64 bit
  • Created 64 bit versions of MODFLOW
  • Got 64 bit tests of MODFLOW running
  • Added a preference for 64 bit MODFLOW
  • Made good progress on restoring ability to contour and block fill at the same time
  • Finished fixing the annotation bugs to be included in 8.1
  • Created a local help page, similar to the online learning center, which will direct users to the tutorials installed locally
  • Created a table of contents for the wiki and got PDF generation of the wiki working. A locally installed PDF version of the wiki will be available with GMS 8.2.
  • Added code to MT3D model checker to look for missing species in the conceptual model
  • Almost finished basic raster implementation (raster objects coming in GMS 8.2)
  • Wrote a design for MODFLOW-NWT
  • Changed some MODFLOW dialogs to conform to the standard for variable names
  • Made lighting dialog display changes instantly in graphics window

Tuesday, June 7, 2011

GMS Resources for Educators

We recently created the GMS Resources for Educators page at aquaveo.com. There you can find sample lectures, in-class exercises, and homework assignments for a one semester, college level course in groundwater modeling. The course teaches groundwater modeling principles with an emphasis on MODFLOW and MODPATH. GMS is used as one of the software tools in the course and a lot of time is spent building real models on the computer. From the course description, "This course is application oriented. We cover the fundamental equations and the modeling theory but the emphasis is on teaching you how to solve real world problems. At the end of the semester, you should feel confident in your ability to develop and calibrate a complex 3D groundwater model."

Dr. Norman L. Jones has taught this class for years at Brigham Young University as CE 547 - Groundwater Modeling. He continually updates and improves the material. To obtain the entire curriculum with a syllabus, tests, and answers to the homework assignments and the tests, email Dr. Jones njones@byu.edu.

At the end of the course students complete a case study of the Woburn site described in the book A Civil Action. If you are familiar with the book or the case, you might be interested in the excellent Woburn Hydrogeology Data page maintained by Dr. Jones which includes all sorts of raw data for use in building a groundwater model, as well as photos of the area and even photos of many of the key players in the book. The case study is designed to be done with the students divided up into small teams - some teams working for the prosecution, and some for the defense.

Monday, June 6, 2011

MODFLOW and More 2011


Members of the GMS team recently attended the MODFLOW and MORE 2011 conference in Golden, Colorado. The conference was great. There were many presentations related to MODFLOW modeling and groundwater in general. One interesting development was the announcement of MODFLOW USG (Unstructured Grid). This version of MODFLOW is not yet released but it looks quite different from current versions of MODFLOW.

It was good to meet current GMS users and get feedback on improvements that can be made to GMS. Thanks to all those that came by our booth.