Presentation Files for Automated System Testing at CFObjective

Thank you to everyone that attended my presentation today at CFObjective conference on Automated System Testing with ColdFusion, CFSelenium, MXUnit, and Jenkins. I received a lot of positive feedback about the content, quality of material, and demonstration.

You can download my presentation slides, all the project files, and info here:



A general overview of the topic is here.

If you attended my presentation (it ended up being a full room!), please remember to complete the session evals! Go to the #cfobjective schedule page, click on my session, and fill out the evaluation at bottom

Ping me with any questions! Thank you!

Automated System Testing for Web Apps at CF.Objective

I'm excited to to have the honor of once again presenting at the CF.Objective() Enterprise ColdFusion Conference. This year I'll be talking about Automated System Testing for Web Applications with CFSelenium, MXUnit, and Jenkins.

I've been a Quality Assurance software developer since 2007 when I was on the ColdFusion server engineering team at Adobe. For the past couple years I've enjoyed working at FirstComp Insurance with one of the largest ColdFusion developer teams that I know of, including well known team members like Sam Farmer, Dan Vega, and Jason Delmore, as well as many others of ColdFusion's best.

Testing by Isolation
One of my goals last year was to create a test suite framework that could perform Automated System Testing of our collection of web applications that we use for our business. We run it all on ColdFusion with a truly massive code base, and we have many different web applications that drive different parts of the business, each with unique user interfaces (UI). Part of good development practices includes writing Unit Tests early in the project to test application modules (CFCs) in isolation. Unit Tests are great for catching issues early in the release cycle, but they don't test how all the parts work together across the whole application as a system.

Testing Across the Board
This is where System Testing (or UI Testing) comes in, and I'll be showing you how I built our automated UI test framework from the ground up.

[More]

Adobe LiveCycle DataServices for ColdFusion at CFObjective

Allaire's CEO, David OrfaoAfter a decade of working intensely with the ColdFusion server, I'm finally getting the courage to start presenting about it on the conference circuit. As a blogger, tweeter, and contributor to mailing lists I'm very confident helping others solve ColdFusion related problems because I can do that from the quiet comfort of my own desk. However, one of my greatest fears has always been public speaking. I'm the kind of person that feels like I need to know the subject matter cold, so that I can speak from the hip without relying on looking at the slides.




Blackstone Test CDsOver the years, I had some opportunities to present to small groups, and I recall each time feeling the adrenalin surge and my heart pounding. That started with presenting ColdFusion for Unix and Linux as an internal training class at Macromedia. Later, while taking classes at the Harvard Extension School, I was honored to be asked to present to CSCI-253 Developing Web-Based Database Applications. Even more so, I presented twice there in one year. The first time on Building ColdFusion Web Applications with CFEclipse and Dreamweaver, and later on ColdFusion Server Administration




MAX in ActionI've been attending ColdFusion conferences since the days of Allaire DevCon, but had never presented at any of them including MAX. My long time friend in the local ColdFusion Community, Brian Rinaldi, continued to encourage me to present at the local Boston CFUG as a starting point, as well as the new conference that he was organizing, RIA Unleashed, held in Bentley College this past November. The members of the CFUG were kind enough to let me present a draft of a presentation that I was to later give at RIA Unleashed. My presentation topic was Adobe LiveCycle DataServices Data Management for Mere Mortals


ColdFusion 1.5 on Floppy DisksFortunately at RIA Unleashed I was among the very first sessions after the keynote, so there was no time to build up butterflies that morning. If beforehand you would have told me that among the audience front row would be Ben Nadel, Simon Free, and Ray Camden with Tom Jordahl tucked way in the back then I surely would have freaked out. But they were both kind enough to chat with me before hand and even lend some technical assistance getting setup with the A/V, so that really put me at ease. With a firm limit of 50 minutes, I pushed all the way through what should have been a 90 minute talk, all the while trying to remember to speak clearly and loudly. The talk went off pretty much without a hitch as I found myself completely focused on the technical content and not at all worrying about the large room filled with people in front of me. I was delighted at the end when Tom complemented me on talk, which to me was the ultimate satisfaction.




First Unix machine to run ColdFusionI chose LCDS for ColdFusion as a topic because while I was a QA Engineer on the ColdFusion team at Adobe, I was paired with Tom, a Computer Scientist at Adobe who architected the integration between the products. Heck, Tom architected much of ColdFusion itself, and was in fact the original engineer to have ported ColdFusion to run on Unix and Linux back in the day. Tom is a font of information, and I cut my teeth on the feature under his guidance, which was then known as Flex Data Services and later renamed under the LiveCycle brand. I spent many days last summer and fall revisiting all the LCDS documentation again to ensure the quality of my presentation and to mentally prepare me for the upcoming conference.




ColdFusion Team, BangaloreWIth my first conference under my belt, I decided to throw my hat into the ring for the ultimate ColdFusion experience, CFObjective, which is promoted as The Only Enterprise ColdFusion Conference. I'm excited to announce that I have been selected to be a speaker at the conference, which runs from April 22-24th in Minneapolis, Minnesota. The conference is divided into three tracks for technologies related to ColdFusion. I'll be speaking the last day in the Flex track, once again on the topic of LiveCycle DataServices for ColdFusion Developers. Specifically I'll be talking about the prime feature of LCDS, the Data Management capabilities. With any luck I'll be updating my presentation to consider the benefits of working with the latest versions of Adobe software. Here's the brief description and the PDF:




Discussions of Adobe's LiveCycle Data Services are often entered with the same trepidation as those of Organic Chemistry or Quantum Mechanics, but with ColdFusion, building Web applications that manage complex data sets doesn't have to be that scary. Data Management is a pillar of LCDS that offers scalable, real-time data synchronization across very large numbers of connected clients with the benefits of conflict resolution and data pagination.† Come learn how to quickly get up to speed with Data Management by letting ColdFusion do the hard work for you.


If you're seriously interested in ColdFusion, then CFObjective is the conference for you. I hope to see you there.






ColdFusion Screams

Recent Tweets for Fri Oct 2, 2009 Part II

Follow me on Twitter!





Tue Sep 15 9:04 PM
@iotashan @rukumar Shan meet Rupesh. Rupesh meet Shan. You guys should talk CF9 ORM. ;-) Rupesh, Shan works with me & has an ORM issue
Tue Sep 15 8:51 PM
No CF Admin DSN setting for isolation level, but u can add SET TRANSACTION ISOLATION LEVEL <level> as u're validation query as workaround
Tue Sep 15 5:36 PM
Tue Sep 15 4:13 PM
@berniedolan Yup, and I was on a downhill at 35mph, slowed to 15 then skidded to within inches as he made a blinkerless right turn




[More]

Recent Tweets for Fri August 28, 2009

Follow me on Twitter!





Fri Aug 28 8:52 PM
Why is it that ColdFusion must be started by a privileged user on every operating system but Mac? Hmph!
Fri Aug 28 8:43 PM
@shutupdanielle Could be worse, you could be in Bolton. 2 pizza shops, that's it. Nary a chicken wing in sight (really).
Fri Aug 28 8:36 PM
@mobarger Big city turn me loose, set me free, somewhere in the middle of Montana
Fri Aug 28 8:08 PM
@styggiti Outside temp last night was 52F here, but not sure which is better lower temps or lower humidity.
Fri Aug 28 5:43 PM
ColdFusion 9 (& ColdFusion 8.01) bug for CF Multiserver's bin/cf-init.sh file. Please vote: http://bit.ly/MsgCT
Fri Aug 28 4:56 PM
Yep, verified the 3 issues with the Solaris part of the cf-init.sh boot script installer for ColdFusion 9. Oh, bugtracker.....


[More]

Recent Tweets for Fri August 14, 2009

Follow me on Twitter!





Thu Aug 13 11:30 PM
"All Washed Up", new photo in the Trash The Dress series. #photog #photoshop http://flic.kr/p/6Px1MC
Thu Aug 13 2:48 PM
RT @iotashan: queries in cfscript is as bad as doing queries in any other lang. cfquery will always be superior to Query() in ease of use
Thu Aug 13 2:47 PM
@Photocritic In digital imaging half the data is in highlights & can be recovered PDFs: http://bit.ly/1ReSZ http://bit.ly/11osFd
Thu Aug 13 12:31 PM
@stevei Great posing on Paige for the lying down, forward shot. Would have been nice to have some more crash to the waves. #TTD #Photog






[More]

Recent Tweets for Sat July 25, 2009

Follow me on Twitter!







Fri Jul 24 9:13 PM
Thorough video tutorial for the special requirements of photographing actor headshots @LayersMagazine http://bit.ly/199Sn9 #photog
Fri Jul 24 8:49 PM
@jeffcrossphoto Yeah, @GuyWithCamera he kills me. Gonna tweet him for next week's #photog #FF
Fri Jul 24 8:39 PM
@jeffcrossphoto Yes, but how many #photogs are actually just #gwcam (guy with camera) (@GuyWithCamera)
Fri Jul 24 6:33 PM
@jshapiro1109 Thanks for the hint. I can't help myself from deconstructing things. :D #AdobeWave
Fri Jul 24 6:30 PM
The company that laidoff my wife in March just went bankrupt and laid the rest off, but severance checks are bouncing now. #whew #epix #pharmaceuticals


[More]

Recent Tweets for Fri July 10, 2009







Fri Jul 10 1:57 PM
Happy Friday! A few backlogged portraits updated. Lydia and Ms Asphyxia http://flic.kr/p/6DDjss http://flic.kr/p/6DDjt3 #photog
Fri Jul 10 12:59 PM
@remotesynth Nice, I didn't even know Cringely was still writing columns since he parted with PBS. I used to read them every week.
Fri Jul 10 12:41 PM
@chrisadragna This is old news since Labs was first published under Macromedia. Wiki was a canned app, and a better one in CF didn't exist
Fri Jul 10 12:38 PM
New Portrait: Twelve Feet (@tangon) #photog #photo http://flic.kr/p/6DBkmU (posting again for Left Coast peeps just waking up)
Fri Jul 10 12:05 PM
According to @klout, I'm influential to these peeps: @stevei @claymgarrett @styggiti @coldfusionPaul @ranarula. http://bit.ly/14VD7D
Fri Jul 10 11:45 AM
@photonconcepts Thanks for the #FF!
Fri Jul 10 10:51 AM
New Portrait: Twelve Feet (@tangon) #photog #photo http://flic.kr/p/6DBkmU
Fri Jul 10 9:54 AM
Oh no, Geocities is closing. Sniff. That was my first place on the web back in 1994. I'm gonna miss my blink tags.
Thu Jul 09 10:03 PM
According to @klout, I'm influenced by these peeps: @demirkapi @ryanstewart @cfjedimaster @reboog711 @jeffcrossphoto. http://bit.ly/14VD7D
Thu Jul 09 9:16 PM
If my brain were as big as @pfreitag's I would be serious danger of having my head explode into a million bits




[More]

I'm Twittering This! or Dude, Where's My Blog?

As you may have noticed, TalkingTree.com blog is rather barren these days. I find that while I work, while I relax at home (that is when I'm not working at home), or even when I'm mobile I'm nearly always using Twitter, and less so Facebook.

Unless you've been living under a rock you've heard of Twitter by now. If you're still not sure, Twitter is a bit like group chat where you post a short summary of what you're doing or what's on your mind, and other people that are interested can reply. While I'm not going to explain Twitter fully here -- you can find that on Twitter.com -- it can be very useful for sharing up to date information about a particular interest with lots of other people that share that interest. Most of my Tweeps fall into one of several interest groups... There's those interested in Photography, those interested in Web Technology, and those that happen to otherwise be friends or family. There are several applications you can use to watch Twitter updates. My favorite for use on a computer is TweetDeck, and on my iPhone I use Twitterific. One reason to love using an iPhone with Twitterrific is that I can be anywhere, shopping, getting a haircut, or at a conference and have the ability to take a cell phone picture for upload to Twitter with a brief description about what's going on.

Twitter and Facebook are such interesting places to socialize online while sharing information that I've neglected my blog for quite some time. To address that problem, I'll be posting summaries of recent Tweets to my blog here where you can catch up on some of the things I've been talking about. Although, this is a bit like sitting next to someone that's on the phone since my Tweets here are only half the conversation some time. To get the full benefit of Twitter you really have to follow both sides of the conversation.

To accomplish updating this blog with my Tweets, I whipped up a quick ColdFusion script to pull in my Twitter RSS feed and convert to HTML with all usernames and URLs converted to actual links. I'll next try to automate this so that my blog gets regularly updated with my Twitter summaries.

Of course, if you're already on Twitter, Follow Me, and on Facebook Add Me as a Friend.

How to read tweets

  • If a tweet begins with an at sign, its a username, like @JoeSchmoe. Its at the beginning because I'm replying to something that Joe Schmoe tweeted earlier.
  • If a @username appears later in the tweet but not at the beginning, then i'm refering to that user, like Hey, did you see that cool widget that @JoeSchmoe built?
  • If a tweet begins with RT, that means Re-Tweet, and its kinda like holding up a megaphone. On Twitter you Follow or subscribe to certain people, and in turn other people follow you. The people that subscribe to your tweets may not be following the people that you subscribe to. So by retweeting someone that you subscribe to, you are amplifying that persons tweet by broadcasting to all the people that subscribe to you. Confused yet? If your subscribers are interested in the retweet, they may then follow that original person (a.k.a tweep or twit).
  • If a tweet has a word beginning with a pound sign like #photog, that's called a hashtag. Hashtags are used as labels to identify a topic for your tweet. Later people can search by hashtags to see tweets from everyone that talked about that topic. In this case, #photog means the tweet is about photography or a photographer. This in contrast to #photo without the last 'g' and it is used for tweets about a particular photo.


Recent Tweets for Mon June 29, 2009



Mon Jun 29 10:09 PM
2 nights in a row my son doesn't want to sleep coz he's not feeling well. Long nights of frequent rocking, not much sleep for me.
Mon Jun 29 4:45 PM
@JoshuaCurtiss Pretty sure it was CF5 -> CF6 w/ the J2EE conversion. I was on the team at Macromedia that reviewd poss bkwds compat issues
Mon Jun 29 4:39 PM
@jlamoree Holy cow, a fradulent Lactating Lesbians infringement claim from Cream Ridge, NJ. That just, em, *sucks*!
Mon Jun 29 12:52 PM
@jonbcampos Apache XSL-FO http://bit.ly/Xrhar


[More]

Perspective on ColdFusion's Big Question (TM)

Just wanted to share a reply I made on GetSatisfaction to provide a historical perspective to the question "What really is the future of ColdFusion?". Before you ask what the future holds, its good to look back to see where ColdFusion has been since its inception in 1995.



CFMX 7 (released Feb 2005) was the release where product adoption saw the first major boost since the "MX" overhaul. Since CFMX 6 (released June 2002, in a down economy) was a re-architecture in Java/J2EE from the earlier CF5 (released May 2001) written in C++, there were few new features introduced and there was an associated learning curve now that the product had a Java foundation.

Problems in the re-architecture surfaced, slowing new adoption of CFMX6, leading to the point release 6.1 (released July 2003) which for the most part corrected all the issues and restored the waning product reputation.

ColdFusion MX 7 was a feature rich release, which attracted many new developers, most of whom had begun to grok CFCs and Java integration. The post 9/11 economy had generally recovered as well, adding to an increase in technology spending.

With most product release cycles, there's a decline in sales or tail at the end, and ColdFusion 8 (released August 2007) saw another major boost in adoption over the tail as it too was a feature rich release that provided solutions to many contemporary problems in Web Dev.

Frankly, IMO, nearly all negative connotations (i.e. "Legacy Software") about the ColdFusion Web Application Server are due to anachronistic experiences with earlier versions of the product in the mid/late 90's. Those opinions seem to be expressed from developers that are less familiar with the revisions and enhancements found in recent ColdFusion versions. (Case in point)

[Added note: The easy learning curve, weak typing, and case-insensitivity in the product are among some factors that may have been conducive to poor programming practices... i.e. give them enough rope to hang themselves, so to speak. Does anyone remember memory corruption from not locking shared scope variables? That whole conundrum went away with CFMX]

Personally, I think ColdFusion is a fantastic product and I love using it. It has an extensive, contemporary tag library on a stable Java base and Web application development time can be short and sweet due to its perpetual focus on RAD.

ColdFusion 9 is well known to be underway and will further address solutions to where technology is going. Furthermore, risk due to proprietary software is mitigated by the release of third party CFML engines which can provide a core of language features if not the full, rich diversity of language found in Adobe's product.


To throw in a plug for myself, I'm currently seeking full time, permanent employment in the greater Boston area. See: Adobe Expert Seeking ColdFusion / Flex Dev or QA

View Steven Erat's profile on LinkedIn

More Entries