Shift Left Non Functional Requirements Testing

Shift Left Non Functional Requirements Testing

Non Functional Requirement (NFR) Testing has been always considered as narrow definition of Performance, Scalability, Security and Load testing. Ask Leadership about NFR testing and they will simply say, Oh! We are doing Performance and Security testing at the end.

Seriously, are you kidding me??

Shift Left is not a new idea. Even in the era of early 70s and 80s, programmers knew that it was better to start testing early. Just that there was no designated tester role at that time. Questioning and testing happened by the same people that wrote the code, and it happened all through the project. It was the new business opportunities with testing paradigm, productivity, cost saving and an unfortunate misunderstanding of the waterfall model that got us the independent testing teams and the time lag between dev and test we have today.

Consider software being constructed in agile way. The foundation is laid by a strong architectural discussion, and everything starts with a big bang Agile way. In any architecture, the Architects and Designers make design choices and decisions, be it in technology or the solutioning. And like real life every choice has consequences – positive or negative.

As a Tester we need to use our skills of hypothesis, virtualization, use simulation tools to provoke failures early. We need to ensure to provide our recommendations and insights for the design choices made and test the system early for probable failures.  

Let’s talk about the few NFR parameters, understand them in simple manner and then we will see how and why they should be injected early in the cycle.

1.      Reliability: The literal definition is the quality of being trustworthy or of performing consistently well. How reliable your system is designed?

2.      Resiliency is the capability to recover from Failure. As a human being how, I recover from somebody who abuses me. For e.g. If my boss scolds me today and I bounce back and still stay passionate, I’m resilient. If I don’t turn up in office the next day, I’m not resilient. If I don’t turn up for a week or a month, I’m not available. Bend and break is not resilient, bend and bounce is resilient. Systems must be resilient and as testers we need to ensure they are.

3.      Scalability is the property of a system to handle the growing capacity of work by adding resources to the system. Consider an example of building under construction.

4.      Performance: how a system performs in terms of responsiveness and stability under a particular workload or increasing load.

5.      Security testing: Open ports, weak user credentials, unsafe user privileges and unpatched applications are types of vulnerabilities that are prone be hacked.

Industry experts keep talking about a lot of theoretical and practical improvement about software quality. What we really need is early discovery of runtime architecture behaviors, which has the potential to fail under specific conditions. Focus on “Discover”, “Experimentation” an empirical approach. Lot of human element in it apart from technology perspective.

With the use of cloud-based containerized deployments, test environments can easily be scaled up temporarily to production like environments. Cloud platforms are having inherent features and tools available to monitor every user interaction across all touchpoints including IoT devices, every line of code, every path traversed, every database query, and the health of each component to ensure optimized application performance and flawless user experiences. This helps to identify bottlenecks and fix the issues in timely manner. Clouds also provide features to get immediate, correlated and contextual alerts to quickly resolve performance issues.

Modern infrastructure is already taking care of structural considerations, we need to think how we can involve early in the cycle and start giving the recommendations or provide insights to figure out the potential failures.

Shifting left is not only a term to be discussed in conversation but what is needed is teams working in an organized and optimized manner, involving everybody and using their skill to think how we are developing better products. Life would be more interesting when we are collaborating for a common goal to deliver.

要查看或添加评论,请登录

Ritu Chowdhary的更多文章

  • Leading in the Age of AI: Conducting the Future of Work

    Leading in the Age of AI: Conducting the Future of Work

    Imagine stepping onto the stage of a grand concert hall. In front of you is an orchestra—hundreds of instruments, each…

    10 条评论
  • Kindfulness

    Kindfulness

    A lot of people trying to practice meditation struggle with keeping the mind still. No matter how hard they try, they…

    4 条评论
  • Pursuing my passion through leadership at FIS?

    Pursuing my passion through leadership at FIS?

    As the Director of Quality Assurance, I lead the quality, compliance and audit function for the Global Business Process…

    5 条评论
  • The Sandwich Method

    The Sandwich Method

    When we do need to criticize people, what often happens is that we do it so unskillfully that they get offended, we…

    6 条评论
  • Test Less Assure More

    Test Less Assure More

    Before I start talking about testing in the context of software, let’s consider an example. Ever noticed the security…

    1 条评论
  • How is Digital transformation impacting QA?

    How is Digital transformation impacting QA?

    We live in a world where everything is connected and equally excellent. Science fiction is becoming science fact, think…

    2 条评论
  • Why is it IMPORTANT to build Community of Practice in an Agile Organization?

    Why is it IMPORTANT to build Community of Practice in an Agile Organization?

    Definition of CoP, as per wiki – It is a group of people who share a craft or a profession or a concern or a passion…

    2 条评论
  • Service Virtualization to accelerate your Digital Transformation

    Service Virtualization to accelerate your Digital Transformation

    In the application economy, all businesses are going towards adding Digital components to their products and services…

    4 条评论
  • Pair Programming in Agile World

    Pair Programming in Agile World

    Definition Pair programming is a technique in Agile Software Development wherein two programmers share a single…

  • Cloud Migration – Replatform, Refactor, Modernize?

    Cloud Migration – Replatform, Refactor, Modernize?

    In the world of digital transformation when more of the infrastructure and applications are moving to Cloud, one of the…

    1 条评论

社区洞察

其他会员也浏览了