Archives: Lessons

4. Managing a Library of Test Cases

April 2, 2019
Your ability to manage a library of testcases in your test management tool depends a lot on the relationship between the different instances of the testcases. The instances that resides in the library and the instances that are created to be executed and run. At a basic level you you will have two instances of a testcase.. 1. The instance that resides in the library. This is the master copy of the testcase and will not usually have a result record associated with it. 2. The instances that have been used at run/execution time. These instances will all have a result (pass, fail, not yet run, etc) value against them. They may differ from the instance that resides in the...
Read more...

3. Using Test Parameters

The ability to add parameters to testcases enables you to write testcases once and then run different instances multiple times with different parameters. It’s a key capability in test management that saves time, enables you scale up your testing more efficiently and helps avoid mistakes when writing repetitive testcases. Scaling up your test cases effectively usually involves the practice of parametrization. That is, the concept of having one testcase and then feeding in parameter values to create variations of the test case at run time. So essentially you have the same testcase which you execute repeatedly with different data values. Defining parameters in Quality Center is done at the step level where each step is fed parameter values from a...
Read more...

2. Version Control of Test Cases

It’s important to understand if and how version control of your QA artifacts is relevant to your test management process. If you work in a highly regulated environment then it likely that version control is very important. If you work in an environment where documentation and traceability aren’t so important then this may not be so relevant. Either way it’s useful to trace the history and modifications to your test artifacts. As most tools will do this for you in the background it’s usually worth starting off with tracking the history of changes at first. To understand the different approaches to version control read this previous blog post on the Three Approaches to Test Case Management Version Control. So at...
Read more...

The Seven Complexities

Below we set out and introduce each of the seven complexities that we'll examine throughout this course. 1. Assignment: Assignment of Test Cases in Test Management Tools At some point in the process we need to assign a test to a tester. The question is are you looking to assign it at the step, case or set level? Do you need to allocate different tests within a set to different qa engineers? How do you track the difference between assignment for writing and executing the testcase? All of these points complicate a seemingly simple concept. When you look at the different ways different tools support this capability you’ll find it’s not quite as straightforward as you might first think. 2....
Read more...

1. Assignment of Test Cases

At some point in the process we need to assign a test to a tester. The question is are you looking to assign it at the step, case or set level? Do you need to allocate different tests within a set to different qa engineers? How do you track the difference between assignment for writing and executing the testcase? All of these points complicate a seemingly simple concept. When you look at the different ways different tools support this capability you’ll find it’s not quite as straightforward as you might first think. All test management tools have the concept of assigning testcases. Some provide more capabilities than others. Certain tools provide just about every capability you can imagine but do...
Read more...

Part 2: AWS Fundamentals

These fundamentals are all you’ll need to complete all of the modules in this course. It’s all you’ll need to be productive with your testing on AWS. Trust me, despite all the different services and options, it’s easy to get started with AWS. You just need to grasp the following: Services: Amazon provide a range of different services. A service can be thought of as the type of work a particular cloud resource provides. These services are grouped into categories like Compute, Storage, Database, Networking and others. As an example, in the ‘Compute’ category, we have the EC2 (Elastic Compute Cloud) service along with other services like VPC (Virtual Private Cloud). In the ‘Storage’ category we have the EBS (Elastic...
Read more...

Part 1: Creating an AWS Account

We’re going to build our test system using Amazon Web Services. This allows us to spin up virtual machines in the cloud on demand. Once you’ve signed up for an AWS account you’ll have access to all of these services through the AWS dashboard: You’ll only need the EC2 service (along with the assoicated EBS storage, security and machines images) for now. So how do we create our AWS account? If you already have an AWS account you can skip the following and jump to AWS Fundamentals. Be warned though……. if you have an existing AWS account you may be out of your 12 month Free tier period. Or you may have nearly exhausted all of your free tier resources....
Read more...

What will your finished setup look like?

Over the course of the 6 modules you’ll get to this…. For this module you’ll run up the Windows master machine (that we’ll run Jenkins on later) and one slave Unix machine (that we’ll use to build and install the application under test on). Don’t worry if you’re not familiar with Unix or you’re not familiar with Windows. We’ll cover all the steps you need. By the end of this module we’ll have created the following: You’ll start out with a master/control machine, running Windows Server 2008 (yes I know that’s old but it’s less resource hungry and delivers everything we need). This machine will be running Jenkins which will control all the other machines. You’ll access this machine using RDP...
Read more...

Amazon Web Services Prerequisites

You don’t need a lot to cover this or any of the other module in this series. What you will need though is the following: 1. A desktop or laptop machine that runs Remote Desktop Protocol (RDP) You can check if you have an RDP application on a Windows machine with: press the Windows button + r in the Run window type ‘mstsc’ this should bring up the Remote Desktop Connection window If you're running on a linux machine or Mac then there are equivalent applications. For example on Mac you should find you have an application called "Screen Sharing". On Linux you can look for (or install) any number of "VNC client" applications. Either way you just need to...
Read more...

Why Use Amazon Web Services

As a tester why would you want to use Amazon Web Services (AWS)? Well it’s fast to get setup, it’s scalable and it’s cost effective. Let’s address each of those points in turn. So you need a new environment to test in. If you don’t already have the hardware you’ll need to purchase the hardware, install the operating system, configure the network, etc, etc. If you have an AWS account all you need to do is pick a machine image and fire it up. No purchase, no ordering, no hardware configuration and no operating system install. It’s all there in minutes. The AWS Compute side of things isn’t called Elastic Compute Cloud (EC2) for nothing. If you don’t need it...
Read more...

An Introduction to Amazon Web Services

Our 6 module course on Building the Test Automation Framework starts with Amazon Web Services (AWS). We’re going to use AWS, and more specifically, the Elastic Compute Cloud (EC2) to build our test environment and automation system. It all starts with configuring and running up the virtual machines we need to run everything on. This first module is all about understanding Amazon Web Services (AWS) and Elastic Compute Cloud (EC2).   We’re going to cover six key areas: First, creating an AWS account (you can skip this part if you already have one) Secondly, configuring two security groups. Thirdly, creating a security key pair. Fourthly, we’ll run up two Virtual Machines (one Windows master and one Unix slave) Fith, we’ll...
Read more...

Introduction to Building the Test Automation Framework

Welcome to Building the Test Automation Framework. A 6 part course that takes you step by step through the process of building a test automation framework. A test automation framework we’ll build completely from open source tools. Each of the 6 modules is a short course in it’s own right. Each module covering tools like; Amazon Web Services, Jenkins, Selenium, Git, SoapUI and JMeter. When we’ve finished we’ll have a distributed test automation framework. A framework based on the principals of Continuous Integration and Devops. This is about building a framework at the system level that gives you the platform to automate much of what you need to do on a day to day basis.   To build this platform...
Read more...

Tagging and Branching

On to tags and branching then. Tags allow us to give a more human-friendly name to a specific revision of our folders/files. Branching gives us the capability to create a copy of the folders/files in our repository and have a different copy to work on - without fear of corrupting our main copy. As you've probably already grasped every time you commit a changed file to the repository SVN gives the repository a new, incremented by 1, revision number. In a reasonably sized project, over a year or two, it's not long before those revision numbers get into the thousands or even tens of thousands. So you're likely to get to the point where you have a stable set of...
Read more...

Managing Conflicts

We know how to create a repository. We know how to set up our SVN client and import our initial set of files. And in the 3rd module in this series, we saw how to check out and commit changes from/to the SVN repository. All pretty straightforward and easy to follow while just one user is working on one file. It won't be long though before you start getting warning messages from SVN that you have a conflict. It's how you should go about handling these conflicts we're looking at in this module.   What you'll find is that two people will be working on the same file and try to commit changes to the same file to the repository...
Read more...

SVN Check out

At this point, having completed module 1 and module 2, we have an SVN server, a repository in that server and we have files/directories in that repository. The whole point of this is to share files and version control them between different users. The next step then is for you to check out the files from the repository. From here we can simulate another user checking out the files from that same repository. In this way, we can see and learn how SVN deals with two people editing the same set of files at the same time. In the last module, we created two user accounts (user1 and user2). With your first user account then (the one that you just...
Read more...

Setting Up the Tortoise SVN Client and SVN Import

In the first tutorial we looked at why we need SVN and setting up our own Visual SVN server. When working with your team at work or collaboratively over the net, you probably won't need to setup the server. This will probably already be in place and you'll be given an account that allows you access. We've setup our own Visual SVN server instance because it's the quickest way to get started and to help us learn. Your own SVN server gives you an environment in which to practice and experiment. ` Once the server and repository are configured we need to setup our client to access this repository. The client allows us to pull files out of our central...
Read more...

Core Components and Installing Visual SVN Server

SVN has been developed by CollabNet and is currently maintained by the Apache Software Foundation. It’s open source project and is predominately a command line tool (both for Windows and Unix). The home of SubVersion is the Apache Org Subversion website where you can download the source code (you’ll find many mirror sites that host the binaries for various platforms):https://subversion.apache.org/ Separately to this, a company called VisualSVN Software Ltd have developed an SVN server application that works as a graphical front ends to the SVN server component. Then we have an independent Open Source project (GPL) called Tortoise SVN that provides a client front end for windows. At the core though is SVN. We’re just using Visual SVN Server and...
Read more...

Debugging

April 1, 2019
← Previous Lesson As you've probably realised what's underlying all of this automated test case development is code. Behind the scenes your Key Word tests are really code. The artifacts like projects files, checkpoints and name maps are all xml files. Ultimately you're writing code to test code. And if there's on thing code has it's bugs. Yes you're automated tests will have issues that you'll need work on to debug. Which is why TestComplete has some debugging tools built in. So that's what we're about to look at in this module. We can break these tools down into three distinct areas.... the context sensitive menu in the Keyword test work space the debugger toolbar the debugger panels We'll go...
Read more...

Name Mapping

← Previous Lesson Next Lesson → Probably the most critical aspect of any automation project is the ability to reliably identify the objects you need to interact with. Fail to identify the objects at all and you're dead in the water. End up with unreliable identification and you're probably in an even worse position. When it works some times and not others you'll spend inordinate amounts of time trying to work out why tests have failed.... is it your scripts or is it a bug? You have to get to a point where you can reliably identify application objects every-time. In this module we'll walk you through how you can approach this with TestComplete.     Key to object identification...
Read more...

Test Logging

← Previous Lesson Next Lesson → There's no point in going to all this trouble of creating tests unless you can see the results of those test runs and see what's passed or failed. Test logging in TestComplete is quite simple to get to grips with. Yet this logging capability provides a powerful way for you to easily navigate through mountains of test data that get generated as part of lots of test automation runs.     In this module we'll look at How test logs are organise and stored What the test log window shows us How to filter the logs to see what you need Exporting logs in different formats How we can add log messages to our...
Read more...

Checkpoints and stores

← Previous Lesson Next Lesson → We covered Projects and Project Suites in our last module. Next up then we have Checkpoints and Stores. Checkpoints to check something at a point in our test execution. Stores to store things. Obvious really.     There's no point in building out these projects and keyword tests if you don't have some way of checking the expected results against the actual results you see. Check points do exactly that.   You can think of check points as the manual testing equivalent of defining your expected results and then checking what actually happens against them. The result being either a pass or a fail.             The Stores component in...
Read more...

Projects and Project Suites

← Previous Lesson Next Lesson → We've already come across the basic concepts of the Project Suite and the Project. Remember that one Project Suite is the container for multiple Projects. Beyond this though we find a few further levels in this hierarchy. A project can then contain multiple test cases. A a test case can have one or more test steps.     In the image on the left we see the top level project suite called 'CalcProject Suite'. Under this we find 4 projects. CalcAPI, CalcDesktop, CalcMobile and CalcWeb are all projects contained within the single project suite. Then we can take the 'CalcDesktop' project and we can see that this project contains two test cases (Test1 and...
Read more...

Keyword Testing

← Previous Lesson Next Lesson → Finally we get to the point where we can start looking at the creation of automated tests with Keyword Testing in TestComplete. We've looked at some of the key components like Managing Projects, Options and Settings. We've also seen how Objects, Properties and Methods are critical to the tests you write. All of these components and concepts are part of the foundation you need in order to start creating automated test cases. You have that foundation now. From here on in it's all about creating tests.   You may or may not have figured out that you have two ways to create automated tests in TestComplete. Scripted (e.g. Python, VB, Java Script, etc) or...
Read more...

Objects and Methods

← Previous Lesson Next Lesson → We covered Keyword tests in the last module (Module 5). Fundamental to creating good keyword tests (and scripted tests) are the concepts of Objects, Properties and Methods. All of your test steps will interact with an object in your application. That object will have some properties and some methods. So we're going to take you through Objects, Properties and Methods below.   If you don't grasp the concepts of Objects and Methods you're not going to get far with TestComplete. It's absolutely critical to grasp these concepts. These are concepts that go much wider than just TestComplete. Grasp them though and a lot of TestComplete concepts will fall into place far faster. If you're...
Read more...

Options and Settings

← Previous Lesson Next Lesson → We made our way through Module 6 which covered the fundamentals of Objects, Properties and Methods. Now we move on to look at some of the important options and settings you'll find in TestComplete. When it comes to options and settings in TestComplete there are 4 distinct areas you need to know about. These areas are:   Options: [Click 'Tools -> Options' in the TestComplete menu bar] the settings that configure how TestComplete works and operates. These are like global settings that affect your general usage of TestComplete. They are independent of projects so that the options you select will apply regardless of the project that is open.     Project Properties: [double click...
Read more...

Managing Projects

← Previous Lesson Next Lesson → In the last module, Module 7, we looked at some of the most important settings and options in TestComplete. In this module we're going to look in detail at how TestComplete manages projects and projects suites. In TestComplete there is a hierarchy of items that you'll create and work with as you implement your automation project. That hierarchy starts at the top with the 'Project Suite'.   The Project Suite is just a container for 1 or more projects. Each project being a distinct group of test items that go together to make up a particular test automation effort. For example you might have an application to test that has, desktop, mobile and web...
Read more...

User Interface

← Previous Lesson Next Lesson → In module 1 we looked at creating our first key word automated test project. In that module we touched on a number of key areas of the user interface like the Project Workspace and the Object Browser. Each of those key areas giving us the ability to develop our tests and examine the applications we're testing.    In this module we're looking at some other key aspects of the user interface. Key components that you'll find yourself using on a regular basis to help you develop, debug and run your automated tests. In the next few paragraphs we'll go through some of the most useful components within the user interface.   First up...
Read more...

Creating our first test

← Previous Lesson Next Lesson → In module 2 of this Fast Start TestComplete course we've looked at the TestComplete development environment. You might not necessarily understand what everything does but you should be familiar with these core components:    Project Workspace - where you develop your automated tests Object Browser - where you can examine the application you're testing And within each of those components you should understand what these sub components are for: Project Workspace - Project Explorer: shows the artifacts created for your automation project - Workspace: where you create and modify those different artifacts Object Browser - Object List: hierarchy of objects (processes, windows & browsers) on your system - Properties: a list of characteristics...
Read more...

Getting Started and Key Components

Next Lesson → In this module we’ll look at the core components in TestComplete and get you familiar with the IDE (Integrated Development Environment). Whilst we’ll look in more detail at the concepts of Project Suites and Projects in the next module we’ll need to get started by creating our first Project Suite and Project. Watch the video and we’ll walk you through this:     Remember that you’ll start out by creating a project suite to hold your projects. Each project suite then contains one or more projects. Each project is a container for all the artifacts you need for a specific chunk of automation. Once you’ve created your first Project Suite and Project (we’ll walk your through this...
Read more...