This month all my Pluralsight courses are available for free including a lot of .NET testing content that can help you either get started with .NET testing or level-up your tests to make them easier to read and more maintainable.
Step 1: Learn a base testing framework:
Step 2: Level-up the base testing framework:
Step 3: Power-ups to complete your test strategy
Bonus Step: Help convince your co-workers and managers to let you write tests with the Testing Automation: The Big Picture course.
If you want to level up your tech skills for free, this April you can watch all my Pluralsight courses for free!!
An updated version of my Exception Handling in C# course is now available that updates demos to to use .NET 5.
From the course description: “At the core of handling errors in C# code is a thorough knowledge of exception handling. In this course, Error Handling in C# with Exceptions, you’ll learn how to write code that can detect and respond to runtime errors. First, you’ll learn why exceptions are used to represent errors in C# and how they are organized into class hierarchies. Next, you’ll explore how to throw, catch, filter, rethrow, and wrap exceptions. Finally, you’ll discover how to define, throw, and catch your own customized exception classes and also write unit tests for exception throwing code. When you’re finished with this course, you’ll have a thorough knowledge of C# exceptions that will help you to create production-ready C# applications that detect and respond to runtime errors.”
You can start watching the course with a free trial.
No app is an island entire of itself; every app
is a piece of the continent, a part of the main
(Apologies to John Donne)
It’s very easy to be so focussed (either as a developer/team/department) on a single app/website/etc. that its place in the “continent” can be forgotten. This is not really a fault of the individual developer/team, rather more an organization problem.
Take the example of a bank’s mobile app in the app store. The journey of a person and the app is much bigger than just using the app itself. How did the person hear about the app in the first place and how did they find it in the app store (just by searching or did the bank have a poster with a QR code on it?), do they log into the app with existing Internet banking details (and if so how did they set up their account – on the banks website?), what happens when they close their accounts or want to uninstall the app? What happens if there is a problem with the app and they phone the call centre? If a new version of the app is released that doesn’t work will that cause an influx of calls to the call centre, overloading its capacity and potentially missing out on sales opportunities from other calls?
At a more technical level, what APIs does the app call into, do those APIs in turn interface with other systems (e.g. a banking mainframe). If the mainframe errors what effect does that have on the API and thus the app and the person using the app?
If a customer has a problem with the app and goes into a bank for help, are the customer service representatives there able to help? If not do they have a “hotline” number to get straight through to IT/specialist app support personnel?
As developers we are also all consumers of software, sometimes this gives us more patience – sometimes less – when things are designed badly or don’t work.
If as software developers we get frustrated what is the “normal” person using software feeling?
Perhaps it’s time that every sufficiently large company had a dedicated user experience team that is intimately familiar with the entire “continent”/user journey. These “UX user champions” can then be part of development teams to ensure that indeed, no app is an island.
Happy New Year!
I think we can all agree that 2020 was one of the most challenging years any of us have experienced. Even though here in Western Australia we have been relatively lucky due to our isolation – we even had our border to the rest of Australia closed, let alone international travel… I’ve had close friends in other countries contract Covid, luckily they are ok.
One thing 2020 has helped me learn is to really try and differentiate between the things I can control and the things I can’t.
If you’ve been a reader of my blog for some time you’ll now I make heavy use of the 3 Wins Technique. I just set my 3 big wins for 2021 and what I realized was that my 2020 wins were, in reality, not things I could control.
I’m not saying having goals that are not 100% controllable is a bad idea, for example having a general savings/investments/paying off debts goal is fine. However you don’t control interest rates or share prices for example.
I still believe the 3 Wins Technique is a simple and effective tool, this year however I am going to be more conscious of setting goals that are in my control.
As a hypothetical example, suppose one of your 3 wins is to “get a pay rise”. This is out of your control. I know that sounds negative, but you can’t force your employer to give you a pay rise. A better goal would be something like “I’m going to learn as much as I can this year and add as much value as I can”. This should lead to the opportunity to have a discussion with your employer and show them the extra value you’ve added and talk about a pay rise. Of course the answer could still be “no”, at which point you can control whether or not you apply for jobs elsewhere – you’ll now have more skills to offer a new employer.
As another example: “get 1000 subscribers/followers on [INSERT SOCIAL MEDIA PLATFORM HERE]”. This is also not in your control. A better version: “I’m going to learn everything I can about how [INSERT SOCIAL MEDIA PLATFORM HERE] works, I’m going to learn how to create valuable content, and I’m going to cross-market my content on the other platforms”. Again, it’s about reframing what you can and cannot control.
It’s likely that 2021 will be another challenging year, but if you set your “wins” based on things you can control and work hard to make them happen, you‘re more likely to finish 2021 with a sense of achievement rather than disappointment.
No credit card needed, sign up for free now and start watching all my Pluralsight training courses for free.
Testing Tools You May Not Know About:
Expand Your Software Development Horizons:
The following are some suggested courses on topics that may not be on your radar but that your may find interesting.
Skills Paths Featuring My and Other Author’s Courses:
If you want a ready made “curriculum” in the form of a skills path check out the follow paths that feature some of my courses and courses by fellow Pluralsight authors:
P.s. Remember to take care of yourself physically, mentally, and emotionally during these trying times.
From the Pluralsight website: "Free April is open to anyone who is not a current, active subscriber."
My newest Pluralsight course was just published and you can start watching today. Selenium is a tool that allows you to automate a web browser and simulate an end-user interacting with your web app. You can combine Selenium with a test framework such as xUnit.net to create tests that check your web app is working as expected.
Automated browser tests can compliment your other types of tests such as unit and integration tests.
From the course description: “Unit and integration tests can help you catch a range of bugs, but not all of them. Even if your unit and integration tests pass, you could still deploy your web app to production and find it doesn’t work as expected. In this course, Creating Automated Browser Tests with Selenium in C#, you will gain the ability to create tests that automate the browser and simulate a real person using your web app. First, you will learn how to set up your test project and write your first test. Next, you will discover how to interact with web page elements from your tests, such as clicking a button or typing text. Finally, you will explore how to create a suite of automated web tests that are easier to maintain over time. When you are finished with this course, you will have the skills and knowledge of Selenium automated browser testing needed to help ensure your web app is working as expected before you release it to production.”
Check out the course today and if you’re not a Pluralsight member you can currently start watching for free with a Pluralsight Free Trial with Unlimited Access .
I recently started to adopt a new practice for my personal life in which when I go to bed and my head hits the pillow, I ask myself three question as I fall asleep.
These 3 questions are:
- What’s one thing I could have done better today
- What’s one thing I did well today; and
- What’s one thing I can be grateful for today
I designed and worded these questions to promote continuous improvement without negative self-talk, and to finish the day with gratitude.
Notice that they all say “one thing” – this is deliberate to make the practice easy to adopt and quick to implement. The funny thing is, I usually think of a few answers for each question.
You could use this technique at the end of a work day, for example on the commute home or as you walk out of the building, to reflect on the work day or project you are working on.
Let me know in the comments if you think you’ll give this a go and what you think of the idea (personal and/or work).
This weekend (Friday 22nd to Sunday 24th of November 2019) you can watch all my Pluralsight courses for free.
You could also watch an entire skills path such as C# Unit Testing with xUnit or C# Unit Testing with NUnit.
The free weekend starts November 22nd at 10:00am Mountain Time.
Check this link for the full list of all my courses.
As the New Year approaches and people start to comment “I can’t believe it’s November”, thoughts start to turn to New Year’s Resolutions and things not accomplished in this year.
Whilst I don’t believe in New Year’s Resolutions per se, rather I try to adopt a mindset of continuous improvement, the end of the year is a great time for reflection.
At the start of each year, I make use of the Three Wins Technique to think about 3 goals (aka “wins”) for the year.
Whether you like to make New Year’s Resolutions, use the 3 Wins or another technique, there’s one thing that a lot of people don’t seem to do…
…and that’s to write them down.
It sounds silly, “I know what I want to do next year”, but for some reason, somehow, writing down your goals gives them power.
You could write them on sticky notes and put them on your bathroom mirror so you see them every day. You could write them on a bit of paper and keep them in your wallet, purse, handbag, backpack, etc. You could (as I do) have a OneNote page for every year with my 3 Wins listed at the top with check boxes next to them.
The important thing is to write them down.
Since I started writing down what I wanted to achieve, I have achieved more. Maybe not everything, but still more.
I’m not saying “write it down and trust in manifestation”, you’ve still got to do the work, but at least start by writing down what you want to achieve.
If you think this sounds silly, why not give it a go anyway? Take your goals, write them down,and see what happens…