Interesting webinar about how to engage non-technical people on automation: Thank you ROQIT ! Advertisements
Posts made by Tester News Bot
Over 5,000 professionals in Software Development, QA, and Testing responded for the SmartBear 2017 State of Software Testing survey. One of the areas that received interesting feedback was the trend…
Anonymous asks… Do you have set up (inexpensive) infrastructure to store data collected in your automated tests? We are currently using using selenium Java webdriver to automate our tests and IntelliJ as our IDE. We create data from scratch for each and every test case My response… I’m a little confused by the question … Continue reading “AMA: Test Data Infrastructure”
Last week, I traveled out to San Jose with a few of my colleagues at SmartBear Software for the 2017 Atlassian Summit. It was my first time manning a trade show booth and my first time out to Silicon…
TLDR; I presented a workshop at the Sigist on 14th September 2017 on Public Speaking. Unpack what “Impostor Syndrome” means to you, to identify actionable steps to improve your public speaking. You can rewire your brain by revisiting ‘normal’ experiences of speaking in public as public speaking.
I presented a workshop at the Sigist on 14th September 2017 on Public Speaking. I found it very useful to hear different experiences of public speaking and the kind of things that people find difficult and the kind of things that people find easy.
The great thing about a workshop is that it can go in different directions than you, the host, things that it might.
For any workshop:
- I create enough material that if there is no engagement then I have enough content to cover the time
- I build in flexibility to respond to what the participants state their needs as
- I use the material as a base to keep the workshop going
If we don’t get through all the slides in a workshop that is fine, we add value through the discussions.
You can find the slides online
How to improve your public speaking
Take advantage of opportunities that come your way.
I wanted to evaluate how I speak in public, so when the opportunity to host a workshop came my way, I jumped on the opportunity.
During the conference, one of the speakers didn’t attend, so I took the opportunity to fill in and present a 25 minute version of a 45 minute Keynote that I will be presenting next week. This gave me the chance to learn in public a little more about the talk I’m planning.
I gain, by presenting, and I try and add as much value in my content to the audience as I can. Win Win.
One thing that cropped up in the discussions in the workshop was the notion of Impostor Syndrome.
Which people often describe in many ways:
- I don’t feel experienced enough to discuss the topic
- My ideas might not be good enough
- People might react the wrong way
- Other people can present this better
And all of that justification is fine, it help maintain the illusion of a ‘thing’ called “Impostor Syndrome”. Which is a label given to a fairly ordinary and common set of experiences.
As soon as we have a label, we can agree to identify with the label rather than explore the process that the label is abstracting.
‘Labeling’ is described well in Chris Voss’s book “Never Split The Difference” where Chris Voss describes his experiences as an FPI Hostage Negotiator and applies his learning to sales and negotiation processes.
One technique described was ‘Labeling’ where the negotiator describes the experience of the other person, as the negotiator perceives it:
“It looks like you don’t want to come out. It seems like you worry that if you open the door, we’ll come in with guns blazing”
The negotiator didn’t say “You don’t want to come out”:
- which is ambiguously also a command
- the other party might have to correct by defending their situation
- might be taken as an identity assessment “you are someone who does not want to come out”
This provides a common base of understanding, which the other party can correct without having to defend. And if they do so then the negotiator labels the new information.
But as a label it means we don’t have to deal with all the baggage or reasons which led up to the current situation.
In The Structure of Magic Bandler and Grinder look at the language patterns in therapy and describe techniques that therapists use to unpack the abstractions, ambiguities and labels that clients use to describe their problems. By unpacking them the therapist can identify behaviour changes or suggestions to offer the client.
As a ‘reversal’ of this, in “Patterns of the Hypnotic Techniques of Milton H. Erickson” Bandler and Grinder explore the use of ambiguity as a way of communicating with multiple levels of meaning and to use the labeling style of communication described by Chris Voss to create a base of understanding which may not actually have a shared experience but is accepted as a shared understanding for both parties.
If we want to improve:
- unpack the labels that we use to describe experience
- address the behaviours and processes that are described
Use your brain’s learning mechanisms to help
I think that ‘fear of public speaking’ is a learned response, and often we have generalised a bunch of disparate experiences into a label of “I can’t speak in public”.
Since our brain very effectively weaves together lots of experiences to draw this conclusion we can help it generalise in a different way.
Think of all the successful experiences you have had with public speaking:
- when you answered your phone as you were walking down the street
- when you spoke to your friends in a bar or restaurant
- when you spoke to your team in a team meeting
- when you spoke to your family at a family gathering
If you mentally label these as ‘Public Speaking’ then your brain will start to collate them and then you can create a different base experience for your brain to build labels from.
That might help you take opportunities for public speaking when they arise.
Bonus YouTube Video
I expand on these points in the following YouTube video:
And you can find the slides online
Aprenda como executar testes utilizando uma versão específica do Geckodriver Nos últimos dias me deparei com um problema ao tentar executar testes escritos com o framework Protractor no Firefox devido a uma incompatibilidade com a versão atual do geckodriver que o webdriver-manager atualiza por padrão (na data de publicação deste post v0.18.0). Vale resaltar que tais testes … Continue lendo Executando testes do Protractor no Firefox
Recently Equifax’s web applications were hacked, which resulted in a data breach of millions of user’s personal information. This hack is alarming, as according to recent reports it was a result of a…
This is another post in our Code Health series. A version of this post originally appeared in Google bathrooms worldwide as a Google Testing on the Toilet episode. You can download a printer-friendly version to display in your office.
By Chris Lewis
You are caught in a trap. Mechanisms whirl around you, but they make no sense. You desperately search the room and find the builder’s original plans! The description of the work order that implemented the trap reads, “Miscellaneous fixes.” Oh dear.
Reading other engineers’ code can sometimes feel like an archaeology expedition, full of weird and wonderful statements that are hard to decipher. Code is always written with a purpose, but sometimes that purpose is not clear in the code itself. You can address this knowledge gap by documenting the context that explains why a change was needed. Code comments provide context, but comments alone sometimes can’t provide enough.
There are two key ways to indicate context:
A commit message is one of the easiest, most discoverable means of providing context. When you encounter lines of code that may be unclear, checking the commit message which introduced the code is a great way to gain more insight into what the code is meant to do.
Write the first line of the commit message so it stands alone, as tools like GitHub will display this line in commit listing pages. Stand-alone first lines allow you to skim through code history much faster, quickly building up your understanding of how a source file evolved over time. Example:
<table class=“my-bordered-table” style=“width: 613px;”>
<td style=“background-color: #cfe2f3; vertical-align: top; width: 607px;”>
<pre style=“background-color: #cfe2f3; border: 0px; color: black; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-top: 0px;”>Add Frobber to the list of available widgets.
This allows consumers to easily discover the new Frobber widget and
add it to their application.</pre>
- You can use a bug report to track the entire story of a bug/feature/refactoring, adding context such as the original problem description, the design discussions between the team, and the commits that are used to solve the problem. This lets you easily see all related commits in one place, and allows others to easily keep track of the status of a particular problem.
- Most commits should reference a bug report. Standalone commits (e.g. one-time cleanups or other small unplanned changes) don’t need their own bug report, though, since they often contain all their context within the description and the source changes.
Informative commit messages and bug reports go hand-in-hand, providing context from different perspectives. Keep in mind that such context can be useful even to yourself, providing an easy reminder about the work you did last week, last quarter, or even last year. Future you will thank past you!
Have you ever had this issue when running your protractor automation tests ? Error: Error while waiting for Protractor to sync with the page: “Cannot read property ‘$$testability’ of undefined” at runWaitForAngularScript.then (/node_modules/protractor/lib/browser. ts:653:19) at ManagedPromise.invokeCallback_ (/node_modules/selenium-webdriver/ lib/promise.js:1366:14) at TaskQueue.execute_ (/node_modules/selenium-webdriver/lib/promise. js:2970:14) at TaskQueue.executeNext_ (/node_modules/selenium-webdriver/lib/promise .js:2953:27) at asyncRun (/node_modules/selenium-webdriver/lib/promise.js:2813:27) at /node_modules/selenium-webdriver/lib/promise.js:676:7 at (anonymous) at […]
School is back in session and that means it’s time to join us for free complimentary training classes with the SmartBear team. SmartBear Academy has taught over 10,000 customers and users in 2017 so…
SmartBear Connect is just 5 short days away, and we are so excited to see you all there! We have lots of informative sessions and fun events planned for you. Here is a preview of what you can expect…
Ben asks… I’ve been working with angular a while now but I have to admit, the testing side throws me. Every time I start to tackle it, I find myself distracted from the test I want to write by all of the things I need to mock. Sometimes it feels like I need to build … Continue reading “AMA: Testing an Angular app”
TLDR; Sorry, this post is a little negative and long, but it does have some positive techniques that you might be able to use in your testing e.g. Google Image Search. And has hints on how to create your own thumbnail and branding images for free.
Good News - New Course Image
I’ve re-branded my Selenium WebDriver Online Course Image to:
Bad News - Due to Extensive Copyright Violation
Sadly I re-branded (again) because I seem to have created a ‘standard’ Selenium WebDriver Image.
My old images:
Have been extensively used by other people to:
- promote jobs
- promote online forums
- promote online training (not mine)
- promote face to face training (not mine)
I get nervous that people who know my branding might associate the role, or the agent, or training, with me or my training. I don’t proactively hunt down copyright violations but when use of my images are pointed out to me, and they are used in a manner which I think can cause commercial confusion, I ask people to stop. Normally when I ask people to stop doing that, they stop doing that.
Recently people have not stopped.
Google Image Search Tool
I have not used the Google Image Search tool very often.
Previously I have only used it when checking if a person asking to connect on LinkedIn is actually a real person by searching for their profile image and seeing if it appears associated with anyone else.
To use the tool, in Chrome, Right click on an image and choose “Search Google For Image”. You can then search for similar images, images in different sizes etc.
I frequently use Google searches when testing live sites to see if any pages have been indexed that are not supposed to be indexed or if there are any subdomains I didn’t know about etc.
The Google Image Search tool might be useful in your testing - it is worth getting to know it.
I seem to have created a ‘standard’ Selenium Training Thumbnail
When I used the tool on my images I was surprised they were being used in so many places:
- LinkedIn posts promoting training by other people
- Commercial training vendors offering Selenium training (primarily in India and China)
- YouTube thumbnails
- Blog posts promoting training and tutorials (not mine)
I seem to have created a ‘standard’ Selenium Training image.
Which surprises me. The image isn’t very good and I hoped people had more professional integrity.
I even found images where people had added their own watermarks to claim the image as their own.
As a result I’ve created, and now have to maintain, a Copyright Providence Page for images. I may have to add Evil Tester logos and cartoons to this page as well.
Most Recent Example
I started down this route because someone taking my course pointed out that a YouTube channel is using my branding as the thumbnails on their Selenium WebDriver YouTube videos.
Because I created recognisable branding, the person taking my course was able to recognise it being used by someone else.
- I asked the YouTube channel to stop
- They asked me to ‘prove’ that I created the image
- My sites, and the way back machine do not count as evidence for them. I’m not going to give them the original vector graphics file, as I think they would modify it and use it for their own purposes.
- And any way, they pointed out, other trainers are using the image so what’s the problem?
- I point out that, by implication, they are admitting that they didn’t create the image and therefore should not use it.
- They then say that they are “really surprised that you are using such tricks to promote your training”.
- They then hide the comments on the video, and delete their comments where they admit that they didn’t create the image.
I then had no choice then but to go through the process of flagging a copyright violation in YouTube.
This wastes everyones time. It wastes my time going through the process, the platform’s time responding. and the person who created the videos time to ignore my comments. It would be faster for the YouTube channel to create and upload a new thumbnail, than engage with me in the comments.
Update: on 6th September I heard back from YouTube that their usage of my image as the thumbnail for their Selenium WebDriver videos does not subsist in the content.
“Thank you for your notification. We have reviewed this matter and determined that copyright does not subsist in the content that is the subject of your complaint. For this reason we are unable to process your request.”
I understand how hard it can be for YouTube to act on copyright infringement given that they only allow 200 characters to describe the infrigement on their site and no attachments for supporting evidence, e.g. original files.
I have created another infringement submission, using this providence and copyright guideline page that I had to spend time creating.
YouTube warn you, when you submit the form that overuse of this form may result in suspension of your YouTube acount, so soon you might only be able to watch this other person’s videos, and not mine.
In the meantime, this other person continues to create new Selenium WebDriver With Java Training videos, using my branding as their thumbnail.
If you see those videos, they are nothing to do with me
I can’t accept excuses about:
- no talent
- no time to create image
- no money for tools
I’m not a professional graphic designer, so I’m surprised that people want to use my images.
Those particular images took me about 30 minutes, or 1 hour, to create.
For YouTube thumbnails I use TubeBuddy. The free version offers thumbnail generation, although I have a paid plan.
I think that if people are taking the time to create videos, or training and are spending the time creating content to help people, then the little extra time it takes to create an image for their own branding is negligible.
A lot of people online recommend fiverr as a source of cheap content. I don’t use that. I’d rather learn the skills associated with the content creation so create all my images, thumbnails and book covers myself.
But Alan, you are using Copyright Images
In my branding image I use the Java logo, Selenium Logo, Firefox, IE and Chrome logos. I think this is classed as ‘fair use’ under copyright law, but if I’m wrong then let me know.
If using those logos in this way is a violation of copyright law then I obviously haven’t interpreted it correctly and have been led astray by the many similar approaches I’ve seen online.
This feels similar to the “but other trainers are using the image” excuse above, and if I had been asked to change the image as a result of a copyright ownership or usage request from Oracle, Mozilla, Opera, IE or Chrome then I would.
I think my reasoning is different from “but other trainers are using the image”. But I could be wrong.
But, this whole incident made me reconsider, and my new images do not use logos of programming languages, browsers, or tools. Even though this makes the image less immediately resonating of the subject of the training.
Professional Courtesy and Competition
I think that if we are working in the same domain (testing) and creating similar content (blog posts, training, videos) that a certain amount of professional courtesy should apply.
If people don’t respond to my asking them to remove it, then the only recourse I have are the draconian ‘take down notices’ that platforms use. And I don’t want to see people’s content removed, I just want them to use their own branding.
I think having multiple people create content on platforms covering the same topics is good, and I would like to see more of that, I don’t want to see any content removed from the web that people can learn from.
In order to encourage this:
- I try to answer all questions about “how do you write your books?”, “what tools do you use?”, “any tips for recording?” etc.
- I pass on unsolicited comments to people about their YouTube channel to improve their branding and profile to encourage more views on their videos. In the belief that more viewers of their videos might spill over into more views of my videos.
I value competition and encourage it. I don’t like being forced to issue ‘takedown’ notices which help no-one.
Even if the content being created by others is good, I can’t recommend it or link to it if they are using my content. Which cuts down on sharing of possible useful learning resources.
Personal Branding is Important
If you use someone else’s branding then it might destroy trust in your brand. Why should a potential customer view you as a trusted source of information, or training, if you are using someone else’s brand to promote it?
Copyright Violation is a Fact of Life
Copyright Violation is a fact of life.
Pretty much every digital content that you release on the internet is copied and downloadable from disreputable sites, often complete with viruses, and often the download is fake.
I can’t do anything about downloads from those sites.
One reason why I try to price my material low is to allow people from countries with an unfavourable exchange rate to more easily afford the products. Of course they are never going to be low priced enough for everyone, and a low price does not prevent piracy because some people simply collate and collect pirated material.
Where content is used on LinkedIn, YouTube, or other big sites then they have take down processes. Although experience suggests that they don’t work.
Monitoring for Violations
Google Alerts doesn’t let you monitor for images but there are other sites that do:
If you experience a similar problem then it might be worth signing up to one of these services.
Summary and Recommendations
If you use the images that I created for my commercial branding, for your own commercial branding, I will ask you to stop. If you don’t and the platform you are using has a formal take down process then I may have to spend the time filling in the take down request. This wastes everyone’s time.
When you are considering buying a product, or service, why not do a “Right click and ‘Search Google for Image’” in the Chrome browser, and see if this person is a reputable trainer or not.
If you create content, then it doesn’t take a lot of time to create your own thumbnails, and it doesn’t have to cost anything. But the branding benefits that you obtain, and the skills you develop are worth the time.
I’m slightly saddened by this because I’d love to promote new YouTube channels that come to my attention or good blog posts but I cannot if they are using my branding for commercial gain.
If you use my images in a blog post or on Linkedin, then a link back to my training courses would help me out. Possibly something like:
If you liked this post then look at Alan Richardson’s excellent Selenium WebDriver with Java online training, not only does he have a good training course, but he also has a fantastic thumbnail which I used in this post. https://compendiumdev.co.uk/page/online_training
If you do see my branding being used on other sites or on YouTube then feel free to let me know
I released new branding images for my courses. Woo hoo.
For some industries, quality management is different. If you are not able to establish sufficient internal governance around your product development process, you are out of the market. If you are a…
For the past year there has been much discussion over the Hewlett Packard Enterprise Co. (HP) spin-off and sale to Micro Focus International Plc (Micro Focus), drawing the attention of many in this…
Install the emulator plugin: https://wiki.jenkins.io/display/JENKINS/Android+Emulator+Plugin On the Build Environment session of your job, configure the emulator, like this: On the Common emulator options session: The -verbose is more for you to have full logs when running it. I was having some problems with timeout, jenkins was able to start the emulator, but was waiting to […]
How to Leverage Parallel Testing to Speed Up Development Cycles Is your team constantly feeling pressure to deliver software on-time without compromising quality? Curious how your team can speed up…
TLDR; My new book Automating and Testing a REST API is out in paperback on Amazon.
It has been out as an ebook since January but I wanted it to:
- Settle down
- Receive some comments
- Proof read it gradually over time
And I’m glad I did.
Based on comments I added three or four new chapters to go beyond the set of topics that a Case Study could provide and the book now has generic information on:
- Serialising and Deserialising to/from JSON and XML with REST Assured
- Overview of HTTP and REST Technology
This makes it more suitable for beginners and has more information to allow you to apply the lessons learned in your own projects.
Why A Case Study?
I wanted to write a Case Study because it shows the actual code and techniques in action on a real system.
I use Tracks in the book as the application under test - this is an open source application for time management and productivity. This makes it richer in functionality than the book needs which provides plenty of opportunities for follow up learning as you apply the techniques in the book to the application on your own.
A Case Study is also time-bound, which means that it represents a valid set of information and topics against a particular version - if you download that particular version of Tracks then the code and examples work out of the box.
A Case Study allows me to show workaround for real world issues e.g.:
- bypassing system bugs to allow creating users when the API doesn’t work
- simple ways of generating test data
Also, it shows the flow of the testing process so I move from:
- Manually interacting with the application to learn it
- Inspecting the Web Traffic to identify if the API is used
- Scoping out functionality to build a test coverage list
- Using the documentation examples in cURL
- Using “App as API” (bypassing both GUI and API) to create users
- Using the API via GUI Client Tools
- Creating simple code to create Test Data to support manual interaction
- Automating with REST Assured
- Building abstraction layers to make the automating code easier to work with
Just as I was about to go to press with the book. Bitnami, whom I was recommending as the main source for a VM for Tracks, discontinued the VM. So I was forced to rewrite one of the chapters.
This was actually a good thing as it means that the book can remain stable, and I will use the book’s support page as a place for adding updates on how to install the software, and will add more videos there over time showing little nuances and asking questions.
This makes the book ‘slightly more alive’ as the text actively encourages the reader to use the support page and that is now an official extension to the book, rather than just an errata page.
This has resulted in a slim, but still 260+ page book which is pretty dense with examples and tool coverage. A book which I have next to me as I automate REST APIs because it is currently my reference guide for cURL and REST Assured.
- all code examples and Postman collections are on GitHub at github.com/eviltester/tracksrestcasestudy
- a support page with bonus videos showing examples from the book. I also add links to other useful sites, and instructions on how to install Tracks.
- because the book was originally published on leanpub there is an easily accessible preview of the book which has almost a quarter of the book in it. A 70 page pdf sample is also available.
Should you buy it?
I have found it a useful book to both write, read and refer to as I test and automate REST APis.
I’ve priced the book low because I want it to be affordable to as many people as possible.
If you are not sure yet then I recommend that you:
- Read the blurb page, which also has links to positive reviews (and these reviews were written before the extra content was added)
- Have a look at the Table of Contents to see what the book covers
- Read the Sample
- Watch some of the YouTube videos on the support page
- Read the supplied source code and see if we cover enough material.
This is not the end of my writing, teaching and experimenting with REST APIs so if you have anything you’d like me to cover in the future then do let me know.
TLDR; Testers often find bugs in production systems. But with no incentive to raise them we find workarounds and they go unreported.
I wish there were bug bounties for functional defects
This week I found a bug in SlideShare. I say “found” when what I mean is - “for the 3rd or 4th time I’ve had issues uploading slide decks and I finally identified the cause”.
And… SlideShare will (probably) never have the defect formally reported to them by me.
- I have a workaround - I don’t need to report it
- There is no obvious ‘report a bug’ button on Slideshare
- Slideshare is owned by LinkedIn (no ‘report a bug’ button)
- LinkedIn is owned by Microsoft (no ‘report a bug’ button)
Now, if there was a bug bounty I would have some additional incentive and I would go beyond my workaround to find the actual edge case limits make it repeatable and see if I could exploit the bug.
As it is, I won’t.
Unfortunately companies do rely on customers raising bugs in their system.
Don’t Brag About not Testing
I read a blog post by a small software company recently, who make a piece of software that I was about to evaluate, entitled “Why we don’t test”. Which seemed designed to say “Alan, do not evaluate this software or use it for any of your data.”
A LinkedIn/SlideShare Bug
The SlideShare bug is an example of a fairly common pathology set that it is worth being aware of.
- Errors not reported to the user
- Front End Validation not matching backend
The situation was:
- Try to upload a pdf to slideshare, with a title and description etc. The ‘publish’ button is then disabled as the upload happens. Then no indication to the user that the ‘publish’ has finished or the success state of the publication.
All I knew was - hit publish, pdf not published because it doesn’t appear in my uploads. No error message. No way to ‘resend’.
I decided to ‘edit’ an older presentation to see how much I actually needed to ‘submit’ on creation because it was becoming painful copy and pasting everything into the upload for an having it fail.
Fortunately, this has happened to me before with SlideShare so every time I upload to SlideShare I either:
- write the title, description, tags etc. into Evernote and then copy and paste from there
- write the info into the submit form, and copy from the form into Evernote, before I hit ‘upload’
I use a similar process to the above on pretty much every site I use that uploads a form:
- shopping sites
- conference submissions
- youtube uploads
Pretty much anywhere there is a ‘form’ I don’t trust it. So this is a fairly common set of problems online.
Having identified that I can edit - pretty much everything after uploading:
- uploaded slideshare pdf
I uploaded the pdf with a title and the title copied into the description. And lo it uploaded and I then edited it to get it ‘right’.
I found the problem
The problem was then easy to see on the edit screen.
The edit screen has some visible validation on the form fields. And when I pasted in my description the system told me “should be limited to 3000 characters”:
- What should?
- I assume the description because that was what I edited
- Should the “should” which starts the sentence “should be limited” start with a capital letter and read “Should”? Or was there supposed to be text before it that says “The description field “?
- This character count doesn’t help when you copy and paste, because you lose your input when the form refreshes with the error message
But at least the problem is visible here, an error message is displayed, and I can adjust my behaviour.
I found another problem
After a little while, SlideShare sends you an email telling you that your slide deck has been uploaded:
What I find interesting about this is that the upload process is not fully transactional.
I assume that:
- it managed to upload the pdf
- created a temporary title based on the filename
- failed to process the text form details
Given that this email came through I suspect that on the Slideshare server there exist phantom uploads for slide decks that have failed the text processing stage of the upload.
- if they exist, I can’t delete them
- does Slideshare automatically delete them?
Sadly no bounty
Sadly SlideShare have no bounty to share,
And of these bugs, they may be unaware,
I have a workaround, and blog post, so I don’t really care,
This might impact someone else, and that isn’t fair,
But it won’t happen to you, because you know to beware,
And now this post is ended, “It’s finished” I declare,
“C’est fini”, with no further fanfare.
Based on - instagram.com/p/BYaYU20gDu8