Follow up on the Test Automation Discussion – Bringing in the Performance View

Alex Podelko

There was a rather heated discussion around A Context-Driven Approach to Automation in Testing by James Bach and Michael Bolton (referred below as the article and the authors – other references would be explicit). Here are a couple of places where it got fiercely attacked Reviewing “Context Driven Approach to Automation in Testing” by Chris McMahon. and Open letter to “CDT Test Automation” reviewers as well as in many other different places.

PerformanceObserver and Paint Timing API


In a recent post about Chrome 60 Beta , Google announced the support of the Paint Timing API to get metrics on when your page starts rendering and when the user gets content that can be consumed (more info on the definition of the events below). Here I’m going to describe this new API a bit and show you how to use it.

Google 100

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

How to design a RESTful API architecture from a human-language spec

O'Reilly Software

A process to build RESTful APIs that solve users’ needs with simplicity, reliability, and performance. Every piece of software exists to solve a real-world problem. Directly or indirectly. Most web APIs are consumed by client applications running on PCs, mobile devices, etc., which in turn are used by humans. Despite being consumed directly by machines, APIs are made to satisfy the needs of human beings, so designing them should follow a user-centered process, but often it doesn’t.

Software Developers Should Have Sysadmin Experience

Professor Beekums

Being? ?a? software? ?developer? developer? ?and? and? ?being? being? ?a? system? ?administrator? administrator? ?are? are? ?very? very? ?different? different? ?things.? things.? ?Many Many folks? ?lump? lump? ?the? the? ?two? two? ?professions? professions? ?together,? together,? ?but? but? ?the? the? ?skillsets? skillsets? ?do? not? ?overlap? overlap? ?much.? much.? ?Software Software developers? ?write? write? ?code.? code.? ?System? System? ?administrators? administrators? ?maintain?

Redis vs Memcached

Software Architecture

Memcached is in-memory key value store whereas Redis is in-memory data structures store. Memcached supports only string data type which is ideal for storing read-only data. Redis supports almost all types of data. Redis can also be used as a messaging system such as pubsub. Memcached cannot be used as a pubsub system. Memcached is more memory efficient than Redis. Redis is more memory efficient only after you use hashes. Memcached is volatile store and Redis is non-volatile.

Expanding the Cloud – An AWS Region is coming to Hong Kong

All Things Distributed

Today, I am very excited to announce our plans to open a new AWS Region in Hong Kong! The new region will give Hong Kong-based businesses, government organizations, non-profits, and global companies with customers in Hong Kong, the ability to leverage AWS technologies from data centers in Hong Kong. The new AWS Asia Pacific (Hong Kong) Region will have three Availability Zones and be ready for customers for use in 2018. Over the past decade, we have seen tremendous growth at AWS.

The average web page is 3MB. How much should we care?

Speed Curve

A couple of month ago, someone asked if I'd written a page bloat update recently. The answer was no. I've written a lot of posts about page bloat, starting way back in 2012, when the average page hit 1MB. To my mind, the topic had been well covered. We know that the general trend is that pages are getting bigger at a fairly consistent rate of growth. It didn't feel like there was much new territory to cover.

More Trending

Brilliant Jerks in Engineering

Brendan Gregg

Notice board at Ericsson, Stockholm (pic by DeirdreS ). Many of us have worked with them: the engineering jerk who is brilliant at what they do, but treats others like trash. Some companies have a policy not to hire them (eg, Netflix's "[No Brilliant Jerks]", which was one of the many reasons I joined the company). There's also the "[No A **e Rule]", popularized by a bestselling book of this title, which provides the following [test]: 1.

Shift-Left Testing in the Enterprise and the Case for Open Source


Why continuous testing and open source are a perfect match I recently visited the offices of CA Technologies (one of Abstracta’s partners) in Santa Clara, where I had the chance to discuss shift-left testing, continuous testing, and why and how to turn to open source. The post Shift-Left Testing in the Enterprise and the Case for Open Source appeared first on Abstracta Software Testing Services.

Can You Afford It?: Real-world Web Performance Budgets

Alex Russell

TL;DR: performance budgets are an essential but under-appreciated part of product success and team health. Most partners we work with are not aware of the real-world operating environment and make inappropriate technology choices as a result. We set a budget in time of <= 5 seconds first-load Time-to-Interactive and <= 2s for subsequent loads. We constrain ourselves to a real-world baseline device + network configuration to measure progress.

Excited by the Upcoming CMG imPACt Performance and Capacity Conference

Alex Podelko

I am very excited by the upcoming CMG imPACt performance and capacity conference. This year it would be held on November 6-9, 2017 in New Orleans, LA. It is only such vendor-neutral, 4-day, 5-track conference devoted completely to performance, capacity, scalability, and adjacent topics. It is organized by CMG (Computer Measurement Group) , a not-for-profit, worldwide organization of performance and capacity planning professionals.

IoT 109

Byzantine Fault Tolerance


In distributed computer systems, Byzantine Fault Tolerance is a characteristic of a system that tolerates the class of failures known as the Byzantine Generals' Problem ; for which there is an unsolvability proof. The Byzantine Generals' Problem. On July 5th 1982, Leslie Lamport (initial LaTeX developer, Microsoft Researcher and winner of the 2013 Turing Award), Robert Shostak and Marshall Pease published a paper named The Byzantine Generals' Problem.

Becoming an accidental architect

O'Reilly Software

How software architects can balance technical proficiencies with an appropriate mastery of communication. One of the demographics Brian and I noticed in the several O'Reilly Software Architecture Conferences we've hosted is the Accidental Architect : someone who makes architecture-level decisions on projects without a formal Architect title. Over time, we're building more material into the conference program to accommodate this common role.

Death Marches Aren't Worth It

Professor Beekums

Imagine you’re a manager on a large software project. You’ve got about a month to go before the intended deadline and your team appears to need at least 3 more months before being done. What do you do? Many come under the temptation to start a so called “death march”. It essentially means having folks work as many hours as possible: nights, weekends, whenever.

Data Consistency in Apache Cassandra — Part 1

Software Architecture

For a quick introduction on what Apache Cassandra is, take a look here. Consistency is a significantly large topic to cover in one part. So I’ll be completing it in 3 parts. This first part defines consistency in general, write consistency, read consistency, consistency levels (CL), immediate, eventual and tunable consistency. Consistency The topic and concept of consistency is very important when you work with a distributed database like Cassandra.

Improving Customer Service with Amazon Connect and Amazon Lex

All Things Distributed

Customer service is central to the overall customer experience that all consumers are familiar with when communicating with companies. That experience is often tested when we need to ask for help or have a question to be answered. Unfortunately, we've become accustomed to providing the same information multiple times, waiting on hold, and generally spending a lot more time than we expected to resolve our issue when we call customer service.

I've joined SpeedCurve! Here's why

Speed Curve

TL;DR. If Mark and Steve invited you to work with them, what would you say? Exactly. Long version. Okay, I have to elaborate a bit more about why I’m ridiculously excited about working with Mark and Steve. My first foray into the performance space was at the Velocity Conference in 2009. If you had told me then that someday I’d be working with that tall guy rocking the main stage, I would’ve thanked you for the kind words… while secretly thinking you were nuts.

Delete an inline function, save 794 kB

Randon ASCII

In the previous episode of “ Simple Changes to Shrink Chrome ” I discussed how deleting ‘const’ from a few key locations could lead to dramatic size savings, due to a VC++ compiler quirk. In this episode I’ll show how deleting an inline function definition can lead to similar savings. The savings this time are less important as they are mostly in the.BSS segment, but there are also some modest code-size savings, and some interesting lessons.

C++ 54

Linux Load Averages: Solving the Mystery

Brendan Gregg

Load averages are an industry-critical metric – my company spends millions auto-scaling cloud instances based on them and other metrics – but on Linux there's some mystery around them. Linux load averages track not just runnable tasks, but also tasks in the uninterruptible sleep state. I've never seen an explanation. In this post I'll solve this mystery, and summarize load averages as a reference for everyone trying to interpret them.

When is the Best Time to Start Performance Testing?


Waterfall vs Agile Performance Testing When taking into account the performance of existing systems or ones built from scratch, teams have to determine at what point in the development process they are going to benefit most from running performance tests. I’ve spoken about this topic. The post When is the Best Time to Start Performance Testing? appeared first on Abstracta Software Testing Services. Performance Engineering agile Performance Testing SDLC waterfall

Cross Browser Testing Tools & Tips


Users have many different devices and browsers at their disposal today. With such a wide variety of tablets, cell phones, and an increasing number of legacy browsers, software teams are challenged to make sure their products work sufficiently across different browsers and devices. This is where cross browser testing comes into the picture. What Is Cross Browser Testing? Cross browser testing involves testing an application across a variety of browsers to ensure it behaves consistently.

The Role of Recording in Load Testing Tools

Alex Podelko

An interesting discussion started around a very good post Open Source Load Testing Tool Review by Ragnar Lönn. Somehow the latest comment, which I got in my e-mail, didn’t get published. So I decided to copy the discussion as is and publish the comment (and my answer) here. Check the original post (as well as many other great posts) following the link above – but the discussion below is somewhat independent.

What is Serverless Architecture?


Let's talk about the elephant in the room; Serverless doesn't really mean that there are no Software or Hardware servers. It just means that from Software Development perspective, servers are abstracted and outsourced to another entity, so you don't need to worry about it. Serverless Computing is also known as FaaS (Function as a Service). Serverless is currently a hot topic in many modern architectural patterns. You can imagine Serverless as Microservices broken down further , per function.

How a RESTful API server reacts to requests

O'Reilly Software

Learn how to properly design RESTful APIs communication with clients, accounting for request structure, authentication, and caching. This series of articles shows you how to derive an easy-to-use, robust, efficient API to serve users on the web or on mobile devices. We are using the principles of RESTful architecture over HTTP. In the first piece, we started from a list of specs for a simple bike rental service, defining URLs and the HTTP methods to serve the app.

Cache 67

Why I Don't Prepare For Job Interviews

Professor Beekums

As a candidate, I have only worked with an external recruiter once. I found it interesting that they told me almost the exact questions to expect during my interviews. After the interview, they asked me what questions I had to answer. I assume this was to improve their data for future candidates. I’ve been told that this is both common and considered a good thing. Candidates who have a chance to prepare for the interview are more likely to succeed


Data Consistency in Apache Cassandra — Part 2

Software Architecture

In part 1 , I introduced the basics of consistency in general, write consistency, read consistency, consistency levels (CL), immediate, eventual and tunable consistency. In this part 2, I will talk about how to achieve immediate and eventual consistency using different write and read consistency levels.

Tuning 100

A Decade of Dynamo: Powering the next wave of high-performance, internet-scale applications

All Things Distributed

Today marks the 10 year anniversary of Amazon's Dynamo whitepaper , a milestone that made me reflect on how much innovation has occurred in the area of databases over the last decade and a good reminder on why taking a customer obsessed approach to solving hard problems can have lasting impact beyond your original expectations. It all started in 2004 when Amazon was running Oracle's enterprise edition with clustering and replication.

Woohoo! I'm helping build SpeedCurve

Speed Curve

I’m super excited to be able to say that I’ve joined Mark, Steve, and Tammy at SpeedCurve! I’ve watched how Mark has shown over the last couple of years that performance monitoring doesn’t have to be dry and data-heavy; it can be insightful, interactive, and actionable. I’ve also been a follower of Steve’s work for many years. In fact, I should probably thank Steve for providing me with the knowledge that got me interested in web performance in the first place!

Why OpenStack is like a Crowdfunded Viking Movie


Everybody ‘gets’ the concept of a Viking Movie. It’s got boats, men in hats with horns, lots of fighting and often a one way trip to Valhalla. So imagine you decide to crowdfund one. Things start off really well, and then turns into a mess, because the people committing resources all want their own distinct versions, but many of the competing memes are hard to reconcile.

Apache Cordova And Ionic Framework Apps Are Not Native Mobile Apps

The Polyglot Developer

If you’ve been keeping up with my content since the birth of The Polyglot Developer , you’ll know that I was once a huge advocate of Apache Cordova development using frameworks like Ionic Framework. Having been a web developer and coming from native Android development with Java, cross-platform development using hybrid technologies seemed like a logical next step. Fast-forward to now, I’m no longer using Apache Cordova with Ionic Framework and have gone back to native development.

Today’s New Challenges for Performance Engineers and How to Deal With Them


From the Cloud to CDNs, performance testing just isn’t what it used to be. If you are a performance engineer, you may have noticed that today’s new technologies and the challenges that come with them are disrupting the way in which we used to do. The post Today’s New Challenges for Performance Engineers and How to Deal With Them appeared first on Abstracta Software Testing Services. Agile Testing Performance Engineering CDN CI/CD cloud Gatling HTTP/2 jenkins Taurus TestingUY

What is load testing?


Load testing is a form of non-functional testing that is carried out to understand the behaviour of an application under a specific user load. A load test is done by simulating the real time user load on the application under test, and this determines how the application responds when multiple users hit the server simultaneously and it reveals the application’s response time, CPU and memory usage, network and bandwidth usage. Why Load Testing?

The Difference Between GTmetrix, PageSpeed Insights, Pingdom Tools and WebPagetest


If you’ve used any of these tools, you may wonder why the results are sometimes different. The post serves to highlight the key differences in these performance analysis tools. Optimization Explained google lighthouse page optimization PageSpeed PageSpeed Insights Pingdom Pingdom Tools WebPagetest yslow

Analyzing Software Failure on the NASA Mars Climate Orbiter


The Mars Climate Orbiter was a robotic space probe manufactured by Lockheed Martin and launched by NASA’s JPL on December 11, 1998. The purpose of this probe was to study the Mars climate, atmosphere, and surface changes and to act as the communications relay in the Mars Surveyor '98 program for Mars Polar Lander. The total cost of this mission was $327.6 million.

Handling user-initiated actions in an asynchronous, message-based architecture

O'Reilly Software

A simple framework for implementing message-based, user-initiated CRUD operations. A message-based microservices architecture offers many advantages, making solutions easier to scale and expand with new services. The asynchronous nature of interservice interactions inherent to this architecture, however, poses challenges for user-initiated actions such as create-read-update-delete (CRUD) requests on an object. CRUD requests sent via messages may be lost or arrive out of order.

The Problem With Heroes In Software Development

Professor Beekums

Imagine your web application goes down in the middle of the night. It’s 2 AM, but your business is global. You have users in every time zone. They’re angry. They’re unable to purchase things on your website or are canceling their subscriptions. Money is being lost every minute your web application is down. Suddenly, one of your developers is on the case! This developer shows a little anxiety and curses a lot (it is 2 AM after all), but eventually the problems are resolved

Data Consistency in Apache Cassandra — Part 3

Software Architecture

In part 2 , I explained how to achieve immediate and eventual consistency using different write and read consistency levels. In this part, I’ll go a bit deeper into understanding different configuration settings and consistency levels. Immediate Consistency with Write CL = ALL, Read CL = ONE The write request is sent to all replicas. Complete write operation is considered successful when all replicas respond a write success.