Wednesday, April 15, 2020

The Case for Juicing and Using Everything

This is going to seem like a left-field post. The reason? It is :).

For those who are not aware, I am fairly active on a site called Quora. Admittedly, I have a few software testing questions I have answered but most of my conversations tend to revolve around music, fitness, snow sports, and nutrition. Thus today, I had a chance to answer a question related to something I do on a regular basis, which is "juicing".

For context, here's the original question:

Do smoothies kill the nutrients of fruit and Veg because it’s blended?

My answer actually goes a bit outside of what was asked but in this time of economic uncertainty, shelter at home orders, fears of viral contagion, and a desire to get some nutritional and possible immune system boost (caveat: I make no such claims that what I will suggest will necessarily do that but I do use it as an overall "healthy" approach to eating) as well as a desire to minimize food waste.

Thus to expand on that, I thought I'd talk a bit more at length about the things I do, how you might be able to incorporate them into your daily routine, and why I think it's valuable and ultimately a better use of food items in the long run.

For starters, I have a masticating juicer. It works by pressing foods into a spinning set of prongs/teeth that shred up the food items into fine particles and through a fine mesh screen with centrifugal/centripetal forces applied separate out the liquid and finer particulate components into a juice. The remaining larger pieces of fruit/vegetable pulp are hurled back into a receptacle where it fills and needs to be emptied from time to time. Many people discard this pulp. My main part of this post is to encourage people to not do that. It is possible to use this pulp in a variety of ways.

Let's talk about the juices I most commonly make. I typically order, in normal times, large quantities of apples, pears, carrots, parsnips, radishes, spinach leaves, collard greens, kale leaves, cabbage leaves, and ginger. The availability of each varies by time of year but again, in normal times, I have been able to get most of these frequently in large enough batches to make one or two liters of each juice at any given time. I pour these juices into mason jar bottles and I grab one or two of these every day to snack on, typically unfiltered and some of that pulpy goodness awash in the juice (yum!).

What is often not addressed is what is left over after this process is done, which can be several pounds of the pulp of fruit and vegetables. Depending on what you are juicing, this pulp can be easy to use or it can be challenging to use. It depends a lot on the care you take to prep what you are going to juice. Carrot pulp is easily usable in other things. Shredded ginger is a little trickier but still usable. Apple and pair pulp are easily used to make jams, jellies and fruit butter provided you've taken care to remove the seeds and woodier parts that appear from time to time.

Here are some easy examples of how I get some extra mileage out of foods that the typical juicer might discard.

* when you juice apples or pears, take the cores out first so that you capture the seeds in the core. take those cores and put them in water and boil them down. What you get is a rich pectin you can mix into the cleaner pulp after juicing that is excellent for helping to set up jams, jellies and fruit butter. The fruit pulp itself can also be boiled down and strained through a food mill to get the consistency you want for its intended destination. I like to use these as fillings for pancakes and crepes as well.

* carrot pulp is easy to use and mix into making things like carrot cake, carrot muffins, and as an additional binder for expanding ground beef in meatloaf if that's your thing. It also blends greatly with shredded onions and the pulp from celery juice to make a mirepoix that literally disappears into the dish but contains all of the flavors.

* greens of many stripes make for a finely shredded leaf after juicing. These leaves are great for mixing in with eggs to make both omelets and a Korean style of vegetable pancake base. They can also be cooked in water and blended up with an immersion blender to make for a flavorful soup base.

* sweet potatoes make for an interesting juice component that I often mix with other vegetable juices to cut their "earthy" taste. The leftover fiber makes for a great filling for dumplings and you can make a variation of latkes with the pulp as well.

* one of my favorite items to juice, also to help with cutting the strong earthy flavor of green juices, is ginger. Ginger is a challenge to peel and often you lose a lot of the ginger in the peeling process. To that end, what I do is I boil the ginger first to soften it, then I run it through the juicer to capture the first and strongest batch of juice. I filter that first pass of juice through cheesecloth and the leftover particulates I skim off and boil with lemon juice to make a high acid paste that I can then bottle and keep shelf-stable for up to 18 months. It makes for a great addition to Asian-style stir fry dishes :). The leftover pulp I then put into four cups of water and boil down again until I get a fairly viscous liquid. I put that into another layer of cheesecloth or a jelly bag and let the liquid strain. That remainder liquid makes for a  magnificent base to make ginger beer/ginger tonic if so inclined. The last of the fiber I then discard, though I'm totally open to ideas as to how to use it :).

Both sets of my grandparents lived through the Great Depression and I heard a lot about that time from them as I was growing up. It colored their everyday lives all the way up until their deaths and all four of them had a similar philosophy when it came to doing anything with any resource. Treat it with care, use it to its maximum extent, and be creative wherever possible. A little poem I heard all the time from my maternal grandmother was:

"Use it up, wear it out. 
Make it work or do without"

These ideas, I hope, might be interesting to others and may, perhaps, help us to stretch our food dollars as far as possible and, most important to me, not waste what we buy. If you have a favorite way to use your leftover pulp from juicing, please feel free to leave a comment and tell me what you do with it.

Saturday, April 11, 2020

OK, I'm At Home, All the Time. Now What?

As I have had the past few weeks to be at home full time, there is a definite difference between "working from home" and "sheltering at home". Even when I was working from home, I had the freedom to go out and do other things. Grab food someplace, sit in a Starbucks and work, drive out to band practice for a few hours each week. With Shelter at home policies in place, most of these outlets are not available at present.

I am practicing social distancing to the best of my ability. I have a protocol I use where I use chlorine bleach and towels to help me as I touch surfaces. I carry two zip lock bags that have towels sprayed with chlorine bleach and a handful of N95 masks that I use at different times. I use these when I need to go to the store, which has been a handful of times.

Some people are going to say "no big deal, I'll just order online." Not a bad idea, if you can get the items you want on time and what you want in the quantity you want them. that's not been a foregone conclusion these past four weeks. Several orders that I have made are still in process and of the items I have received, many have been rationed to only a few items per order. This is totally understandable considering the situation but it's a new reality for a lot of us. We are not used to having to wait in line and then to have limited supplies on hand.

The items that are less available are amusing and frustrating. I have yet to see toilet paper in any store I have been to in the past month. I have had trouble finding long-grain white rice, plain flour and I have yet to find any yeast in any store. Fortunately, a friend of mine had a large quantity of yeast she willingly split in half to share with me. I was also able to return the favor by giving her apple butter and apple jelly that I had processed and canned back in December. It has been nice to have it as a bartering currency :).

So what are some positives? Well, there have been a few. I am definitely doing a lot more from-scratch cooking. that's been made a little frustrating by the fact that my oven gave up the ghost last week (it needs to be fixed but for the time being I have a large toaster oven and a range of dutch ovens that I can put on the range if needed so I'm not totally out of options ;). Up until I received the yeast I was making several batches of Irish soda bread. Very good and hearty, lasts a good while, and leftovers, if you make a lot of it, can be frozen for later.

I am taking advantage of a variety of techniques to make basic food items to have on hand such as paneer and labneh from milk, exploring a variety of colonial recipes including a terrific "bread soup" that is exactly as it sounds; water, stale bread, and a hunk of cheddar cheese are all that is needed to make a rich and filling soup that is literally pure comfort food :).

I'm fortunate in the fact that I have a pair of dogs that need to be walked a couple of times a day so I do take them out but I make sure I steer well clear of anyone and walk them down and up my hill. That's my daily "venture outside" exercise as well as a bit of time tending to my backyard each day. to be honest, I could probably spend a little more time on this. It needs it. Additionally on an exercise front, as I have reported in the past I have a mini-trampoline in my office and that mini-trampoline is the foundation of my standing desk. I jump up and down on it a fair amount of the day and that also keeps me moving, gets me tired, and makes me feel a bit more accomplished at the end of each day.

If I'm being frank, I've spent the past few weekends sleeping more than I normally would. I want to say that that is a reflection of not going anywhere or doing any events but truth be told, each week is just exhausting at this stage. By having my partner Christina home with me all day, as well as my two daughters (granted, they are both adults) that changes the home dynamic from when it is just me at home. there's been a need to separate my work life and my home life a little more during this experience and communicating with my team has also required more cycles mentally to keep in touch and keep things moving. That takes a toll on a person and yes, sleep is needed. I have not felt bad about the need for more sleep and I would suggest if you feel like you need it, take it.

One thing that I have taken some additional comfort in over the past several weeks has been to go back and organize my workspace and home. My office itself has been reorganized and refactored multiple times as I am spending much more time in here. Why would I require and reorganize a room I already spend every day in? At least for me, each day is a chance to see if there's a better way to do something as compared to the day before.

An oddity that I have been coming to grips with when it comes to my own attitudes is I really dislike visible cables. It's a strange thing to obsess over, I agree. If I am in the moment of working on something, I do not mind having a few cables visible or needing to wire/rewire various things. However, after a little bit, that desire to have things more carefully placed just comes to the fore and I get into the rewiring habit and break everything down to figure out the optimal clean layout, or as close to optimal as I can get.

As I have been going around the house and organizing/ cleaning, I have to say that I am noticing a lot more items that I find myself saying "if I'm ever going to use this, wouldn't now bring that to the fore?" I think I have gone through the house and deliberately made sure I am using something or can make a compelling case for everything I currently have. I of course have some blind spots in this regard, especially out in my garage, as I have projects I have been pledging to get involved in for years and they are still well hidden behind cabinet doors and in boxes of boxes. That may well be a task to take on in the coming weeks but for the most part, it's still a place I have yet to want to tackle.

 Each day and week brings something new and it also causes me to have to think and adapt to a reality that is unsettling and foreign. All I can do is approach each day as a unique opportunity, do the things I hope to accomplish, and give it my best. That "best" varies, to be honest, and I think it's important to realize that, for many of us, it is going to vary for some time. Some of our tried and true systems will work for us and several will be found lacking. We all have different ways to cope with how we are dealing with these times and in that sense, I'd suggest one additional item and that's to check in on your friends and family, perhaps a little more often than you might in normal times. We, of course, care about each other's health and welfare but this is more of a personal "hey, are you OK?" kind of check-in. Some people are good about saying how they feel and putting it out there. Others not so much. It may seem like a little thing, but a phone call, text, or email and saying "hey, I hope you are doing OK" can make a huge difference to someone.

So in conclusion, know that being home full time is weird for many and this climate is weird even for those of us who are home all the time. Everything has been upended and there's little outside of our own spheres that we can control at this point. All we can do is do our best with the situation we have at hand. I wish you all well and "stay safe out there".

Monday, March 30, 2020

Some Advice for My New Working From Home Compatriots

It's strange to think that I have been working as a remote employee for two and a half years now (or close enough, officially since the end of October 2017). In those two and a half years, I had to make a number of adjustments and I had some painful and frustrating realizations during that time.

With the spread of COVID-19 and numerous Shelter-In-Place orders, many of my friends and colleagues are discovering what it is like to work from home full time. In fact, this may well be the single greatest experiment of its kind. Telework has long been championed by many and it has just as vocal detractors. Still, for many of us, it is a way of life. 

My engineering team, due to the high costs of real estate in the San Francisco Bay Area and decisions of our head office back east (or what was our head office at the time; our head office is now in the UK ;) ), was converted to being a 100% distributed team. For Socialtext (my core team until literally today for the past 7 1/2 years), this distributed attitude was built into the DNA of our company. When we were acquired, our new parent company tried to have us be more of an in-place/in-office team, but it never really took. Thus, when the decision to go full remote for our team was made, we were well able to deal with it. Now, our colleagues who are very used to office life and all it entails, are having to work remotely and all that entails.

Recently, we had a chat about some of the things that those of us who were veterans of the remote work world would suggest to our colleagues. As part of that, I figured some of my readers who are now in the same space might find this interesting/valuable. 

Disclaimer: some of what I am going to suggest is context-specific. I'm fortunate in that my children are grown, albeit two of them are in the house with us at this time (my son is sheltering in place down in Los Angeles and so far as we have been told/he's told us, he's doing alright). My advice may or may not be appropriate for those with younger children or other situations but I still hope my suggestions may be helpful.

1. You Used to Commute. Preserve That Time

Consider your former habits and your time that you would take to get door to door to work. You may consider the fact that you no longer have a commute to be a time saver. It certainly can be and if you are sure you will not be commuting again in the future, feel free to ignore this advice. Otherwise, determine what your average daily commute is and what your habits are/were around that time. Consider doing a virtual commute.

What I mean is, think about those things you did. Did you walk to a train? Did you drive? If so, what did you do from the time you left your home to the time you sat at your desk. Seriously consider how you used that time and try to duplicate it. For me, I used that time to listen to e-books or podcasts, or to read/work on various projects. That time is still important to me. While I do not always preserve that time, I do try my best to allow myself a "commute hour" or so in the morning and in the afternoon so I can keep that time. I have also literally rolled out of bed and started working. Some days I've logged off work and rolled right into bed. It's a real danger and an easy trap to fall into. Thus, I encourage you to give yourself some literal transition time.

2. Get Dressed For Work, At Least a Little

OK, I confess, I vary on this. I do dress each day but a lot of time I dress in workout clothes and stay in them. Other times, I will actually get up and "suit up" as though I was going across the country for a corporate face-to-face. Again, this helps to fight the "roll out of bed and go to work" attitude. Believe me, I've done that, a lot, and on the whole, it tends to feel a little depressing.

Your mileage may vary on this but seriously, I find that my attitude and my demeanor jump up considerably when I suit up for work. Again, suit up can mean getting into workout clothes, wearing what I'd wear for a meeting, or to really have some fun, embrace the whole #ReverseCasualFriday and really get dressed up. That can be a lot of fun, a little silly and yes, it can definitely punch up your mood, especially in a team meeting. This past Friday, I literally wore a Victorian frock coat, vest high collar shirt, silk cravat, and a derby hat. Silly? Maybe. Did I feel great? Absolutely :).

3. Try to Keep to a Set Schedule, if You Can

The promise of telework is also its biggest danger. Remote work is often touted as "I can work anywhere at any time" and that is often true. Just as often, that can morph into "I will work everywhere, all the time". Have I done this? I most certainly have. That's why I'm strongly suggesting to keep it in check.

I get it, deadlines happen, there are crunch times, situations may call for being flexible. Still, it's easier to deal with those on a case by case basis than it is to get into a habit of being always on and then realizing you need to scale back. If you worked specific hours before, again, try to keep to them as much as possible. If the team as a whole decides to make some modifications, that's OK, but make sure you aren't all falling into the same time trap. Remember, for many of you, you will be returning back to an office at some point and it can be difficult to then have to pull back from an arrangement that just sort of happened due to circumstances. This goes double for if you have younger children that you have to take care of now for an extended period... and on that note...

4. Set Office Hours and Regularly Scheduled Breaks. Post Them for Your Family

Getting everyone on the same page is going to be a challenge, especially in this arrangement currently. It may not be realistic to work a full eight hour day and say to everyone, "Hey, imagine I'm not here." That doesn't work very well with young kids and shelter-in-place orders, especially if they are trying to do school work and have other needs. Your schedule will need to be flexible but to that end, if you can, try to establish key blocks where you can say "during these times, I need to be focused".

I find it best to schedule these in two-hour increments at the most. From there, it may be necessary to take an hour to handle family stuff, cook meals, a shift towards helping with school work, or any number of other necessary things that don't coincide with a full workday. Schedule those shift times, and then schedule those focus times as well. Again, my kids are all adults now, so this is easier now than it was a few years ago. Still, if you can do it, try it out. 

I've found that these tweaks can save your sanity and overall physical health as well. If you have the ability to take a short walk in a way that observes shelter-in-place guidelines, do so. Take some time to exercise, listen to music, go into an area outside if possible and breathe a little bit. Whether or not this is a temporary situation or perhaps a more permanent part of your reality, I encourage you to take some time and set parameters so that your work life and your personal life have some separation, even in this time where it all to easily can blur into one. In any event, this is coming from someone who has fallen short on all of the accounts above at one point or another, hence why I suggest these; I have failed so you don't have to ;).

Wednesday, March 11, 2020

New Title, Same Gig?

Well, today threw me for a bit of a loop.

Why, might you ask?

Today I received a new title. For the first time in my software testing career, it can be argued how much of my role as a tester is left. For the past almost thirty years my job titles have been some variation of the following (I'm going to say since 1994 as from 1991-1994, I was a Network Lab Administrator and an Engineering Tech):

Software Tester
Development Test Engineer
Quality Assurance Engineer
Applications Engineer (Basically a Customer Test Engineer)
Senior Quality Assurance Engineer

So what's different today? As part of my review I was asked if I would accept a new job title:

Senior Automation Engineer

I said "yes" but I will confess, a part of me is curious as to what that acceptance means going forward? Actually, I don't have to guess too much, I know, as I've been part of this conversation for a number of years leading up to this.

What this means is that I agree to be spending the lions share of my day inside of an IDE.
What this means is I agree to create code that will be reviewed and put into daily use.
What this means is I agree to step into a development role and all that that entails.
Additional to all of this, I also agreed to transition onto another team, outside of the one I have worked with for the past seven years.

Yep, I have a mixture of emotions today.

Am I ready for this? I'd like to say I think so.
Do I want to do this? As a matter of fact, yes.
Do I know enough to do this? That remains to be seen, probably not completely.
Am I comfortable with this change? Ah, now we get to the heart of the matter.

See, in large part, I'm not comfortable with this change. I'm having to put down a large part of my identity that I have fostered over the past decade. The titles and pronouns I've become so used to are at once still relevant and now totally irrelevant. A part of me is anxious, a little scared, a little concerned I may be biting off more than I can chew, especially with that Senior part. That means I'm supposed to mentor juniors. As a developer. I will confess that part feels really weird.

And yes, even though I am not necessarily comfortable, I'm excited to do this. The expectation has changed. The primary focus of my efforts has, too. In part, I was singled out as, "that person that always champions trying new avenues, looking at things in unorthodox ways, and not settling for how things have always been done." Really? They paid attention to that? I guess so. They also paid attention to my frequent frustrations that real-life testing needs often trumped my ability to make much headway in the automation space because other needs were prioritized first. They listened. They decided to let other people handle those aspects so I could better focus on coding effectively.

Have I mentioned I'm not even going to be doing this in a language and toolset I'm used to? Yeah, let me touch on that for a second. I've been a Mac focused tester and programmer for 10 years now. I've used Ruby, Java, Perl, and Python to an extent in those years. Today I'm sitting behind a relatively new Windows 10 laptop running .NET Core, Visual Studio and wrapping my head around C# patterns. Surprisingly, I'm not running for the hills. It's different but it's not fundamentally so. Sure, there's some tooling and practices I have to come to grips with, as the last time I spent any real-time with a .NET application of any kind was 2010. It's all so very weird, like I'm having to speak Dorian Greek... but at least I feel like I'm coming from Ionian Greek rather than from, say, Japanese (weird comparisons but hey, welcome to my brain today ;) ).

Long story short, I just signed up to have my world rocked and I am strangely OK with it.

Tuesday, March 10, 2020

Happy 10th Birthday, TESTHEAD

Granted, I realize that I have been a bit quiet here (I feel like I apologize for that more than I should but yes, I intend to do something about that :) ). Regardless, let's have a little bit of fun and reflect on a post I made 10 years ago today:

OK, why the need for a blog like this? Well, truth be told, I don’t know that there really is a “need” for this blog, but I’m doing this as a challenge to myself. I consider this an opportunity to “give back” to a community that has helped me over the course of many years, as I have been the beneficiary of many great insights and learned a lot from a number of people and sources over nearly two decades.

Wow, I really had no idea that, when I first took this process on, that I would be doing it still 10 years later. I am happy to still be doing it and I am happy for the opportunities it has provided me since I first started doing it.

First off, professionally, I am a Tester. It's been what I've done in one way, shape or form for most of my career. As such, I am strangely drawn to the fine art of "breaking things on purpose" and then trying to find ways to improve the process so that they do not break again.

Being a Tester requires a bit of many disciplines. Saying "I like to test things" really isn't enough. A good Tester needs to have some understanding of the Software Development Cycle. This means that, to really be good at what they do, they need to "embrace the code", and I'll be the first to say I've had my fair share of ups and downs with that. They also need to have some skills with troubleshooting systems and finding solutions to issues. They need to be able to communicate to a broad group of people as to what they are doing, and ultimately, they need to be a part of the solution to the issue whenever possible. It's in the spirit of those areas I hope to contribute something here.

Oh, that is soooo CUTE!!! this should be an indication of just how much I thought I knew then and really didn't. Software testing has changed a bit since these days and I can see in myself slightly false confidence and a bit of Imposter Syndrome. Still, I wanted to roll up my sleeves and contribute and to that end, my motives were indeed pure.

Most of all, this will be a site where I share my own experiences, both good and bad, and what I've learned from them. Expect there to be talk about tools, both proprietary and open source. Expect some talk about test case design (and how I so hate to do it at times). Expect to hear me vent about some frustrations at times, because like all people, I have my share of frustrations when things don't seem to work correctly or go the way that I planned them to. Expect me to share ideas on testing that don't divulge too much of what I do at my day job... much as I find what I do interesting, chances are there's not much anyone who is not in my particular niche market (software applications for the Legal industry) will be able to use outside of that area, but if I come across a cool concept or a neat way to do something, I'll definitely put a more generic example of it here. Most of all, expect to get a real person's perspective on these things and an attempt to communicate them in plain English, whenever I possibly can.

Well, to that end, I would say that, while a lot has changed, quite a bit has stayed the same as well. seriously, though, this blog was a jumping-off point for a lot of things. this blog first got me involved with the Miagi-do school of Software testing, which led me to get involved with the Association for software testing to take classes and then to teach them. I took my early blogging skills and was able to become one of the collaborators on a book called 'How to Reduce The Cost of Software Testing". In that process, I began editing, then commenting on, then co-hosting a variety of podcasts over the past decade. I was invited to attend my first testing conference in 2010 (the Pacific Northwest Software Quality Conference) in which I interviewed individuals for podcast segments). From there, I started speaking at Software testing and Software Development conferences, some of which have brought me as far from home as Malmo, Sweden, Dublin, Ireland, and Pottsdam, Germany. I was given the chance to serve on the Board of Directors for the Association for Software Testing, as well as serve as its president for a year. In my work life, I went from being "just a tester" to being a build manager and release manager as well as developing a focus and advocacy for accessibility and Inclusive Design. I also had the opportunity to help develop initiatives in Weekend Testing and in the Bay Area Software Testers meetup. 

As of late, I will confess the blog posts have been more sporadic, in part because, frankly, ten years is a lot of writing and there's an awful lot of articles on this site, so much that I can feel as though I am merely repeating myself. Still, I know very well that waiting for the next big amazing thing that nobody has ever heard of before rarely happens. Best I can do is really try to embrace that last sentence of that first post and know that, if I want to see this blog thrive into a second decade, I'm going to have to get back to doing what I may not necessarily do best. I vowed that this would be a site where I would learn in public. I was very eager and willing to do that a decade ago? I'm going to do my level best to keep that going forward. Here's hoping you all join me going into my awkward tween years and beyond :).

Tuesday, December 31, 2019

Closing out a Decade of TESTHEAD (Almost :) )

I realized as I started this post today that it has been a while since I've posted anything. Part of that is the fact that I have been spending the past several weeks involved in two things that are little related to testing.

The first is that my daughter came home from her mission in Sao Paulo, Brazil and I have been spending as much time as possible getting to hear from her and all that she experienced for the 18 months that she was there. It's a challenging thing to encourage your daughter to go halfway around the world for a year and a half, with limited communication, and to give of herself totally to acts of service. I frequently told her I would be interested in seeing the person she was when she came back. Fluent in Portuguese, yes, but much more fluent in many things, including empathy, steadfastness, courage, determination, and drive to do things that matter. This Dad is happy to have her back and happy to see who she has grown into. Still, his little girl and yet not at the same time.

These past two months have also seen me diving into something that has consumed my weekends completely and that is The Great Dickens Christmas Faire in San Francisco. This is an interesting event in that it is filled with shops, performers, and other aspects that encourage you to feel like you are in London in 1843 (the time setting for Charles Dickens "A Christmas Carol"). This has been an event I've participated in as a patron for many years, have cosplayed for, and have longed to get in on the action. This year, I was able to do that thanks to the kind folks at "The Paddy West School of Seamanship" where we produce "The Best Seamen In London" ;). I was able to sing with them, work with the school, participate in setup and teardown, and a quality control process for character development and immersion that would be an excellent broader story for a testing blog. More on that another time but suffice it to say that it takes a lot out of a person when they have to give up weekends entirely for two months. Catch up time is non-existent. you have to do things in the here and now when they first strike you or they just don't get done. This blog, for instance :/.

On an oft-talked about areas of this blog that I didn't talk about this year was a decision I made at the beginning of the year. As I had to move to new health insurance and a new framework for it, I decided to try something I hadn't in a while. I decide to go off of Concerta. For those wondering, Concerta is a medication used to help with symptoms of ADHD. After several years of being on it (and actually, the longest continuous period of my life being on ADHD medication) I decided I wanted to try a year without it, just to see if the differences were as pronounced or if I was still in need of it. I'm not 100% convinced I need it to function but I'm also not 100% convinced I do not need to have it. As I had said in previous posts, Concerta doesn't fix ADHD, it just mellows out the pendulum swings. This year, I dealt with a few more pendulum swings but on the whole, I still felt pretty good. For the near term, I'm sticking with my decision to not be taking them, at least a little bit longer. As of right now, I am taking zero medications for anything and I really want to enjoy that.

Closing out the decade, I have been with Socialtext/PeopleFluent/LTG now for seven years. This makes Socialtext my second-longest tenured job in my working career (Cisco Systems still holds the top spot at ten years). It's been an interesting adjustment this year as I've given up my MacBookPro to go back to working on a PC. I'm also spending time learning about C# and .NET Core as well as Visual Studio and interacting with code in that environment after a decade away. It's been interesting, to say the least.

I've also enjoyed the experiences of writing about and working with a variety of publishers regarding various software testing topics. I also want to say thank you to TestBash for giving me the opportunity to attend the San Francisco conference and Live Blogging about it. I'm also thankful to STP-CON and PNSQC for asking me to participate with them again this year on topics related to automation accessibility, inclusive design, and testability.

A good chunk of time was spent editing podcasts for Qualitest and The Testing Show. I think we put out som good episodes this year and I have learned a fair amount about a variety of topics and areas I intend to put more time and attention to in 2020.

As in life, sometimes we have setbacks, too. My band Ensign Red is currently looking for a guitarist. Granted, this would need to be someone local to the Bay Area to participate so if you are, or know someone who is, feel free to give them my contact info. We are looking to get out and perform in 2020 and complete an EP we have been working on but we need to fill the guitar lot before we can do that, of course :).

So there it is. Another wild year, lots of learning, lots of seeing, lots of doing, and a capstone of this blog being an active thing for close to ten years (it's official ten year birthday will be March 10, 2020). For those who have been here from the beginning, I'm impressed you are still here and I hope I have been worth the time. For those who are new, I have a lot of past entries and I'm hoping something will be of interest. Also, as good a string as it has been, I really couldn't fit a fresh line of "Once in a Lifetime" to describe this year accurately, so I am officially going to end this tradition.  Hey, I did it for nine years, that's pretty good :). Wishing you all a happy and healthy new year, a new decade, and new opportunities for all. Be excellent to each other :)!!!

Wednesday, November 13, 2019

Getting Practical with Practitest: A Broad Sweep at a Broad Product

Before I get started, a full disclosure. I was asked by friends at PractiTest if I would be willing to have a look at their test management software and talk about it on TESTHEAD. To that effect, I said yes. Beyond that, they have no influence on what I say and post here. I have given them permission to use my comments as they choose to so long as they reference this original article here.
And with that out of the way... :).
I must confess, I have done fewer product reviews with my blog over the years than I had thought I might do. Part of it comes down to a fundamental issue; what I use a product for may be very different than how others might use it. Still, I think it's safe to say that many of us have some similar goals and attitudes about the tools we use and how we might take advantage of them. On the whole, I am a fan of products that do their best to help guide the user with their use, do not bury arcane but useful features under layers of difficult to arrive-to processes and reward a user with regular and frequent interaction. Thus, it is with that idea and approach that I' going to look at what can be either one of the most helpful or most frustrating areas of software testing, that of test case management.

I have worked for a variety of organizations over the years and the methods of test case management have varied radically. Some places have literally only used index cards that get shuffled around (no joke, there were no permanent electronically documented procedures, or very few if I was being totally honest. Great from a free and exploring point of view, terrible in that cards just plain got misplaced and lost (and yes, that happened more times than I want to admit, best intentions notwithstanding). 
On the opposite end, I have also worked with very top-heavy documentation systems that were a chore to use and so burdensome that it felt like most of my testing time was spent writing up test cases and leaving me precious little time to actually test and explore systems. Wouldn't it be nice to have something in between? Something that allows for a less rigid and formalized structure if you don't need it but has the flexibility and power of documenting and traceability if you do? 
Practitest aims to do that. I aim to see just how well they pull that off ;).

What is Practitest?

First off, Practitest is an online, SaaS product offering. You access the product via the web and you interact with it via web browser. However, it may be easier to think of Practitest as an onion with layers of functionality (cue Shrek jokes, in 3, 2, 1...). However, that layer metaphor is quite useful,m in my opinion. By looking at each level and layer, it's fairly easy to get from one part to the other and actually have a handle on how everything interrelates.

The system is structured in several key areas. You have the ability to define your test requirements, store and keep tests that you develop, compile and follow test runs, track issues, and create reports, as well as customize and integrate with other products if desired. For today, let's just focus on the core product and getting productive with it.

Our Sample Test Flow
Let's take a simple example of logging into the system...

side tangent, have you ever noticed that most tutorials tend to focus on a log in screen? This stands to reason because it is often the first thing anyone does with a product unless there isn't a login required. Does it make sense to start there? Maybe not but it is easier to describe rather than walk through an entire installation script or break down every component of a search test.

In this case, there are a few interesting wrinkles that logging in with the product I am testing. We have a standalone login, an LDAP login and we also use a single sign-on built around iPaaS. each of those deals with different paths in the code and in certain scenarios takes us different places.

Step one, let's create a requirement(s). it can be as simple or as complex as we want. In my case, I want to just define what I hope to do and how I intend to accomplish that task (in this case, three login types):

- standalone


- iPaaS

Each of these we would be expected to create a separate test case but one requirement would suffice. Fortunately, the requirements section is the first thing that we interact with and adding information is quick and direct.

By adding requirements, we can capture in a little or a lot of detail what we want to cover. from there, we can go to test cases and define what we want to test. Practitest has two modules that allow for scripted or exploratory testing. I want to say that I appreciate the fact that Exploratory tests are built-in as an option because in many environments, there are questions as to what Exploratory testing is or means and a bias occurs because they are not as readily documented. Practitest handles that nicely. Also, if you need to get into the details, you can do that as well with the scripted tab.

Additionally, if there is a need for procedural and specific test cases to be recorded, those can also be listed in the scripted section.

A nice thing that is also included is the ability to include test cases that have already been written. Do you have steps you find yourself doing over and over again? Don't write them out again and again, include them where needed. this also is helpful as you start to consider which tests can be automated. as you get the hang of writing things out, you notice where you can simplify or determine repetitive steps. saving those as what I refer to as "test snippets", you can call them up and use them as often as needed.

Connecting the Dots
As I work my way across the toolbar, I see that I can trigger areas and examine what I am testing and writing down as I move from left to right. This flow is straight-forward and doesn't bog the user down in a lot of details or needless repetition. If I have to highlight a great strength of PractiTest, it's that it doesn't force me to be repetitive needlessly. Additionally, it allows test sets and test runs to be as specific or as general as desired. is the testing exploratory? Set a timer and go. capture and post what you find. Is the test a procedural one? Great. Run it and then see how long it takes to do it (the timer runs automatically in the background). When all is said and done, you can get a compilation of test runs, what was accomplished, what was recorded and what requirements those tests are associated with. Found issues, log them in the dedicated issue tracker, track them back to test, which trackback to requirements (again, right to left on the board). If I was a test manager, I would find this to be easy to understand, easy to track and it wouldn't take me forever to figure out what was going on.

Overall Thoughts

An impression I keep getting as I use Practitest is that the company values testers' time and appreciates that the best thing they can do as a tool is to provide the feedback necessary when necessary and get out of the way when it doesn't need to be there. Short of being specifically macro'd into a product where a right-click could allow a user to track what they are doing in real-time within an application, Practitest does a nice job of staying out of my way and I mean that as a compliment. Granted, this is the first blush and there's a lot of stuff I could talk about (if interested, I can go on, believe me ;) ). On the whole, however, out of the variety of test management tools I have used to date, I think Practitest is clean, unobtrusive and flows nicely with how I particularly like to work.

Friday, October 25, 2019

A Book Commit: MetaAutomation #30DaysOfAutomationInTesting Day Two

I am writing this series based on the requirements for the "30 Days of Automation in Testing" series as offered by the Ministry of Testing. yes, I realize I am almost 18 months late to this party but work requirements and a literal change of development environments have made this the perfect time to take on this challenge.

Let's take a look at the Day Two requirement:

Begin reading an automation related book and share something youʼve learnt by day 30.

In a sense, this is actually a re-read but a first time full apply. Several years ago, Matt Griscom approached me when I was visiting Seattle and told me about an interesting idea he had for a book. We exchanged several emails, talked about a few things here and there, I looked over some early chapters and from that (and lots of talking to other lots more qualified people than me, believe me ;) ), Matt came out with the book "MetaAutomation".

Today, that book is now in its 3rd Edition and last year Matt gave me a copy and encouraged me to give it a read. Now that we are making this product transition over to C# and .NET Core (so as to work better with other teams who are already using that stack) it seemed a very good time to take Matt up on that offer :).

Here's a bit from the Amazon description of what MetaAutomation is all about:

"MetaAutomation describes how to do quality automation to ship software faster and at higher quality, with unprecedented detail from the system under test for better communications about quality and happier teams.

This book defines the quality automation problem space to describe every automated process from driving the software product for quality measurements, to delivering that information to the people and processes of the business. The team needs this to think beyond what the QA team or role can do alone, to what it can do for the broader team. Quality automation is part of the answer to all that is broken with “test automation.”

MetaAutomation is a pattern language that describes how to implement the quality automation problem space with an emphasis on delivering higher-quality, more trustworthy software faster. Much it depends on a radical, yet inevitable change: storing and reporting all the information from driving and measuring the software product, in a structured format that is both human-readable and highly suitable to automation. This change was not possible before the technology made available by this book.

Read this book to discover how to stop pouring business value on the floor with conventional automation practices, and start shipping software faster and at higher quality, with better communication and happier teams."

I have to admit, on the surface, those seem to be bold claims and from what I read in the previous versions, there's a lot to digest here. thus, I'm actually going to be trying something out during this month. If possible, I'm going to try to approach the rest of this month's activities, where relevant, by referencing this book and trying to see if I can use the principles in my practice. Thus, in addition to doing a full form book review at the end of the month, I hope to have had a chance to actually and completely internalize what I read here. In short, Matt, I'm not just going to read this book, I'm not just going to review it, I'm going to try my best to live it. Let's see what happens if I do exactly that :).

Aedificamus: Pushing Steel and Tereré: #HealthyTech30 Day Three

Day three. Let's do this :)!!!

This is another post in my Aedificamus health and fitness series and specifically for Saron Yitbarek's #HealthyTech30 challenge. Today I will be showing what may be a blast from the past and another way to consume yerba mate. Yesterday it was the hot and traditional approach. Today will be a colder but still somewhat traditional approach :).

Exercise: Let's Push Some Steel

I'm curious if anyone out there knows what these are ;).

If you are my age or thereabouts, my guess is that you have come across these a time or two in your lives. If you are sitting there thinking "you have got to be kidding, you actually have a BULLWORKER?!" my answer is "yes, and not just one, I have two of them!"

I owned one of these when I was a teenager and I used it for conditioning when I was on my high school's track team. Years later, when I was thinking about having an easy to use at home exercise apparatus I thought, I wonder if they are still around or if I could buy a used one somewhere. Turns out they are indeed still around and thus I purchased two of them, a classic bullworker (the bigger one) as well as a smaller model called a Steel Bow.

OK, for those wondering, a Bullworker is basically a compression spring between two sleeves, with a pair of handles, one on each end and a pair of cables connected to the handles. The goal is to compress the spring either by pushing the handles or pulling on the cables. I also have a set of extension straps that allow me to do broader range movements and attach it to a door. The smaller Steel Bow model also comes apart easily and allows the user to put in one of three spring tensions (light, medium, heavy).

Today I focused on abdominals, lower back, and shoulders. Whee!!!

These devices work on the concept of isometrics, where you contract your muscles and hold them in that flexed position for an extended period, as well as a progressive resistance push. Some movements you will be able to cover a lot of range, others you will feel like you are barely moving the device at all. If you are putting pressure and able to hold it, you are getting the benefits. Point being, if you go to Goodwill you may be able to find one of these. For compact, at-home exercise equipment, this is actually pretty cool.

Food: Yerba Mate: Tereré
Thicker cut tereré leaf with a typical mate gourd
(made from calabash) and a bomba for drinking. 

Yesterday I told you all about how I've grown to love chimarrão, a variation of yerba mate that is popular in southern Brazil. It's a preparation that is, IMO, best enjoyed hot. However, I hear some of you say, what if I prefer it cold? Does it work for that too? It can be but if you like your mate cold, there's another preparation that is popular in Brazil and several other South American countries, particularly Argentina, and that's what I'll be telling you about today, tereré.

First, tereré has a different flavor profile altogether compared to chimarrão. The leaves are dried using hot air and smoke from a fire, so they have a distinctive smoky flavor to them. Additionally, the leaves are thicker, so you can prepare tereré right in a calabash gourd or you can also prepare it and drink it straight from a canning jar (granted, the second way is a bit less elegant but still works.

Traditional prep method first. This is a mate gourd and a bomba that are both well suited for drinking tereré. Preparation is simple, take about half a cup of tereré leaves and put them into the gourd. take cold water or ice water and pour it into the gourd, up to the brim. Let steep for about 10 to 15 minutes. From there, place the bomba into the gourd and drink. The bomba filters out the thicker leaves.

If you'd like to do this without having a fancy gourd and bomba, here's my other method. Again, Brazilian and South American tereré fans, my apologies if this is borderline blasphemy but hey, it works :).

1. Take a canning jar and fill it halfway with ice.
2. Put 1/2 a cup of tereré leaf into the jar.
3. Fill the jar with cold water.
4. Close the jar and shake.
5. Let sit for 10 to 15 minutes.
6. Use a tea strainer and pour off the liquid into a cup.
7. Add more cold water to the jar and keep refilling.

After multiple refills, you will reach a dilution point but it will take a while.

It is also popular to punch up tereré by adding citrus juices (lime, lemon, orange, grapefruit) or pineapple juice but it is also very nice all by itself.

How healthy these are is open to interpretation but if you are someone who actively consumes soda or other beverages throughout the day, consider switching to yerba mate and see what you think. Hot or cold, I doth fully dig it :).

Thursday, October 24, 2019

Late to the Party, Still Going to Jam: Day One, 30 Days of Automation in Testing

OK, here we go, better late than never, right :)?

Regardless, I have decided I want to tackle this one next because I am knee-deep in learning things related to code and automation and retooling with a new stack and platform.

I'm in the process of learning how to navigate my way around Windows 10 on a Lenovo Think Pad, getting my bearings with Visual Studio, and playing with some of the finer points of C# and .NET Core. In short, it's a perfect time to take this on and perhaps augment a tectonic shift in a work environment with some additional skills to help balance it all out.

This is Day One of a Thirty Days Challenge, this time focusing on Automation in Testing.

 Look up some definitions for ʻAutomationʼ, compare them against definitions for ʻTest Automationʼ.

Let's see what Lexico has to say about this (or at least what they had to say about it October 24, 2019):

automation: NOUN: mass noun

The use or introduction of automatic equipment in a manufacturing or other process or facility.

Origin: 1940s (originally US): irregular formation from automatic + -ation.

That makes sense, in the sense that that is a natural sense of the word. Something done to make something automatic. Granted, it uses the word automatic, which comes from the Greek word automatos:  acting of itself. Thus when we think of automatic, and by extension, automation, we are thinking of devices and processes acting on their own behalf. thanks, Lexico :).

So let's take a look at Test Automation. What does Lexico have to say?

No exact matches found for "Test Automation"

Interesting, and not really surprising, as it's not one word. Point is, there is no real dictionary definition for it. The closest thing we get is a Wikipedia entry (and yes, I'm a strong advocate of "caveat lector" when it comes to Wikipedia or any place else but there's nothing wrong with starting there and then extending the search. Wikipedia starts with:

"In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes." 

Where did that come from? 

Kolawa, Adam; Huizinga, Dorota (2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. p. 74. ISBN 978-0-470-04212-0.

Hmmmm... not trying to be critical here but a book selling the best practices of software management gets to define what test automation means? Am I the only one who finds that somewhat amusing?

OK, to be fair, test automation is still fairly new (though it is as old as any procedural programming steps, really, so it's been with us since the 1940s at least). Ultimately it comes down to the idea that we have machines and we want to control those machines' execution and determine something about those machines' control that goes beyond them just doing that thing they do. Sorry if that's a bit breezy, I never promised you peer-reviewed scholarship ;). 

Seriously though, minus the snark, we are looking at doing a little more than repeat steps over and over. We're trying to determine a way that the steps being performed are actually being done right. thus, test automation goes a little bit beyond actual automation of steps to make a repetitive and repeatable process something a machine or pattern apparatus can do.