July 12, 2023
Inversion of control and dependency injection are big topics. I'm going to talk you through a high level overview of what Dependency Injection is and take you through the specific use case that SpecFlow refers to as Context Injection. Context Injection with SpecFlow Inversion of Control, Dependency Injection and Context Injection Inversion of Control (IoC)- A design principle (high level concept) used to achieve loose coupling of objects and creation of dependant objects. Dependency Injection (DI) – A design pattern (specific approach) that implements Inversion of Control (IoC). Context Injection – SpecFlow's specific implementation of Dependency Injection. So just think of it as a hierarchy. At the top you have the high level concept of Inversion of Control. Dependency Injection is a...
Read more...
June 23, 2023
We’re going to take a look at a simple ‘Driver Pattern’ example. A simple example with a C# SpecFlow project. Think of this as a basic introduction before we take a look at a more complex, practical, example of the Driver Pattern with a Selenium Web Driver in SpecFlow. The Driver Pattern with SpecFlow I don’t think of the The Driver Pattern in the context of say ‘Gang of 4’ classic design patterns. It doesn’t really fall into any of the 23 patterns that are defined by the ‘Gang of 4’. To be honest I find it more logical to think of it just as refactoring. Pulling out code, that might be duplicated, and making it available as it’s own...
Read more...
May 17, 2023
The factory design pattern solves one big issue – your clients having to know about all the different concrete class types that they may need to instantiate. Or to put it another way your clients just tell the factory what they need built and the factory returns an instance of the required class. We explain this in more detail below and/or you can watch this video. The Problem We're Solving Say you have a client application or class. In our example it's a simple console application. This console app is responsible for taking input from the user and then instantiating another class based on that input. The input provided creates an instance of ONE class from a range of similar...
Read more...
April 11, 2023
When writing automated tests with TestComplete so much depends on Object Identification. If you can’t get that right then you may as well forget everything else. Get the identification of your objects right then you’re building a good solid foundation for the automation scritps you’re developing. The key feature in TestComplete that supports your ojbect identification is the Namemap. A complicated little beast. Once mastered, will make all the difference to the reliability and maintainability of your scripts. What is this Namemap though? Well you can think of it as just a list of objects (web pages, buttons, text boxes, whatever) that you need your automation scripts need to interact with. It doesn’t just cover the WHICH objects. It’s also...
Read more...
February 13, 2023
We've been through the test automation framework build in Building a Test Automation Framework with TestComplete – Part 2. Now we're ready to start building out the automated tests. The following steps walk you through the creation of the test cases, building the folder structure and adding those checkpoints. And just for a final bit of entertainment we're going to look at some refactoring. Following on from the last post then… 19. Add Test Folders for all the Features 20. Add Tests to the FeatureOrderEntry Folder Add new Keyword tests (you don’t need to add test steps yet) for the scenarios you plan to test. 21. Create Your ‘EnterOrderValid’ Test In the workspace for the ‘EnterOrderValid’ test drag across all...
Read more...
If you've been through the Building a Framework with TestComplete post you'll understand what we're aiming for with this TestComplete framework build. In this post we walk you through each step for this build. Please note that we're NOT listing every single detail about creating this framework. This post is designed to highlight the process and main components you’ll need to develop in order to implement a keyword framework. You will need to use your own skills, existing TestComplete knowledge and experience to fill in some of the detail. 1. Create a new project Make sure you select “Use XPath and CSS selectors for web objects” 2. Add new folders Folder to add Pages Components Tests UtilsWebOrders UtilsBrowser 3. Project...
Read more...
February 1, 2023
This three part blog series (with videos) walks you through building a test automation framework using the Keyword testing functionality within TestComplete. Just tiny bit of code but pretty much everything using just keyword tests. This is about showing you how to build a structure that's easier to scale and maintain. It's about showing you how to avoid you projects turning into a plate of spaghetti. When we talk about ‘keywords’ we’re talking about the feature in TestComplete allows you to build tests with this graphical icon based, drag and drop approach to building automated tests. The approach to building automated tests that SmartBear have confusingly called ‘keyword testing’. This is not to be confused with the other more general...
Read more...
January 28, 2023
This is last part in our three part series on Integrating TestComplete with Azure DevOps. We've completed the preparation steps and we're now ready to build that first pipeline. To get this integration working we need to configure a pipeline then. And that pipeline we'll configure as we go through these steps.. 1. Select the Pipeline menu option 2. Create a New pipeline with the Yaml or Classic editor 3. Configure the following “tasks” for the pipeline Get SourcesSelect the repository and branch that holds your TestComplete code Configure Get Sources for TestComplete Azure DevOps Integration Agent JobDefine the automation job that will run on the agent and select the agent pool Configure the Azure DevOps Agent steps for TestComplete...
Read more...
January 18, 2023
In the first part to this three part series we looked at what an Integrated TestComplete Azure DevOps setup looked like. We set the context in that blog post so that we're ready to look what we need to configure and prepare to get this integration working. We take you through the following 4 preparation steps: Creating your ADO Git Repository Binding TestComplete to ADO Linking your tests between TestComplete and ADO Setting up your agent machine So this first step walks you through setting up a Git repository in your Azure DevOps project and show you how to commit your TestComplete project/code to this repository. We need our TestComplete code in our Azure Git repo as we'll build our...
Read more...
January 9, 2023
In this series of 3 posts we're walking you through the process of integrating TestComplete with Azure DevOps. In this post we walk you through the end-to-end process. In the 2nd post we show you how to set up, configure and prepare all the different components. Then in the 3rd post we talk you through constructing your first pipeline and integrating your TestComplete automation run into your release. The overall process looks like this: The core aspects of this setup being: Our TestComplete project is stored in an ADO Git repo. We map our TestComplete Test Items to ADO Test Cases. Pipeline is configured to execute tests on an agent Test results are fed back to an ADO test run...
Read more...