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]

No April Fools: Selenium Shipped Soon to Expire SSL Certificate

QA Engineers everywhere woke up today and rolled into the office with the usual dread that Monday morning's bring, only to find out their day just got even worse because all of their selenium driven, automated test suites all came crashing to a halt on Sunday, April 1st 2012. Every test would halt with an SSL Certificate warning message "Error code: sec_error_expired_issuer_certificate".

It took me a 15 minutes of scratching my head, looking at test success history on Friday (when they all passed) and comparing that to any changes in the test suite (there had been none in the last few days). Then it hit me that that the culprit might be that darned CyberVillians' certificate that ships in Selenium. Once that dawned on me, I dug up the selenium-server-2.0.0.jar file, extracted, and checked out the cybervilliansCA.cer in the sslSupport subdirectory.

I had been using Selenium 2.0, which includes its own SSL certificate called cybervillainsCA.cer bundled into the server. It uses that SSL certificate to proxy/intercept the SSL requests to the Application Under Test. Well, apparently that cert has an expiration date of March 31, 2012, and I ran smack into it. This caused all tests to fail because Selenium could not proxy SSL anymore.

To correct the problem, I had to update the Selenium server version to 2.20, which should be good for another 20 years since they had the good sense to make it expire in 2031 this time.

The Selenium Server 2.0 Expired Certificate:


The Selenium Server 2.20 Certificate Valid Until 2031:

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 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]

Flex Builder 3: Serial Number is Invalid

Last week I applied for the Free Flex Builder 3 For Unemployed Developers so that I could build Flex applications on my new Mac Book Pro, and in two short days I received an email with my new Professional edition license key.

I had been using the trial version of Flex Builder 3, which had been installed from my Mac administrative account. Upon entering the new serial number I was greeted with a contradictory message in the Flex Builder 3 Activation dialog:



Current License: Professional Edition - Educational
Serial Number is Invalid



Flex Builder determined that it was a Professional Edition license key, but then indicated that the number was invalid, complete with a green check mark indicating it was valid. That doesn't make any sense at all.

I suspected that problem was somehow with permissions so I did a bit of Googling to find this recent post on the official Adobe Flex Team Blog which indicated at least that the Flex Builder license should be stored at:

/Library/Application Support/Adobe/Flex/license.properties


However, when I examined my file system I discovered that the Adobe directory did not contain a Flex subdirectory, and therefore no license.properties file.

To test permissions, I then launched Flex Builder with the sudo command to permit Flex Builder to run with root privileges. My assumption was that when I ran Flex Builder with my regular administrative account it was not able to write the license file to disk, and starting FB with sudo should allow it to do so. You can see that when run as sudo, Flex Builder wrote the license file to disk with the user and group of root / admin.

view plain print about
1sudo /Applications/Adobe Flex Builder 3/Flex Builder.app/Contents/MacOS/FlexBuilder
2ls -l /Library/Application Support/Adobe/Flex
3-rw-r--r-- 1 root admin 114 Apr 8 17:06 license.properties




I was pleased to find out that this was in fact the problem, and Flex Builder now accepted my license and indicated that it was Professional Edition and valid.



My Application to CDIABU in Retrospect

I was searching through my email for something today, and I came across my application to CDIA where I wrote this in the Personal Objective section almost two years ago.

Why have you chosen to pursue an education in the field of Digital Imaging Arts?
Through achievement, motivation, and serendipity I've been fortunate to have earned an esteemed position as software quality assurance engineer at Adobe Systems. Within this vibrant, professional atmosphere my personal growth as a serious amateur photographer has accelerated significantly.

At this nexus, I wish to seize the opportunity to expand my skills horizontally by bridging my experience in rich internet development with the digital imaging arts and professional photography.


What do you hope to achieve by enrolling in the program at the Center for Digital Imaging Arts?


With the completion of a certificate in Professional Photography I will have formalized a long standing, deep, personal ambition which will allow me to thoroughly exercise my passion with technical excellence.



Further, I strive to achieve a role at Adobe where I can consult with, collaborate with, and guide Adobe customers towards their own creative endeavors and solutions. Knowledgeable in the diverse array of photography, digital imaging, and next generation web application development I will be able to translate my success into the success of my customers, my colleagues, and my company.

To Flex Camp, and Beyond!

A week from today will be the 2nd annual Flex Camp Boston at Bentley University. At a very modest cost, this is a full day event packed with sessions at the intermediate to advanced level given by industry experts. Register for Flex Camp Boston.

For the last year I've been on the Flex SDK team as a Quality Assurance Engineer, and before that I had excellent run of more than 7 years testing and supporting ColdFusion. I know most of the speakers that will be presenting at Flex Camp and can attest to their passion for building the next wave of Rich Internet Applications, so I fully encourage you to attend if you haven't signed up yet to share in the excitement and mingle with your peers.

This will be an unexpected reunion of sorts for me as I suddenly find myself as a customer rather than employee. With the extra time as I seek new employment I'll immerse myself in training with Flex and AIR, and try to produce an application as an online reference to demonstrate as an example. The odd thing about QA'ing a software product is that you are exposed to narrow facets in which you dive very deeply, and don't often get the chance to practice the breadth of the product. My success in ColdFusion QA was largely dependent on the many preceding years where I provided "gold" level support for the product, something which required me to constantly explore and exercise every nook and cranny of the CF app server and language.

My first inclination for a Flex app is to build my own photography business website in Flex to avoid the cost of purchasing one of the reputable but expensive prebuilt websites from places like LiveBooks, BigFolio, or A Photo Folio.

Finally, I'd like to thank everyone from coworkers to customers to local cfug friends for taking a moment to contact me and express their thoughts and show their concern. People have been writing and chatting intensely while offering job tips and advice. As I mentioned on Facebook, I've never before felt the online community to be as tangible and real as I do now. Thank you all, and I hope to see those of you in the area at Flex Camp!

Photography Certificate Complete Brings New Self Assignment

Stacey This week concludes my program at the Center for Digital Imaging Arts in Waltham. ScarecrowIt's been an exciting year and half as I pursued the Certificate of Professional Photography, attending class two nights and every other Saturday for the entire duration. The end of my studies brings with it the start of a professional vocation as a photographer, albiet part-time for now. I feel that the program at CDIA fully prepared me for this new path, and I've emerged confident and skillful, and ready to take on new imaging challenges.

Hollywood Glamour - Hi KeyAs I immersed myself in photography technique I owe additional thanks to some "virtual mentors", especially David Hobby ("The Strobist") for his extremely helpful blog entries and DVD tutorial, Joe McNally for his helpful blog and online training, and Zack Arias for his online tutorials as well. (I just started following Ryan Brenizer's blog as a valuable resource, too.)

KimFor the graduation ceremony, to be held in January at CDIA, I will be able to submit 4 framed images for display among all the images from my class. Many students submit work done during their time as students, but I would like to use this opportunity to challenge myself with a new project, specifically for the graduation show.

Patrick, front stepsIn this project, I want to exercise the best of all the strengths that I've gained by producing a collection of 4 environmental portraits done in the style of photographers I wish to emulate such as Joel Grimes and Tim Tadder, such that the portraits have a coherent theme and lighting style to bind them together. I've decided to call this first self assignment: Alchemy: Series One, a series having portraits that integrate the four natural elements, Air, Water, Earth, and Fire. More on this assignment later when its complete.

For now, I spent part of Thanksgiving in the garage practicing the technique and exercising all the moving parts.

Three Light Strobist Practice, on Flickr

CDIA Web Development: A mix of LAMP and RIA that lacks focus

The B.U. Center for Digital Imaging Arts has just added another core curriculum to their stable of information technology certificates by introducing the Web Development Certificate. As you may know, they completely won me over with their Digital Photography program, and one of my coworkers at Adobe has been raving about their Audio Production curriculum as well. As such, I have high expectations that they will deliver great instructors for the chosen curriculum.

Their Web Development certificate program, founded on more than 20 courses, emphasizes the use of PHP and MySQL as core technologies, including a Rich Media Web Development subtopic focusing on the use of Flash and ActionScript. Along the way there's a sprinkling of Javascript, XML related technologies, and AJAX, and the course is capped off with some Content Management and Web 2.0 social network topics.

[More]

Professional Digital Photography at CDIA

This year I've taken a big step towards turning a long time personal interest into a professional skill. In May I enrolled in the Professional Digital Photography program at Boston University's Center for Digital Imaging Arts, or BU CDIA for short. The curriculum spans 24 classes over nearly 18 months, and requires the commitment of 2 nights per week and every other Saturday.



First Class at CDIA
First class at CDIA
Over the years I've been able to study at various local universities to build web technology skills, including Bentley College, Brandeis University, Harvard Extension School, and BUTrain (Boston University's corporate education). Compared to CDIA, I would be hard pressed to describe a curriculum or facility that was more current and state of the art, or better staffed with highly qualified instructors. CDIA's facility, conveniently located on Moody Street in Waltham, can hardly be called a campus, although it occupies three floors of a huge building converted into classrooms and studios, and will soon expand into an adjacent building that formerly housed a Jordan's Furniture store. In retrospect, only Harvard's Extension School rivals CDIA in quality of equipment and facilities as well as teaching ability of instructors.

[More]

More Entries