Wednesday, August 24, 2016

git merge

what documentation tells you ...


What really happens in real life ...


Sources:
  • http://stackoverflow.com/questions/9069061/what-is-the-difference-between-git-merge-and-git-merge-no-ff
  • http://stackoverflow.com/questions/24800387/mass-deleting-local-branches-that-has-been-rebased-and-merged

Monday, February 29, 2016

two months down, ten to go

The past two months have been surprisingly busy.

  • Took in a mentee at work that's based in Latin America, we talk once every two weeks. It's mostly an open conversation but we've solved two testing problems together so far.
  • Established a working relationship with two other groups at work with the aim of helping them solve their testing problems.
  • Demo's and lots of conversations with other groups about how engaged and skillful testing can help their current projects. This has resulted in three more groups that have expressed interest in how we test.
  • Wrote a chapter for +David Greenlees' book, Software Testing as a Martial Art. That book is already out as of last friday. You should read it. It's unlike most testing books I've read and I'm very glad to have been a part of that project. My full review of that book is forthcoming.
  • I was also interviewed by +Joe Colantonio for his Test Talks Podcast, Episode 92. That came out yesterday. I will probably write about that experience. I was so nervous and had to do a bunch of repeats in the beginning. That does show Joe's skill and maturity as a host and an interviewer.
  • I'm currently working with +Matt Heusser+Justin Rohrman+Michael Larsen and +Brian Van Stone for an upcoming Testing Podcast. That first episode should be out very soon. That's another blog post that needs to be written.
  • The biggest surprise I've had so far was being invited to speak +Anna Royzman's Test Leadership Congress in NYC, scheduled on April 27, 2016. What was going through my head when Anna asked me is probably worth more than a blogpost, so watch out for that.
  • Volunteered for the +Association for Software Testing as part of the technology team. I have the pleasure of being able to help, assist, and annoy +Eric Proegler on a daily basis. We've solved some interesting problems so far and I do have a coming blog post for this that should be out soon. 
The thing is that only ONE of the above eight bullet points are part of my new year's resolutions this year. Let's play a game and tell me which among the above bullet points was the only one that's on my New Year's resolution list. I want to reiterate that the above mentioned opportunities just presented themselves and all I had to do was engage them. It's more proof that Plans vs. Real Life diverge most of the time. 

How's your year so far?

Thursday, January 28, 2016

symbiosis and software systems integration

There's a running conversation on twitter about the definition of "integration testing" and also the notion of "integration" when it comes to software or just systems as a whole. I think that understanding the concept behind integration in terms of software systems will give us clues on how to define the what's and how's of testing from an integration perspective .

Good old Wikipedia defines "System Integration" as:
In information technologysystems integration[2] is the process of linking together different computing systems and software applications physically or functionally,[3] to act as a coordinated whole.
 "linking together"

Looking at the idea of linking things together brings the notion of biological relationships to mind. First, uni-directional linking. This is very similar to the idea of Symbiotic Commensalism which states,
a class of relationships between two organisms where one organism benefits from the other without affecting it.
Consider a library that you use as part of building a specific functionality on your site. The methods or classes from that library gives you the benefit of not needing to write your own. The library remains unchanged and is not affected by how you use that library. Though this definition of a commensal relationship is somewhat shallow because there is a point where a given library starts to be problematic because of bugs in that library that will then eventually affect the system that you are integrating this library into.

The second type of linking is bi-directional. This reminds me of Symbiotic Mutualism. The "hope" in this type of integration is bringing mutual benefits to both systems that are being integrated. The closest thing that comes to mind is a user profile system that feeds into a marketing system which in turn provides suggestions against a given product based on a distinct set of user choices.

Just like any relationship that's defined above, there are attributes in any given relationship that can cause for a type of relationship to switch. In the case of software, this usually comes in the form of  bug. Whether a bug is intended that will lead to your data being stolen for nefarious purposes (Symbiotic Parasitism) or a bug that eventually leads to the demise of another system in the form of a backdoor hack where a payload can delete everything (Symbiotic Amensalism).

"perceived risks"

So how do we test for integration risks? Testing for the functionality, behavior and purpose of the resulting coordinated whole will give you one part of the story that you are trying to write. Understanding the key dependency points and data hand-offs between both systems is key. But that's not all, you also need to be able to tell the story of how you are going to test.

In 2010, Michael Bolton wrote a blog post on Test Framing, which became a set of lenses that I "wear" whenever I need to design tests around a given feature or product. Simply said, in order for you to test (anything) you need to be able to tell two parallel stories: The story of the product and the story for testing. 

Just like testing any product, integration testing is just a variation in the mission of your testing. Your ideas and awareness of the moving parts will hopefully inform you of the techniques that you can use so you get to the most important problems that will lead to risks in the least amount of time.

Thursday, January 14, 2016

yet another facebook bug -- location tag review


This is definitely a weird bug. As you can see from the video above, I can neither accept nor ignore a location tag request. This was an instagram shared image and the privacy setting for the image has been set so that mine and  +Laurence Hewitt's friends can all see the image.

The ensuing http requests when clicking on the Accept and Ignore buttons don't provide a helpful message either. 

The 2016 State of Testing Survey is here

The State of Testing Survey for 2016 is finally here.

I've participated in the past two surveys and the results enabled me to ask management specific questions around skill, education, processes and overall challenges. I'm not in any way affiliated with the group running the survey but I do support this endeavor.

If you want to look at the result from 2015, you can get that here: 2015 State of Testing Results

Monday, January 11, 2016

Displaylink Drivers and Google Chrome sitting in a tree

C-R-A-S-H-I-N-G

I've been having issues with my Mac lately and it gets pretty annoying when you get logged out for what seems to be no reason at all. This all started when I had to use Lenovo's USB Pro Dock. Since I'm part of a limited pilot program that allows me to use a Mac at work, I'm mostly left to my own accord when it comes to support cases and dealing with issues that my computer is having. Last September, +Google Chrome made changes to it's displaylink hardware acceleration algorithm that caused for Chrome to be completely unusable when I am connected to the USB Dock at work. They've fixed that problem since then.

To give you a better context of my setup, I have a Macbook Pro with OSX 10.9.5 using Displaylink Driver version 2.4 with 2 Lenovo monitors connected through a USB3 Pro Dock. I'm also using the latest stable version of Chrome with hardware acceleration enabled.

Just today, I was doing SEO specific research and looked for tools that can help me. The Google Webstore has pretty decent SEO related plugins until the link drivers crash and kick you out of your computer. I tried looking into available plugins and settled with using Meta SEO Inspector because of the information it gives and it's ease of use. I had the chance to look at one site and the plugin started acting funky.

The first time I launched the tool, I get the advertised operation. A window drops down containing all necessary declared SEO information about the page. Within the context of that window, I can scroll down and click on link that are pointing to external tools that give you deeper information for further analysis (like Google Pagespeed, etc.) The second time I launched the tool on the same site, the plugin window is no longer completely visible and I can no longer interact with it. The next time I try to interact with the browser window that has the plugin activated, I get immediately logged out.

When I look at the system logs on my mac after logging back in ... I see these errors;
Google Chrome Helper[57736]: AVF error: IORegistryEntryCreateCFProperty failed for display number 1, IOVARendererID property not found
Google Chrome Helper[57736]: AVF error: IORegistryEntryCreateCFProperty failed for display number 2, IOVARendererID property not found
Google Chrome Helper[57736]: AVF error: IORegistryEntryCreateCFProperty failed for display number 3, IOVARendererID property not found
Google Chrome Helper[57736]: AVF error: IORegistryEntryCreateCFProperty failed for display number 4, IOVARendererID property not found
The problem is now pointing towards how Chrome is calling the displaylink drivers that are extending Apple's IOKITLib API. 

Yak needs to be shorn.

This problem can be solved by by not using the dock which forces my computer to not use the DisplayLink Drivers. But ... I need 3 monitors to be productive, so #firstworldproblems.

Now skype is acting up ... no rest for the wicked.

Friday, January 8, 2016

Happy Arbitrary Rollover Date

I intended to do this on January 1st, but didn't. I wanted to do it again on January 2nd, still didn't. It's now the 8th and if I don't do it now, I might just never. So here we go.

Last year was bundle of changes, surprises and challenges for me in both my professional and personal like. This is my attempt at pulling the nuggets and create some sort of highlight post of what happened last year and what I look forward to this year.

New Job

I had a serendipitous and unexpected offer for work near my home and I couldn't just refuse the offer. The past 8 years that I've worked in Manhattan for companies like nytimes.com, NBCUniversal and Viacom has been very rewarding for my career, but it did come with a price. I had a 2 hour one way commute which gave me so little time to spend with my family. I want my kids to remember me as someone who is an active participant in their lives and not just the person that sleeps through the weekends. Now, that commute has been reduced to 20 minutes.

I'm now part of the group that's under the banner of Johnson & Johnson's Commercial R&D. There's a lot of interesting stuff going on and it's definitely an interesting lateral move that enhances my ability to contribute and learn based on the problems my team is trying to solve.

New Experiences

I've had the chance to participate in a couple of conferences last year and met people for the first time who have somewhat influenced professional work. The Conferences of note are CAST2015, TestbashNYC and DrupalCon. The @NYCTesters Meetup Group has also been a very pivotal contributor to my learning. Think monthly behavioral nudges on what you can do to challenge yourself in being a better testizen. Shoutout to Anna Royzman (@QA_nna), Kate Falanga (@Squidish_QA) and Tony Gutierrez (@tgtigger77) for their relentless dedication to the testing community in the NYC Metropolitan Area. 

I've also been listening to the AB Testing Podcast and had the chance to meet with Brent Jensen (@BrentMJensen) when he was in NYC for the Strata Conference. His ideas on using data to answer interesting questions that could unveil glimpses of actual quality is very interesting to me. One central theme that have also learned from that podcast is Alan (@alanpage) and Brent's notion of combined engineering. Would be nice to have these folks in the East Coast next year ... are you listening @NYCTesters?

The other podcast that I need to give a shout out is +PerfBytes. They have churned out very interesting topics of which my top 3 must listen podcasts are, CDN, Bots (yeah!), and Streaming Performance. Check them out. 

I also met some folks for the first time when I was at CAST and TestBash NYC. Most of these folks are testers I have conversations with everyday through Matt Heusser's (@mheusser) Software Delivery 24/7 Skype Chat or through social media. Carol Brands (@CSBrands), Chris Kenst (@ckenst), Damian Synadinos (@dsynadinos), Connor Roberts (@ConnorRoberts), Vernon Richards (@TesterFromLeic), etc. Maybe for 2016 I will finally be able to shake Tim Western's (@Veretax) hand? 

On a personal note, we were able to finally bring my youngest daughter to the Philippines last year to meet my family. Trips like these are always a milestone in my family because I get to show my kids the context of where I grew up. The ability to contrast the life they are living now and what I had is definitely humbling and makes me thankful for the blessings that I have at the moment.

New Challenges

With a new job, always comes with it's own challenges. Testing jobs these days usually come in with that expectation of "automate all the things". Surprisingly, the group of managers that I am currently working with are people that really care about what they do. I am happy that they are very context driven software development managers in their own right and they don't care about useless/baseless quality metrics. Last year has definitely been a good year to establish the relationship between good testing and testability, and where automation falls in that regards. I will say this ... When it comes to Automation and Testing, the law of non-contradiction does not apply. These two can work hand in hand to make each other better. Ultimately, testers are there to test, not automate. Automation can be a result of good testing practices. 

I couldn't have attacked these challenges head on without my trusty leads at work. Thank you Yuriy Yatsenko, Sergey Yuranov, Anton Prohorchik, Valery Yatsynovich and Vaishali Antala. All your contributions to the team last year have been very instrumental to our achievements last year. 

New Year

So here we are, 2016. I've been officially a tester or at least in a testing role for 16 years, and 6 of those years in a leadership role. What's next? I can't predict the future but I do look forward to the new people I will meet, circumstances I get to experience, and challenges that help me grow as a person professionally and personally. 

I won't have all the time in the world to thank everyone, but if you weren't mentioned above don't fret, it's not you it's me. :-)

Let's go 2016.