Category Archives: Work Experience

Technical QA Interviews

Giving interviews require a great deal of planning, skill, and preparation. After all, your goal is to assess a candidate whom you will be potentially committing to and investing a sizable salary on for months and even years, in the time span of 30-60 minutes. It is definitely, in my opinion, not a trivial undertaking. I have, in my experience learned, and also stumbled upon, a few tips and strategies though, that should allow you to make the most out of your limited time with your candidate to be able to successfully assess whether or not he/she is “the one”.

Presentation

You should always ensure that you are giving the candidate the Presentation you desire. The candidate should be impressed with your professionalism, and level of knowledge and experience. The candidate should even be somewhat intimidated. Not to the point where this becomes a power trip, but to the point where the candidate feels pressured enough to EXCEL.

Somewhat on a tangent, this is referred to (at least by me) as a paradigm shift. Honestly, in NONE of my interviews that I’ve been the interviewee have I 100% matched the qualifications desired. I learned Python about 3 years ago mostly because the new job I started required it. Previous to that, I didn’t really know Python. And this didn’t matter because I was able to show I had a penchant for the logic required to produce quality automation architecture/scripts. And there was some pressure, as I was required to deliver results within a timeline. Yet, the pressure was what drove me to subconsciously learn the language quicker, and in such a way to suit my needs to finish the frameworks.

Basically, what I’m saying is that the candidate needs to feel that he, if he successfully completes the interview process, will be joining a worthy, reputable, and well-established company/organization. When he is in the interview process, he/she feels motivated and “in the zone” enough to show his TRUE COLORS under pressure. Will he stutter? Will he think out loud and come up with a good workaround? Will he utilize his current knowledge, and although it may not DIRECTLY present a solution, be creative and nimble-minded enough to think out a great solution? Presentation of yourself (and the company you are representing) is paramount.

With that in mind, what makes a good Presentation by the interviewer?

Professionalism

  • Be on time to your interview.
  • Greet the interviewer heartily with a solid handshake.
  • Appear as if you are listening. TURN OFF YOUR CELL PHONE
  • Do NOT get distracted by people walking by, by meetings, by agenda that is work related. The interviewee is your SOLE FOCUS.
  • Do not chew gum, nor drink/eat to the point where this interview appears casual. This should be serious business. You are investing a lot of money into the candidate you choose.

Skip the typical questions

  • Go into the interview knowing what was asked by other interviewers before you. “Tell me a little bit about yourself” wastes about 4-5 minutes of precious interviewing time.
  • Spend some time to review the candidate’s resume. The interview is NOT THE TIME to do this. Do not go job-by-job asking your candidate for a summary of what his/her roles were.
  • (I actually will sometimes spend the entire interview focusing on one job/title and expounding even on one role solely).
  • Feel free to jot down questions before the interview so you are prepared.

Preparation

Somewhat inline and very similar to Presentation, is Preparation. Go into the interview prepared, and you will seem Professional and really on top of things.

  • Review the candidate’s resume.
  • Ensure that you know the title that the candidate is applying for and any caveats of the job that could be used as fodder for good detailed questions.
  • Eliminate any non-relevant job experience from your “questioning” and focus on any and all job experience that could be an asset to the current position being applied for.
  • DO ask your other interviewees their thoughts (and even their opinions) before going into your interview.
  • One of my favorite strategies is called the “hand-off”. Sometimes I will not have enough time to fully focus on a certain area of the candidate’s experience/knowledge, so I will tell my next interviewer “I wasn’t able to really get a feel of her jQuery knowledge, but know she’s good in javascript. Perhaps you could dig into her jQuery experience…”
  •  Don’t be afraid to research the company he/she used to work for. That could dig up some great revealing questions as well. I once interviewed a candidate who worked for a company that just recently implemented a solid social media single-sign-on platform. However, further research into the company and into his end date revealed that he had no part in that as he left the company before that was even implemented.

Induce Participation

The white board and/or a computer is your greatest method in seeing how viable his/her experience is.

CHALLENGE HIM/HER!!

  • “Show me what a round-robin is in Java”
  • “Show me some pseudo-code that addresses the following issue in this class”
  • “Give me some test cases for the following page assuming that there were no other business requirements hashed out…”

More later…

Git mass delete by find

Oops. You transferred repositories. Or, by accident included all your compile and tmp files into your commit. There’s a cool solution. Of course, substitute “*.pyc” with whatever reg ex you need…

Found this on http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/

First, git rm them
find . -name "*.pyc" -exec git rm -f {} \;

Then, add a .gitignore file in the root of your repo and enter a line:
*.pyc

to prevent them from being added automagically in the future without an -f

Debugging the iPhone Safari browser, html, and css on the fly

Lightweight Browsers = Lightweight Tools

Testing applications on mobile browsers has always been interesting to me. It goes without saying that testing solely on desktop html browsers with a mobile user agent request header is not sufficient when testing mobile applications. Too many actions cannot be replicated on a browser, such as swiping, pinching, landscape vs. portrait orientation, specific screen specifications and resolution, phone call interruption, text message interruption, push alerts, loss of service etc.

However, with the desktop browser comes the myriad of extensions and tools that is essential for good website testing. This includes Firebug, Chrome Developer Tools, and various other plugins and add-ons that check everything from font size to request header parameters to image size. On most mobile devices themselves, however, there just isn’t that many tools such as these. I guess their intent is to keep the browser lightweight and limited resources free.

(NOTE: same as above also goes for virtual devices and emulators. Some are advanced nowadays, but I can come up with quite a few issues that will not be caught by emulators.)

Break away from the jailbreak

Is there a way to obtain browser jscript/html/css debugging functionality such as that inherent in the tools just mentioned? Of course the easy answer to access the source itself on the fly is “jailbreak” or “root” the phone. Ugh. As a legitimate Quality Assurance Analyst, nothing is more annoying and a sign of a newbie than to hear that “solution.” To me, that is definitely giving up and if jailbroken, definitely not a legitimate control test device. That’s akin to, in automation, when you cannot “click a certain drop-down” to hacking out a javascript function to “drop it for you.” That’s not what the user does, and immediately breaks away from the model of QA Automation, which is to imitate the user as much as possible.

When jail-breaking or rooting a phone, you are compromising the designed functionality of the Operating System, and testing on a now non-standard device. Even if you are now able to access functionality of the browser, who is to say that any defects you find, or DON’T find are replicable on someone else’s standard non-jail-broken device. Even if there is no one solution for all devices, please do not root the phone. There are solutions, you just need to be a little resourceful. But I digress slightly.

The Safari Web Inspector

On a recent project I was on, there was a menu header/footer that, per requirements, could not cover 3 lines per the requirements. However in our required device matrix, an older phone, with a smaller screen width was stubbornly wrapping over 3 lines. This code base, annoyingly, takes approximately 30 minutes to push to a test server so trial and error was out of the question. Of course, locally, we were not able to see the issue. I figured we needed a tool with capabilities such as Firebug so we could shimmy around with the css styles and see if decreasing font size, or spacing would solve the situation on the suspect device, while maintaining visual integrity on the previously passing devices, all while without having to do a trial and error on x number of successive builds.

Our developer came up with reasonable design solutions that worked on the trouble-making device, such as smaller font, smaller padding between the menu divider (in this case “|”) etc. Since there is a shared css file, we needed to figure out if any of these solutions would be feasible on the iPhone Safari browsers. Enter the Safari Web Inspector. Built into Safari and Mobile Safari, I was able to, like Firebug and Desktop browsers, navigate to the troublesome pages, and after they loaded and rendered, directly edit their css and html, and get a realistic idea of how these changes would appear when implemented in the source code.

Turns out, these changes were not to be for the iPhone and we had to abandon the requirement for this particular device, but I did save the team at least an hour of making changes, pushing to test, testing on all devices, and most likely, another hour to revert these changes, or try other variations in the source code before pushing it to test yet again.

Setting up the Safari Web Inspector for Mobile Safari

Requirements:

  • Any device (from Apple of course) running iOS 6 (or greater, if this is read in the future)
  • USB cable
  • Safari 6 (or greater)
  • Mac OSX Lion – 10.7.4 (or greater)

Steps:

1. In Safari, go to Preferences –> Advanced –> Select “Show Develop menu in menu bar”
2. On your iPhone, go to Settings –> Safari –> Advanced –> Turn “ON” “Web Inspector”
3. Go to your iPhone and open up your Safari browser
4. From Safari, go to Develop –> [User’s iPhone] –> [tab name on iphone safari browser]
safari_browser_debug_menu_demo

 

 

 

 

 

 

 

 

 

 

 

You should now be able to see the Safari Web Inspector for the mobile Safari instance on your iphone and be able to directly edit, view, and change css and html elements and values in real time.

safari_browser_web_inspector