The Essentials of Quality Assurance in Software

Photo by Photo Boards on Unsplash

Introduction

A comprehensive testing strategy checks that software performs what it's supposed to do, both from a functional and non-functional perspective. Testing aims to prevent bugs and contributes to the overall level of trust users have in a platform, reducing the risk of reputational damage and revenue loss.

Software engineers and QA analysts work both together and separately to plan, design, and validate results against a suite of test cases:

  • Developers achieve correctness of the executing code by writing unit and integration tests, checking the outcome of different inputs and workflow steps. …

Organize, Execute and Review all your User Story and Task Requirements

Introduction

A workflow is the starting point for managing activities in software projects. Workflow boards make it possible for the team to keep track of assignments to understand how goals and tasks are going.

In this tutorial, I will explain how to set up an Azure DevOps Board with sprints, user stories, and tasks.

Getting Started

Visit https://dev.azure.com to register for a free Azure DevOps account, then add a new project called Foral Force.


Ideas to Overcome Inertia to Change

Photo by Bill Oxford on Unsplash

1. Find others with the same objectives

The biggest objection to increasing unit test coverage is that it takes software engineers away from developing new features for clients. Additionally, the transition towards a unit testing culture will take time and require an investment in training.

A lack of team support would almost certainly hinder any effort to move towards a unit testing culture, so it's essential to recruit like-minded people first.

An excellent place to start would be to persuade a manager or lead developer who can convince everybody else in their team to do the same. …


Photo by Michał Parzuchowski on Unsplash

Introduction

Before we cover Planning Poker and the PlanITPoker application, let’s first recap how a sprint planning meeting works in a typical development team.

In an Agile project, a sprint planning meeting is held to discuss backlog items that have been prioritized by the business. The backlog can have just about anything in it, such as bugs reported by application users or new features that are queued to be developed.

The team has a Scrum Master — or moderator — who introduces each user story to the group, providing a high-level summary of the requirements. This is an opportunity for the…


Get the Rush of Running Great Presentations

Photo by Jakob Owens on Unsplash

Introduction

Don’t get nervous at the thought of delivering a presentation, particularly these days when talks are increasingly delivered over webinars and within the comforts of our home.

There’s no magic 🔮 involved — all you need is a single document to read from and the ability to sound confident, using your voice as your instrument.

In this article, I share how I prepared a careers webinar that I’ve given to students at colleges and universities. I’ll take you through the delivery and follow-up process, setting up visual aids, and circumventing obstacles.

Part I — Creation

Create your presentation

I use Google Slides for my presentation.

A well-crafted…


Save Time and Money Writing Exhaustive C# Tests

Photo by Greyson Joralemon on Unsplash

Introduction

In this article, I explain the benefits of using NUnit’s TestCaseAttribute, which helps eliminate repetition and make C# tests more expressive.

The Problem

To grasp the reason for using the TestCaseAttibute, it is necessary first to identify the problem it seeks to solve. Let’s write some edge case tests for Math.Pow(double, double), which takes in:

  • a base, x
  • an exponent, y

and returns the base taken to the power of the exponent:

    [TestFixture]
public class Tests
{
[Test]
public void
Pow_X_Zero_Y_More_Than_Zero_Returns_Zero()
{
Assert.AreEqual(0,
Math.Pow(0, 0.1));
}
[Test]
public void
Pow_X_Zero_Y_Less_Than_Zero_Returns_PositiveInf()
{
Assert.AreEqual(double.PositiveInfinity,
Math.Pow(0, -0.1));
}

Create Readable Unit Test Cases that PR Reviewers Will Thank You For

Photo by Omar Lezama Hernandez on Unsplash

Introduction

Setting up unit test initial conditions can quickly become long, complex, and hard-to-read unless development teams adopt a consistent approach. This article explains why you should consider using builder methods in your unit tests, constructing more understandable business scenarios.

The Problem

Let’s assume we’re writing software for an online sandwich shop, allowing customers to choose their fillings and dressings to build up their ideal sandwich.

Create these enums to represent the kinds of fillings you can have:

    enum TomatoType
{
CHERRY,
ROMA
}
enum LettuceType
{
CRISPHEAD,
BUTTERHEAD,
ROMAINE,
LOOSELEAF
}
enum BaconType
{
REGULAR,
SMOKED
}
enum ChickenType
{
REGULAR,
BBQ…


An Article about Publishing Your Views, Expertise, and Creative Work in Blog Posts

Photo by Sonika Agarwal on Unsplash: Idol of Lord Ganesha, Mumbai.

Ganesha — the Hindu God of beginnings. A fearless idol and remover of obstacles, he attracts devotees looking for success, prosperity and protection against adversity.

Want to start blogging? We could all be doing with the promises, courage, and intellectual wisdom of Lord Ganesha.

Going public with our views, expertise, and creative work is an exciting inflection point in our personal and professional life — but it’s daunting. It’s a trade-off that we all understand perfectly: when we raise our visibility, we have to overcome our fear that some people won’t like our work, thoughts, or feelings.

In this article…


Group elements of different types in a lightweight data structure

Photo by frank mckenna on Unsplash

Introduction

Available since C# 7.0, a tuple is an ordered sequence of elements used to store multiple items in a single variable without the need to create custom classes or structs.

He’s a tuple I’ve created called product, which combines a Book object with a price, declared with round brackets:

(Book book, decimal price) product = (new Book(
"Best Practices for Software Engineers", "George Marklow"),
8.99m);
Console.WriteLine(product.book.Title);
// Best Practices for Software Engineers
Console.WriteLine(product.book.Author);
// George Marklow
Console.WriteLine(product.price);
// 8.99

As you can see, a tuple allows us to store elements of different types, unlike a C# array where all elements…


Unlock the Blessings of Mental Health Techniques to Live a Happier Life

Photo by Krists Luhaers on Unsplash

I thought I’d take a break from my usual software engineering and best practices articles to talk about mental health. In particular, I’m going to cover a preoccupation with body image that once had a significant impact on my quality of life.

I’m not usually one for discussing personal things in public; however, I decided to write this post because the counseling I received was so valuable that it would be considered selfish not to share it with everybody. After all, according to a 2019 study done by Mental Health Foundation:

One in five adults (20%) felt shame, just over…

George Marklow

George is a software engineer, author, blogger, and tech enthusiast who believes in helping others to make us happier and healthier.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store