Posts

Behavior Driven Testing - Focus on behavior and not just functionality!

Traditionally, software testing teams always focused on functional and system verification of the product. While this is good in terms of gaining confidence in release readiness of your product, it may not help answering two important questions: 1. What product has is what customer wants? (Requirements traceability) 2. Focus on customer use-cases So how to fix those issues? Behavior Driven Testing (BDT) holds a key! So what is BDT? In the simple terms, its a derivative of Behavior Driven Development (BDD) methodology. The idea behind BDD is to enable use of ubiquitous language, called Gherkin which lets you write all your artifacts in expressive english. All software development projects starts with capturing of requirements and it is usually done by business analysts. When requirements are frozen, designers & developers create user stories for their development sprints. QA teams create test cases for their verification. Traditionally all these artifacts (highlighted in bold) ar

When to start Performance Testing?

While, it is ideal to start performance testing as soon as there is a confidence in stability of the system under test; that shouldn't be an entry criteria always. With that being said, doing performance testing after achieving the desired stability will keep the testing outcome clear and precise. In case of modern, distributed systems; doing performance testing at independent component level shall be right thing to do. For example: Backend can be tested for its overall response/latency measurement and GUI can be test doubled and verified for its overall responsiveness under various conditions, which you can create in your test environment (Ex. high latency network links, slow responding backend under certain load conditions etc.). This strategy shall give you the performance assessment at individual unit level and its good to know baseline & benchmark of each of the component. So when you run end-2-end performance tests after integration, identifying bottlenecks could be relat

Smart Testing – In the age of Machine Learning!

Image
                 Artificial Intelligence and Machine Learning are becoming wide spread across various industries. It plays a vital role in developing sci-fi sounding stuff such as Self driving cars and more practical things that touch human lives almost every day, like Voice assistants, Chatbots, Smart power grids etc.   In Software testing, transition from traditional approach to CI/CD driven DevTestOps model is essential to cope up with increased release cadence. Test automation has helped keeping up with the required delivery speed, however adapting AI/ML capabilities in test automation will be a go-forward approach.   Evolution of Software testing To begin with, let’s review how Software testing has evolved over past few years.   As testing evolved, so does the tools & techniques. However to keep up with the pace of change in the technology, testing strategies must reinvent and bring in required change.    Current challenges in Software Testing From days of slow paced deliverie

What DevOps mean to QA/Test?

DevOps - as it stands for "Development" + "Operations" is a buzz word these days and everyone is trying to get some insight into it. As exciting it may sound, many in the test department has a common question - "Where do they stand in the whole premise of DevOps?". The question is very valid and it needs to be dissected thoroughly to know what really is there in store for QA engineers. Traditionally QA has been divided into two categories - 1) Manual 2) Automation. While large population of the QA fraternity was involved in manual work initially, many started doing automation in their respective domains. Whether to do manual testing or automation is largely dependent on type of technology being used and other factors such as available skills within the test organisation, budget and most importantly organisational culture; in this case, how well the innovation is promoted. Now going back to our original question; Test Automation certainly has a very

Docker: What is it? How can it be used in Testing?

Everyone's talking about Docker now a days! There are plenty of use cases it has in various different areas of technology domain. First let's get to know what Docker is! Docker is a container virtualization technology, which does not require any hypervisor to run it. Strange, isn't it? Well, not really… here is how it works! Docker relies on Linux Containers (a.k.a. LXC), which is a pretty old implementation of container technology. LXC uses two of the Linux Kernel capabilities: i) Cgroups ii) Namespaces Cgroups enables the system resource allocation, isolation; such as Memory and CPU etc. while Namespaces let each of the container to run in an isolated space with its process isolation capability, without interfering with other containers on the same system. The result - You can run large number of containers on your system. The only limiting factor will be your host system's resources! Now what makes Container Virtualization differ from Virt

Network Storage - A Primer

We all are living in an Information age. We have all our devices connected and even a bigger human network sharing data in the form of ideas, thoughts with each other. We need a place where we can store all this data, access it as and when we want and get rid of it after the purpose is achieved. Traditionally data have been stored on following devices - Hard Disk Drive: A block device comes with every computer out there… Floppy disk: Probably you can see one in a computing museum now a days CD/DVD: More advanced for of floppy; and now becoming obsolete pretty fast USB: A flash device which is handy Now some of the above mentioned devices are not in use these days, other still are! But all these devices have one common drawback; a limited storage space! There comes the Network('ed) Storage; which sits on your network and stores/serves to all your data access needs. Let's dive deeper in this fascinating world of storage systems. Typ

Storage Testing : Getting Started!

Testing Network Attached Storage (NAS) and Storage Attached Network (SAN) are complex yet interesting topics. Although there are various vendors and products available in this space, at the core of the testing stack it all boils down to validating following things – 1                Protocols      Filesystem      Network      Security     M anageability      Proprietary features This article will mostly cover things at a high level that you may want to include in NAS testing and can be used as a point of reference for developing test plans and creating test cases. First things first! As with any other product testing, the Storage testing begins with requirements gathering and understanding the product under test. By doing requirements gathering you would be able to collect all the necessary information to scope out your QA effort and carry out your test cycle. From the testing point of view, following things would be of a high importance to know – ·