Lance Brandenberg, Solutions Architect here at Geist Interactive, will present a session title “Testable FileMaker Custom Apps”, focusing on FileMaker testing.

He is a first time speaker at DevCon, and we’re excited that he is another voice in the ‘testing-in-FileMaker’ conversation. He hopes to jumpstart the topic again and get folks talking about it because, as he will argue in his session, FileMaker developers have more of a need to rely on testing.

His session is Wednesday, August 8, from 1:00 p.m. to 2:00 p.m. Here are the details:


Session Description

With the release of FileMaker 16 and native JSON functions, it’s easier than ever to create testable FileMaker apps. We will walk through a simple example of what testing is, and how it can improve your solutions. Most developers have had situations where they need to alter some existing logic, and are concerned that they might alter something with unforeseen consequences. Wouldn’t it be nice if you could ensure that your changes didn’t break existing code? Welcome to FileMaker Testing.

Recommended Background

How to write modular scripts, trapping for errors, and some experience with using JSON objects.

Session Objectives
  • What is Testing?
  • How to write testable scripts
  • Benefits of testing
  • Custom functions needed for testing

To get a better understanding of this topic, I sat down with him over RingCentral and asked some questions. Catch the video here of our interview. You can also read it here.

Here’s our conversation in written form:

Q: Who are you? What experience do you have in FileMaker?

A: Lance is a Solutions Architect at Geist Interactive. He’s been working in FileMaker since 2006. He stumbled into the platform while running a screen-printing business. Like many of us, he decided to get out of that game, selling the business in 2011 to become a full-time FileMaker developer. He’s in San Diego, and really enjoys working at Geist Interactive so that he gets access to the cool tools that Todd and the company have developed.

Q: Describe your session.

A: Lance’s session “Testable FileMaker Custom Apps”, on FileMaker testing. Building FileMaker solutions so their testable is interesting. There doesn’t seem to be a lot out there in the FileMaker space, so he’s excited to start that conversation. There’s a lot of ground to cover: modular scripting, custom function libraries. For attendees, you’ll see the benefits of testing and some live coding to see how to build these tests. (Lance will be brave and live-code!).

Q: Why is FileMaker testing important?

A: Remember the game “Wack-a-Mole”? It’s extremely close to how we develop in FileMaker in complex apps. We develop a new feature, and that has the potential to break something already working. Lots of feature requests means we need to test more, and we then need to develop a robust testing methodology. It’s possible we don’t test enough since we do have the rapid-application-development platform, but we really need to.

Testing allows you to build more durable solutions. If you write a test a year ago, and you add a feature today, you should be able to run the test causing nothing to break. We don’t have to worry when we deploy that something’s going to break. If we rely on tests and new tools that we have such as the Data Migration Tool.

It is not simple to test, but it is highly worthwhile. Testing is specifications in code. Scripts that run tests are run by anyone.

Q: What is a tip or trick that you’re going to demonstrate in your session?

A: Lance hopes to have a FileMaker Testing Generator file built. It is similar to our Generator file. A FileMaker developer can create a test using script comments written in a standardized JavaScript form. Test-writing seems boring and challenging, tedious. Lance’s Testing Generator file will help write tests a lot quicker with no mind-numbing work to do.

Lance welcomes anyone to continue the testing generation idea.

In all of software development, testing is complex. We have to be aware of what testing can achieve, and we also should test everything we can anticipate.

Q: Does the person who develops the code also test?

A: The best way to produce tests is the developer who makes changes or creates new features. She knows the system inside and out and knows how the app should work.

Q: Is Testing different than QA work?

A: Yes. A QA person is operating like a user, doing some user testing. What Lance will talk about is more analogous to functional testing. Lance will demonstrate with a purchase order system where a developer is adding new features and how to add tests to accommodate those new features.

Q: What materials will be available?

A: Lance has three libraries on GitHub libraries: JSON Validations, a custom-function library, and an error tracking library. These are all FileMaker custom functions. Lance will also include the starter file upon which he will do the demo. Finally, he’ll have references to documentation on such things as JavaScript standards and his Testing Generator library.

Q: What are modular scripts?

A: There are a few sessions at DevCon this year. Todd will speak of Modular FileMaker, and John Renfrew will speak about Modular Programming. These modular scripts should be a must-attend session. Modular scripts are, in essence, scripts that perform one function well. For example, you can build a script that returns the end date of an event if the script is given the start date and the event length as a parameter. Inside this script is the logic that will return the correct end date.

Q: How much JSON do you, Lance, use in your daily work?

A: Every project Lance work on uses JSON primarily to pass data around. JSON makes modular code easier. Each script has to receive data and return data. The chunks of code (in the form of JSON) make it very easy to work. Lance will always use JSON.

Q: What is something we could know about you that has nothing to do with FileMaker:

A: Lance will be a dad in December.


Lance’s session, “Testable FileMaker Custom Apps” is Wednesday, August 8, from 1:00 to 2:00. Check it out. It will be a good one.