Aug 2016

Harry Potter's Birthday

For three years before this one, I celebrated July 31st with a friend who loves Harry Potter much like I do. After moving to Utah, I was sad about not celebrating with her, but I found friends here who love Harry Potter too. In previous years, I’ve made chocolate cake with fleur de sel caramel filling, but this year, I decided to try a snitch cake. I found a hemisphere cake pan, edible gold spray paint, and edible paper to make the wings. I made chocolate frogs, butterbeer, and a beef stew worthy of Molly Weasley. Friends came over, some with wizarding accessories, and we read tea leaves, did trivia, and watched Half-Blood Prince. Everyone got into it, which made it fun.

Harry Potterparties
Jul 2016

the benefits of manual testing, episode 1

I attended PyCon a few weeks ago, and it was a wonderful experience. I met lots of interesting people, heard great talks, and got inspired to get back to programming. One thing I encountered from multiple people is a lack of understanding of what testers do and why it’s necessary, particularly manual testing. Once I explained what I do and described the things I’ve found, I received a few job offers actually. I think it reflected more of an unhappiness with the rote checking that a lot of testers do instead of the targeted, intelligent testing I was describing. I was honest with people about my novice programming skills (solving math problems kind of counts, but I have more ambitious projects coming up). People immediately assumed that the only valid kind of testing was automated testing, though they tried to understand what I do. This post contains thoughts that came out of those conversations. I anticipate that this topic will be merit a few posts, hence “episode 1”. First, automated testing is almost always necessary for performance testing and stress testing, though sometimes the stress testing can be mimicked through the use of other tools. What manual testing offers is a more detailed look at how the software behaves at every step, because a tester can visually inspect pages, figure out alternate paths to what should be the same outcome, and test the foolish things and the unexpected things. I might be mistaken that not all of these things can be automated, but automating testing can be expensive and time-consuming to get off the ground and maintained, and it’s not a silver bullet. Manual testers function best when we can use creativity. “Checking”, the act of merely inspecting documents to make sure that something in program A matches something in program B, is a waste of talent and money. Manual testers use experience and “hunches” really to figure out where the weaknesses are, and they try to exploit weaknesses in multiple ways. Once that weakness is found and fully understood, a test can be written for automation that would make sure it doesn’t break in the future. Manual testers can cover the bulk of the testing by just exploring the software and getting creative with how they approach different scenarios. As a few examples, I’ve been working on a project that uses iframes. I knew a little bit about the security in iframes and how it used to be exploited (and how it can still be exploited in Safari, which is another matter). I thought I might be able to do something with that, so I went through some of the http headers from the iframe to see what was there. It wasn’t quite as bad as I had hoped, but I did find some suspicious tags that made me question the vulnerability of the server generally. The vendor promises they aren’t using a home grown server, but our information security team is preparing to go to town to try to break into the software. With the same software, the math wasn’t adding up. I tried a bunch of different combinations of things to make sure that people were consistently able to do things a financial institution would not want them to do. Basically, every thing that we customized or that the vendor bragged about had a high probability of being broken initially. I had a bit of a high from the first few weeks of testing. This is our first experience with this software, so until we know the weaknesses fully, manual testing is most appropriate. Manual testing can have more coverage in some instances, and it can be more effective in finding specific bugs that may not expose themselves until the tester plays a fantastic fool.

software testing
May 2016

a documentation argument

I’m testing some vendor-supplied software, and I’ve been testing a variety of functions and integrations. I’ve been more deliberate in my testing on this project, less monkey-at-a-keyboard and more creative thinking about how it might be broken. I’m testing things that aren’t necessarily documented in the requirements. I got some push-back about it, that we should only be documenting (and even running) tests that have written requirements. That’s basically telling me that I shouldn’t do a thorough job because someone else didn’t do a thorough job. And that’s not how I want to work.

software testingdocumentationwork
May 2016

movie review: Code

Carl and I went to a screening earlier this week of Code: Debugging the Gender Gap. I didn’t expect it to be a great film (too many film festival awards), so I was pleasantly surprised when it turned out to be a coherent, cohesive, and compelling film about the gender gap in computer science, particularly in programming. It started with dialogue from young girls about what they thought of coding and who they thought of when they considered it. Some girls were defiant and said that there was no reason they couldn’t do it, and others said they almost always think of boys coding rather than girls coding. One of the sentences that really stuck out to me was a founder (CEO?) of a company saying something like, “I don’t feel like I can try to convince women to join a profession where they’ll be harassed.” I think her point made a lot of sense and addressed the catch-22 the profession has. It needs to change its culture to be more inviting to women, but it probably needs more women in order to change its culture. Groups of people don’t suddenly realize they’re being exclusive without more people around who are being excluded to point it out. They interviewed the founder of Goldieblox, who talked about her construction toys for girls and the engineering learning that goes along with them. They talked to founders and volunteers with female-oriented coding programs. They had extended conversations with a woman who works at Pixar about combining coding with her love of art and her experiences as an undergrad in computer science classes of mostly men. That was an interesting insight. She said that the men would get together and do their homework and projects together, figuring out the tricks and shortcuts embedded in those things, and they wouldn’t communicate any of that to the women. It turned into a self-reinforcing group excluding women from improving and learning as a team (they still succeeded, but they had to work harder for it). They talked about the changing stereotypes of coders, from the scruffy and socially awkward programmer of the ’80s and ’90s to the “brogrammers” of today (what a terrible word), who are more likely to be (or act like) frat boys. Women stopped going into the field around the same time as the perception of coders changed from logic-oriented people to nerdy men, helped by media and job ads. And they talked about the attrition of women in the field, something like 41% of women leave by their tenth year (I might be making up both of those numbers), compared with only about 17% of men. One woman attributed this to women feeling like their careers stagnate fairly early, while men experience acceleration in their careers. My own experience with sexism will be the topic of another post, provided I can do it without pointing too many fingers. But I will say that in software testing at my company, at least, women are pretty fairly represented among all the levels, including management, except on the automation team. I don’t exactly know why that would be, but I can guess. At other companies where I interviewed, they paraded in the one woman on their testing team, which left a pretty bad taste in my mouth. The movie comes out on Netflix in November. If you get a chance to watch it, I highly suggest that you do!

workwomen in tech
May 2016

Harry Potter cosplay

Thrilling Thursdays are where I will share things that get me excited. This could be music, knitting, or, as it is here, Harry Potter! I’m going to Leaky Con in October with a friend, and I’ve decided to cosplay for all five days we’re there. I’ve started work on my costumes, ordering the bits I’m not going to make and getting ready to sew the stuff I will make. So here’s my plan:

Harry Potter
May 2016

musical dogs

It’s Wildcard Wednesday! It’s a magical day when anything can show up here. This week, it’s just a video of what my dogs do when I start warming up my voice at home. It can be a little disheartening, particularly when I have auditions coming up, but Carl is convinced they just want to help.

dogsmusic
May 2016

job and training

It’s Testing Tuesday! Let’s talk software testing! To start, software testing is finding weaknesses in software that, when fixed, make it a better product. Software testers don’t break software, they expose how it’s already broken. It is rather fun to say I break things for my career, but some people, particularly developers, respond poorly to that. Software testing is a productive practice in that it improves the end product, though it can feel a little destructive when the tester finds bug after bug. I’ve been at my new job since the end of March, ostensibly testing software, but mostly learning things. The first project I worked on was a small upgrade to existing software, and I didn’t have much to test, though I had plenty of time to test it. That was good, because I’m learning the formalities of testing and how this specific company does it, and I appreciated having time to get my bearings. On this project, the vendor supplied recommended test cases, and I was left to my own devices to create a suite of regression test cases. The people who had done the prior upgrades hadn’t left any test cases to run for regression, and the documentation of the tests they did run was virtually non-existent. The learning curve wasn’t too bad, though I did have to ask a lot of questions about some things, and the institutional knowledge of the product wasn’t great. A couple times, I got the response that something was working as designed when it was really a bug acting consistently across a subset of items, and when I asked why something was supposed to behave like that, I was told that the person didn’t know. This was frustrating, but the project could have been much more frustrating with less congenial people. I had a fairly high bug find rate, particularly in light of the number of test cases I ran and the amount of time I spent in ad hoc testing (which for me meant learning my way around and trying random and non-targeted things). As a novice tester, this has me very concerned that the software is really buggy (as opposed to me being very lucky or very good). Sometimes I wonder if the reassurances from my colleagues and managers are just false accolades, but that’s my own insecurity, not the topic of this post. All told, I really like the company I’m working for, I love the cooperative and collaborative environment, and I find the work to be fun and sometimes challenging. Plus, no one is going to sue me because of my work, so that’s a bonus. I was given training through SQE to prepare for the ISTQB exam. The certification is as a foundation level tester, and the exam is 40 questions long, with a passing grade of 65%. The training was fine. The teacher was engaging most of the time, and you could tell he had a real passion for testing. I didn’t find it at all useful in helping me to do my job though. It was about theory and vocabulary and forms. The only time we came to concrete techniques was a discussion about partitions and boundary analysis. The training did help fill in some gaps in the self-study I had been doing, but I think the usefulness of the training comes in giving the team common vernacular to use. I have kind of a big problem with 65% being a passing grade though. How should that reassure anyone that the person knows what they’re talking about? Another problem with the certification, aside from its low passing grade, it that it’s a one-time certification with no renewals necessary. There’s no requirement for continuing education, no need for production of work product to show competence. It seems to me to be a meaningless badge of legitimacy that isn’t needed once you have a real job behind you. I think a more valuable thing for a resume would be an online portfolio with a test plan and test cases. But I say all this as someone with a job now, and had I not been given a chance, I was planning on getting the certification on my own to show that I at least know something. I’ve been looking at a lot of resources to help make me a better tester quickly. These have included books, blogs, online resources, and streamed conference presentations. Of the resources I’ve consulted, one of my favorites is James Whittaker’s How to Break Software. Some of it isn’t applicable to what I do, but he gives real-world examples of how things can break. He talks about different kinds of tests to run through human interaction and manipulating file interaction as well. I just started reading Cem Kaner’s (et al.) Testing Computer Software. Just the first couple chapters are really useful so far. I’ve really enjoyed James Bach’s blog and Michael Bolton’s blog as well. They are both big into rapid software testing and rethinking the way exploratory testing is (and rechristening it simply “testing”). Their blogs are full of insights and good ideas for people who want to improve the way they think about software testing. As I finish or discover other resources, I’ll discuss them here. Until another Tuesday!

software testingwork
May 2016

conversation and emotion

I’ve been thinking a lot about the way we interact with others and how we perceive ourselves as interacting with others. I, personally, think that I am normally charming, witty, and engaging, particularly when I have a full night of sleep behind me. I’m able to make intelligent references to history or literature, and, to a lesser extent, pop culture (though they can be a little dated). When I’m feeling bubbly, I do feel like I sparkle in my interactions with others. On the other hand, conversation can be pained and stilted, sometimes confusing, and always a struggle when I’m in a dark place. In those times, I feel like I suck energy out of the conversation and add nothing to it. But I’m not sure how much people notice either end of this spectrum for me. It all has me wondering how much of this is real and how much is self-perception. My husband has said I’m a great conversationalist, though he perhaps notices when I’m not at my best, and I do maintain that I charmed my way into my current job. But self-perception can often lead to judgment, which is a place where I spend a lot of time, in spite of knowing how damaging that can be. I judge myself based on how I think my interactions with others went, spending time thinking how I could do better but never actually putting those constructive thoughts into action. A recent conversation has me thinking about the power of understatement too. I was talking with someone about his childhood, and he told me about leaving home when a child and making his way on the streets. His response to my horror was, “It was hard.” He is a remarkably well-adjusted young man for having suffered through what he did, and his statement underscored both the difficulty of his life and his own resilience. I tend towards the other end, not always going for hyperbole, but generally not downplaying my stories or emotions attached to them. Emotion can be powerful in conversation. It can enhance or undermine your words. It can heighten or relieve tension. I’m still figuring out how to effectively use emotion in my speech, though I guess what I’m still figuring out is how to control outward manifestation of emotion and use it strategically rather than letting it control the dialog. I’m looking for a way to improve my storytelling and my public speaking. I’ve been thinking about Toastmasters, but I also think an individual mentor relationship could be good. I’d appreciate suggestions if you have any!

communication
Feb 2016

weekly roundup - February 19th

Maybe not strictly weekly, but here’s this week’s edition of what I’ve been reading, playing, and thinking! The New Yorker had an interesting piece last spring on police shootings in Albuquerque . The violence directed at civilians by cops is far beyond what other areas experience, and the city turned a blind eye to it over and over again. The DOJ launched an investigation and found a pattern of unnecessarily aggressive responses to crises. The most egregious violence has been directed at people who are homeless or have a mental illness. It is a depressing read, and the protection by the city and within the department makes it even worse. I could feel the hopelessness of the parents in the story. This short opinion piece (caution: language) on the Huffington Post’s refusal to pay its writers got me thinking about how I choose to spend my time and energy. It’s also an analog to paying artists, like I believe so firmly in with ArtsFuse . I’m not sure I can completely stop reading HuffPo, but is it worth it to make an effort? Games:

weekly roundupboard gamesmusings
Feb 2016

weekly roundup - February 5th

This will be a short one. In the last couple weeks, I’ve been focusing on other things and haven’t read many articles or played many games. I’m still a week or two behind in Bloomberg Businessweek, but I found this article about a man who has donated millions to Ted Cruz’s campaign to be very interesting. Robert Mercer is a very wealthy programmer and hedge fund manager who donates to political campaigns and summits and movements that push for the gold standard and deny climate change. He and I basically have nothing in common, but it would be interesting to have a conversation with him (though he is also fairly reticent about his personal beliefs, so it might be difficult). The story is light on formative background for Mercer, and I would want to know why on earth… just… why. My Facebook feed has been dominated by a few outspoken Sanders supporters, and it made me start thinking that everyone was like that. I’ve taken measures to lessen that exposure and talk to Clinton supporters more. And then I came across this piece this morning, and it seemed like perfect timing. Clinton has been in the national spotlight for 25 years. She has incredible perseverance, and she has had to deal with so much mud-slinging for pretty much the entire time. The GOP is encouraging Sanders supporters to spew the same vitriol the right has been spewing for years. It’s frustrating and worrisome.

board gamesmusingsweekly roundup