Wednesday, 25 June 2025

Shift Left and Shift Right Testing

There is always a debate which kind of approach is better for defect free (Early Detection) applications and its never ending.

One of the debates in recent times is about Shifting the focus from right to left, but is it really left is right?

How do we decide which is right approach (there is no way to follow single approach and say its right) but we can discuss and take in some of the concepts from each approach and follow it.

In this tiny blog we will comprehend what is shift left and shift right testing, its benefits and compare. 

What is Shift Left testing:

Shift Left Testing is typically carried out earlier in the software and system development lifecycle. It helps identify potential issues and bugs before they can become significant issues. It enables the team to spend less time debugging and more time concentrating on features and functionality. Shift-left testing averts all adverse effects that late testing could have, such as insufficient testing resources, undetected design, architecture, and requirement flaws, debugging challenges and problem resolution, and project delays. There are four ways to move tests to earlier stages of the software development cycle. These include model-based shift-left testing, traditional shift-left testing, incremental shift-left testing, and Agile/DevOps shift-left testing.

Benefits of Shift Left Testing:
The shorter feedback loops built into shift-left processes empower us in several ways. Defects can be found faster, fixes can be applied more efficiently, and lessons learned in one iteration can be applied in the next, to name a few
Early Detection of IssuesBy introducing testing and security checks early in the lifecycle, vulnerabilities are detected sooner, reducing the overall cost of fixing them.
Improved Collaboration: BDD fosters collaboration between developers, testers, and business analysts, ensuring security and functional requirements are well-defined.
Faster Delivery with Quality: Shift-Left improves quality while reducing development time, allowing for rapid yet secure code delivery.
Continuous Improvement: By integrating security at each step, organizations create a culture of continuous improvement, ensuring that software is secure, reliable, and aligned with best practices.
Whatever project management methodology or release cadence your team has, you can benefit from the shorter verification feedback loops from shift-left testing.


What is Shift Right Testing:

Shift right testing, also known as testing in production, focuses on conducting testing activities after the development process. It involves gathering insights from real user feedback and interactions after the software has been deployed. Developers then use those insights to improve software quality and come up with new feature ideas.

Benefits Of Shift Right Testing:
Real-time Feedbackthe sole purpose of shift right testing is to test with real data for real results instead of using simulated data. This brings back authentic feedback and even helps to uncover valuable insights on user preferences.
Improved User Experiencethe insights brought back from shift right testing sessions is translated into technical improvements for the software and boosts its business value. Going beyond just fixing “bugs”, now the dev team can also optimize certain features to bring users a better experience.
Continuous Improvementthe shift right approach encourages continuous testing and learning about the software, knowing that there is always room for optimization for the software as more and more features are added. Over time, these insights can even be “consolidated” into principles about the software and the business itself, serving as reference for strategy development.


Shift-left vs Shift-right:

When It Happens

Early stages of software development life cycle

Post-production, in the live environment

Objective

Early bug detection and prevention

Real-time monitoring and user feedback for improvements

Activities

Static code analysis, unit testing, code reviews

User acceptance testing, monitoring, feedback analysis

Emphasis

Prevention-oriented

Improvement-oriented

Test Environments

Development and testing environments

Production Environment

Collaboration

Developers, testers, QA teams

Developers, testers, operations, customer support

Iterative Approach

Yes

Yes


Conclusion:
By implementing both Shift Left and Shift Right Testing, organizations can achieve better collaboration between developers, testers, and operations teams, ultimately delivering a superior user experience.


Reference Links:


Wednesday, 5 February 2025

Simplifying Windows Networking

Essential IP Commands

In our fast-paced digital world, knowing the basics of networking can benefit everyone, not just IT professionals. Lately, I’ve been exploring Windows IP commands, and they’re game-changers for troubleshooting and enhancing network performance.

Why it matters:
Commands like ipconfig, ping, and tracert are fundamental tools for identifying and resolving network issues effectively.

 Key takeaways:
• ipconfig: Quickly view your IP and DNS configurations.
• ping: Test connectivity in seconds.
• tracert: Trace network routes to spot bottlenecks.

Whether you’re managing a complex IT environment or solving a home network issue, these commands are invaluable additions to your skillset. 

1. ipconfig

  • Basic Command: ipconfig
    • Displays basic information about all network interfaces, such as IP address, subnet mask, and default gateway.
  • Show detailed information: ipconfig /all
    • Provides a more detailed view, including the MAC address (Physical Address), DHCP status, DNS servers, etc.
  • Release IP Address: ipconfig /release
    • Releases the current DHCP lease for the network adapter.
  • Renew IP Address: ipconfig /renew
    • Renews the DHCP lease and obtains a new IP address.
  • Flush DNS Cache: ipconfig /flushdns
    • Clears the DNS resolver cache, which can help resolve DNS-related issues.
  • Display DNS Cache: ipconfig /displaydns
    • Displays the contents of the DNS resolver cache.
  • Set DNS Search Suffix: ipconfig /setclassid <adapter> <class_id>
    • Sets the DHCP class ID for a specific adapter.

2. ping

  • Ping an IP Address or Host: ping <hostname or IP address>

    • Sends ICMP echo requests to a host to check if it's reachable.
  • Example: ping google.com or ping 8.8.8.8

  • Ping with specific size: ping <hostname or IP address> -l <size>

    • Example: ping google.com -l 1000 sends a ping with a 1000-byte packet.
  • Set Ping Count: ping <hostname or IP address> -n <count>

    • Example: ping google.com -n 10 will ping the destination 10 times.

3. tracert

  • Trace Route to a Host: tracert <hostname or IP address>
    • Traces the route that packets take to reach the destination, showing each hop along the way. This can help identify network congestion or routing issues.

4. netstat

  • View Active Connections: netstat
    • Displays all active network connections, including the protocol (TCP/UDP), local address, foreign address, and state (e.g., ESTABLISHED, TIME_WAIT).
  • Detailed Output with Process Info: netstat -ano
    • Shows active connections and associated process IDs (PID).
  • Listening Ports: netstat -an | find "LISTEN"
    • Lists all ports in the "LISTENING" state on the machine.

5. nslookup

  • DNS Lookup: nslookup <hostname>
    • Queries DNS to get the IP address of a domain name.
  • Reverse DNS Lookup: nslookup <IP address>
    • Performs a reverse DNS lookup, returning the domain name associated with the given IP address.

6. route

  • View Routing Table: route print
    • Displays the current routing table of the computer, showing how packets are routed to different networks.
  • Add a Route: route add <destination> mask <subnet mask> <gateway>
    • Adds a new route to the routing table.
    • Example: route add 192.168.2.0 mask 255.255.255.0 192.168.1.1
  • Delete a Route: route delete <destination>
    • Removes a route from the routing table.

7. getmac

  • Get MAC Address: getmac
    • Displays the MAC (Media Access Control) addresses of all network interfaces on the computer.

8. netsh

  • Show Network Configuration: netsh interface ip show config

    • Displays the configuration of all network interfaces (IP address, gateway, DNS, etc.).
  • Reset TCP/IP Stack: netsh int ip reset

    • Resets the TCP/IP stack, useful for fixing network issues related to incorrect IP configuration.
  • Enable/Disable Network Adapter: netsh interface set interface "<Interface Name>" admin=disable (disable) or admin=enable (enable)

  • Change IP Address: netsh interface ip set address "<Interface Name>" static <IP Address> <Subnet Mask> <Default Gateway>

    • Manually sets a static IP address for an interface.
    • Example: netsh interface ip set address "Ethernet" static 192.168.1.100 255.255.255.0 192.168.1.1

9. arp

  • Display ARP Table: arp -a
    • Shows the ARP cache, which maps IP addresses to MAC addresses for devices on the local network.

10. netsh wlan

  • View Wireless Network Profiles: netsh wlan show profiles
    • Displays all saved Wi-Fi network profiles on the computer.
  • Show Wi-Fi Configuration: netsh wlan show interfaces
    • Displays detailed information about the currently connected wireless network.
  • Export Wi-Fi Profile: netsh wlan export profile name="<profile name>" key=clear
    • Exports a saved Wi-Fi profile to an XML file, which can include the saved Wi-Fi password.

11. telnet

  • Check Open Port on Remote Host: telnet <hostname or IP address> <port>
    • Tests if a specific port is open on a remote server.
    • Example: telnet example.com 80 checks if port 80 (HTTP) is open on the server.








Software Testing to Business Analyst

As soon as some one changes their career we will ask is it possible? why now? is everything ok? 

But the truth is we can unplug ,start over or change career paths anytime.

Coming to our topic moving from Software testing to Business Analyst its absolutely OK 
(if your passion is all about requirements)

Making the transition from a Software Tester to a Business Analyst (BA) can be a great career move, as both roles are crucial in the software development lifecycle but focus on different aspects. Here are some steps and considerations to help you make this career shift successfully:

Certifications can help validate your skills and make your profile more appealing to employers. 

Some options include:
As a tester, you might be more focused on technical aspects. To transition to a BA role, it’s important to understand how businesses operate and how technology aligns with business objectives. 

Some ways to learn this include:
If you're currently employed, try to transition into a hybrid role where you combine aspects of both testing and business analysis. Many organizations look for "Business Analyst with Testing Experience," where you can gradually take on BA tasks while continuing to contribute to testing.

You can also volunteer for BA-related tasks on current projects, such as gathering requirements, creating user stories, or working on process documentation.
Connect with current Business Analysts and ask about their day-to-day responsibilities and the challenges they face. A mentor can help guide you through the transition and provide advice on areas to focus on.

While learning theoretical concepts is important, hands-on practice is crucial.


1. Understand the Role of a Business Analyst

  • Primary Focus: A BA primarily works with stakeholders to gather requirements, analyze business processes, and ensure that the product or solution meets business needs. They act as a bridge between the technical team and business users.
  • Key Skills for BAs:
  • Requirements Gathering: Elicit, document, and prioritize business requirements.
  • Communication: Strong verbal and written skills to interact with different stakeholders.
  • Problem Solving: Identify gaps in business processes and suggest improvements.
  • Documentation: Use of various tools (e.g., JIRA, Confluence, etc.) to document requirements, user stories, and workflows.
  • Analytical Thinking: Ability to analyze complex business problems and define solutions.
2. Leverage Your Testing Experience
  • Understanding of SDLC: As a software tester, you’re already familiar with the Software Development Life Cycle (SDLC), which will help you in understanding the BA’s role in each phase.
  • Attention to Detail: Your ability to spot bugs and test cases translates well into requirements gathering and process analysis. As a BA, attention to detail will be key when documenting business needs and ensuring accuracy.
  • User Stories & Acceptance Criteria: Your experience with writing test cases and validation scenarios can be an asset when drafting user stories, defining acceptance criteria, and ensuring that solutions meet business requirements.
3. Learn Key Business Analyst Skills
  • Business Analysis Techniques: Learn techniques like SWOT analysis, process mapping, use case diagrams, and user story creation.
  • Requirements Documentation: Familiarize yourself with different formats for documenting requirements such as BRD (Business Requirements Document), FRD (Functional Requirements Document), or user stories in an Agile setting.
  • Modeling Tools: Tools like Microsoft Visio (for process flow diagrams) and BPMN (Business Process Model and Notation) can be helpful in the BA role.
  • Stakeholder Management: Learn how to work with both technical and non-technical stakeholders, as this is a key responsibility of the BA.
4. Explore Certifications
  • Certified Business Analysis Professional (CBAP) by IIBA
  • Entry Certificate in Business Analysis (ECBA) by IIBA (great for beginners)
  • Agile Business Analyst Certifications (if you are working in an Agile environment)
  • Certified ScrumMaster (CSM) or Certified Scrum Product Owner (CSPO) if you're interested in Agile methodologies.
5. Gain Knowledge of Business Operations
  • Studying Business Process Models: Learn how businesses streamline their processes to improve efficiency.
  • Domain Knowledge: If you are aiming for a specific industry (e.g., finance, healthcare, retail), understanding the domain will be valuable for understanding how the technology solution impacts business operations.
6. Start With Hybrid Roles

7. Networking and Mentorship

8. Hands-On Experience

  • Volunteer: Take on a business analysis task for a small project or a side project.
  • Work on Mock Projects: Create your own requirements documents, process models, and user stories to practice.
9. Job Search and Positioning Yourself
  • Resume and Portfolio: Update your resume to highlight transferable skills (requirements gathering, writing test cases, understanding of business processes). If possible, provide examples of any BA work you've done, even in a limited capacity.
  • Target Entry-Level or Junior BA Roles: Initially, you may need to apply for entry-level BA positions as you transition. Once you gain experience, you can move to more senior BA roles.
Transitioning from a software tester to a business analyst involves leveraging your existing skills, learning new techniques, and gaining experience in requirements gathering and business processes. With a combination of self-study, certifications, and practical experience,you can successfully make this career shift.








"Do a quick QA on this"

As a tester, you've probably heard this phrase from Product Managers, Project Managers, or Tech Leads. But let’s be honest—there’s often nothing “quick” about it.

Is it a new feature? It needs proper testing to ensure all user requirements are met.
Is it a bug fix before deployment? It requires careful retesting and regression testing to maintain product stability.
Instead of saying “Quick QA,” why not ask for an estimated effort? This way, testers can set realistic timelines and ensure quality without unnecessary pressure.
After all, the goal of QA is to ensure a quality product, and rushing it isn’t always the best path. Let’s value the effort it takes to do things right!

if at all its unavoidable delivery , then Risk analysis is the best option as it plays vital role in Software Testing, to determine where testing should be focused.
















Thursday, 30 January 2025

Ways to Levarage Software Testing with AI

By now we all know what is AI and its capabilities, but as a software testers we should find a  ways how we can levarge that powerful tool to our benefit.

Some of Possible ways to use in our testing:When it comes to software testing, AI uses machine learning and deep learning algorithms to analyze code, user behavior, and test results. AI can enhance test automation in several key ways:

  • AI can analyze massive amounts of data to detect patterns and generate optimized test cases. This helps focus testing efforts on critical areas.

  • AI can automatically generate realistic test data, eliminating the need for manual data creation to expand the scope of testing scenarios within an application.

  • AI systems can adapt and update tests as products change to ensure continuous testing coverage. They can modify tests based on updates to applications under test.

  • AI can analyze how real users interact with an application to generate tests that simulate common user journeys and workflows. This helps ensure key user paths are well-tested.

  • AI can accelerate the development of automated tests through “low-code” platforms that make test creation more intuitive and accessible to non-engineers. This expands the scope of possible testing.

In Simple terms:Faster and Smarter Test Creation,Automated Test Data Generation,Effortless Test Maintenance,Enhanced Visual Testing

AI testing tools:(We have a plenty of information available in online about below tools and how we can use them according to our application requirements)

  • MablUses machine learning to adapt to application changes and ensure test coverage
  • TestimUses AI to self-heal test scripts, making it easier to maintain large-scale testing 
  • ApplitoolsUses machine learning to compare application screens and detect visual anomalies
  • FunctionizeUses AI and ML technology to test complex applications 
  • TestRigorCreates, edits, and updates tests of any complexity
  • Katalon StudioSupports web, API, mobile, and desktop applications
  • accelQA cloud-based codeless AI testing automation tool that automates API & UI testing 

Ofcourse we need to consider when we decided to use AI for testing:

  • Functionality and featuresWhether the tool can cover most of your test scenarios
  • UsabilityHow easy it is to adopt and use
  • Value for moneyThe cost, ease of setup, speed of test creation, and maintenance

We do have cerifications avaialbe for testing with AI:

Certified Tester AI Testing (CT-AI)

use below link for more details:

https://www.istqb.org/certifications/certified-tester-ai-testing-ct-ai/