<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Sudhir Shetty on Medium]]></title>
        <description><![CDATA[Stories by Sudhir Shetty on Medium]]></description>
        <link>https://medium.com/@sudhir.shetty?source=rss-888166ad862------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*yZPv5dY0YBW2CfNivV8pVw.png</url>
            <title>Stories by Sudhir Shetty on Medium</title>
            <link>https://medium.com/@sudhir.shetty?source=rss-888166ad862------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 17 May 2026 10:31:00 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@sudhir.shetty/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Integration Testing]]></title>
            <link>https://medium.com/@sudhir.shetty/integration-testing-265a19ebd91?source=rss-888166ad862------2</link>
            <guid isPermaLink="false">https://medium.com/p/265a19ebd91</guid>
            <category><![CDATA[integration-test]]></category>
            <category><![CDATA[quality-engineering]]></category>
            <dc:creator><![CDATA[Sudhir Shetty]]></dc:creator>
            <pubDate>Tue, 16 May 2023 07:30:47 GMT</pubDate>
            <atom:updated>2023-05-16T07:30:47.507Z</atom:updated>
            <content:encoded><![CDATA[<h4>What are the business needs of integrating 2 or more software systems?</h4><p>The business needs could be any — the merging of 2 firms and so their software systems, the need to comply with regulation, to save costs, to offer flexibility, to have a better customer experience, to improve productivity and to allow seamless data flow.</p><h4>What are the different ways of integrating 2 or more software systems?</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QZ-T2ItOjmuoM4Dk-655Kg.jpeg" /><figcaption>Software Integration Methods</figcaption></figure><h4>What are some of the ways of testing the integration of 2 or more software systems?</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Egqd9wZzXm2ATLK_4IY1Rg.jpeg" /><figcaption>Integration Testing Methodologies</figcaption></figure><h4>What are the some of the challenges in integration testing?</h4><p>Lack of information of the system being integrated to as well as no access to the code are impediments, but a well developed test methodology based on the specifications of the system can lead to effective testing in an application context which was completely unknown when the system was developed.</p><p>#components #integrationtesting #qualityengineering</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=265a19ebd91" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Test Maturity Model TMMi]]></title>
            <link>https://medium.com/@sudhir.shetty/test-maturity-model-tmmi-2b2d7b87b344?source=rss-888166ad862------2</link>
            <guid isPermaLink="false">https://medium.com/p/2b2d7b87b344</guid>
            <category><![CDATA[tmmi]]></category>
            <dc:creator><![CDATA[Sudhir Shetty]]></dc:creator>
            <pubDate>Sat, 06 May 2023 11:14:16 GMT</pubDate>
            <atom:updated>2023-05-06T11:14:16.509Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JmhAe5rTSNqiCCGgx73q9w.jpeg" /><figcaption>The 5 stages of TMMi</figcaption></figure><p>Despite numerous efforts to improve software quality over the years, the software industry still struggles to produce flawless software. It’s clear that achieving a higher level of product quality requires a greater level of testing maturity. With the growing awareness of the cost of poor testing, firms are investing more resources in software testing and finding ways to conduct testing more effectively and efficiently. One way they’re doing this is by making improvements to their testing processes.</p><p>TMMi has become a popular means of achieving this. Firms choose TMMi primarily for improving the quality of their product, reducing the risk associated with the product, making the testing process more efficient, comparing their testing practices to an international standard, and raising the profile of their testing team.</p><p>Firms that use TMMi have reported various benefits, including improved product quality (test effectiveness), increased test efficiency, shorter test execution times, and a higher Defect Detection Percentage.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2b2d7b87b344" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[DevSecOps: Continuous Security Test]]></title>
            <link>https://medium.com/@sudhir.shetty/devsecops-continuous-security-test-ffafddd8a6ba?source=rss-888166ad862------2</link>
            <guid isPermaLink="false">https://medium.com/p/ffafddd8a6ba</guid>
            <category><![CDATA[devsecops]]></category>
            <category><![CDATA[quality-engineering]]></category>
            <category><![CDATA[security-testing]]></category>
            <dc:creator><![CDATA[Sudhir Shetty]]></dc:creator>
            <pubDate>Sat, 29 Apr 2023 07:26:12 GMT</pubDate>
            <atom:updated>2023-04-29T07:26:12.025Z</atom:updated>
            <content:encoded><![CDATA[<p>With the emergence of Software as a Service and agile development methods, we can now test and deploy software more frequently to meet customer demands quickly. However, the old approach of testing security in silos and doing it infrequently is no longer effective. That’s why we now have DevSecOps, which emphasizes continuous security testing throughout the software development lifecycle.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*imwGt_ko_C9l2Xsp7nG-zQ.jpeg" /><figcaption>DevSecOps</figcaption></figure><p>Security testing can be either performed statically or dynamically. The dynamic way is mimicking how an actual bad actor may get into the system. Dynamic testing can be categorized into the below 3</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rHddNgf_A5WTaE9nlX1r7w.jpeg" /><figcaption>Different Types of Security Testing</figcaption></figure><p>Web Application Security Testing involves exploring the whole application in order to determine all URLs/resources available, then performing malicious requests against every identified resource and evaluating every response of the application in order to determine possible security issues on the targeted URL.</p><p>API Scanning Security Testing involves testing of every endpoint with a focus on authentication, input validation, or error handling. The testing includes a wide range of input data, from authentication credentials to potentially harmful payloads like SQL injection.</p><p>Behavior Driven Security Testing helps in identifying security vulnerabilities that could be targeted through multiple entry points in the system. This approach combines the above web application and api scanning security tests, to simulate attack scenarios that a hacker might use.</p><p>Integration into CI/CD does not differ much from how other tests are orchestrated to build/ run through CI/ CD. There is decision making involved in which security tests needs to run where and when in the integration, delivery and deployment phase of a pipeline.</p><p>There are for sure some challenges involved viz.</p><p>• Keeping the run-time of a pipeline to a minimum<br>•Dealing with increasing complexity of security tests</p><p>But overall, with the continued cyber threats, DevSecOps is a good first line of defense.</p><p>#devsecops #securitytesting #qualityengineering</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ffafddd8a6ba" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[IT Outsourcing, Cultural Distance]]></title>
            <link>https://medium.com/@sudhir.shetty/it-outsourcing-cultural-distance-b3a4b01ff62f?source=rss-888166ad862------2</link>
            <guid isPermaLink="false">https://medium.com/p/b3a4b01ff62f</guid>
            <category><![CDATA[outsourcing]]></category>
            <dc:creator><![CDATA[Sudhir Shetty]]></dc:creator>
            <pubDate>Sun, 16 Apr 2023 07:41:18 GMT</pubDate>
            <atom:updated>2023-04-16T07:41:18.009Z</atom:updated>
            <content:encoded><![CDATA[<p>So, it used to be that companies would outsource their IT tasks to save money, without really considering the provider’s abilities or cultural fit. This was because IT was seen as just a basic function rather than something that could give a company an edge over its competitors. But now, IT is more important than ever and can even be the foundation of new business models. So, companies are starting to choose providers based more on their capabilities rather than just cost. However, greater the criticality of the business model, more is it essential that there is cultural compatibility.</p><p>Culture is a tricky thing to define — it’s like a mix of attitudes, beliefs, and behaviors that set one group of people apart from another. But if we’re trying to compare two different groups, we can talk about something called cultural distance. Basically, it’s how different their values, beliefs, and customs are from each other. And this can show up in all sorts of ways — what’s important, what’s not, what’s considered polite or rude, what’s seen as right or wrong. Culture is so complex that we often have to break it down into smaller pieces, like looking at the national culture, the culture of a particular organization, or even the culture of a single team.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*-DqVFrKbGtZqBlBK" /><figcaption>Cultural Distance</figcaption></figure><p>The behavioral difference which is the result of the above cultural distance can be accentuated by more complex outsourced service and also by the nature of the leadership and management techniques.</p><p>Though there is no one size fits all solution to this, as long as one is aware of the distance and consciously tries to bridge it, or uses it as a factor in deciding a partner, all should be good.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b3a4b01ff62f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Medical Devices Verification and Validation]]></title>
            <link>https://medium.com/@sudhir.shetty/medical-devices-verification-and-validation-c61088b02a72?source=rss-888166ad862------2</link>
            <guid isPermaLink="false">https://medium.com/p/c61088b02a72</guid>
            <category><![CDATA[quality-engineering]]></category>
            <category><![CDATA[medtech]]></category>
            <dc:creator><![CDATA[Sudhir Shetty]]></dc:creator>
            <pubDate>Thu, 06 Apr 2023 01:14:07 GMT</pubDate>
            <atom:updated>2023-04-06T01:15:50.386Z</atom:updated>
            <content:encoded><![CDATA[<p>Failure in medical hardware devices has almost the same repercussion as failure in a software system — safety, legal and reputational issues. There is the added requirement of regulatory compliance.</p><p>The US Food and Drug Administration (FDA) defines</p><p><strong>Verification</strong> as confirmation by examination and provision of objective evidence that specified requirements have been fulfilled.</p><p><strong>Validation</strong> as confirmation by examination and provision of objective evidence that the particular requirements for a specific intended use can be consistently fulfilled.<br><em>Process validation</em> means establishing by objective evidence that a process consistently produces a result or product meeting its predetermined specifications.<br><em>Design validation</em> means establishing by objective evidence that device specifications conform with user needs and intended use(s).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xgQG6tAvNVE84hGReo4RKw.png" /><figcaption>Medical Devices Verification and Validation</figcaption></figure><p>In other words, <strong>validation</strong> means ensuring that we elicit from the users the right requirements which when fulfilled will meet the needs of the users. This will be ‘validated’ by actually using the product from a user perspective.</p><p>And <strong>verification</strong> means, once we set out to build the product, at each step, say design, building, testing, we ensure that the criteria/ requirements at each step are met as defined.</p><p>Failures lead to recalls and an analysis of the most frequent medical device recalls leads to one of the reasons being software design issues due to inadequate testing, software bugs, or inadequate validation of software changes. Examples include wearable bluetooth connected wrist watch de-activating monitoring, network cards failing resulting in inability to receive or transfer analytics data.</p><p>IEC 62304 is the relevant standard specifying the lifecycle requirements for medical devices and medical device software. Though much of the software testing involved in medical devices overlaps with testing of software products in nature, due to compliance requirements, more attention has to be paid to requirement traceability, managing IP. And due to hardware devices being involved, more attention has to be paid to static code analysis, unit testing, run time analysis and code coverage.</p><p>#medtech #qualityengineering</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c61088b02a72" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Test Pyramid]]></title>
            <link>https://medium.com/@sudhir.shetty/test-pyramid-36ad876a96a0?source=rss-888166ad862------2</link>
            <guid isPermaLink="false">https://medium.com/p/36ad876a96a0</guid>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[test-pyramid]]></category>
            <dc:creator><![CDATA[Sudhir Shetty]]></dc:creator>
            <pubDate>Sat, 10 Dec 2022 01:03:34 GMT</pubDate>
            <atom:updated>2022-12-10T01:03:34.937Z</atom:updated>
            <content:encoded><![CDATA[<p>There are a couple of theories on how the (automated) test pyramid came about but for the most part, the below picture depicts how it is understood lately.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*AwIKvY-qoXEYFpev" /></figure><p>It is a way of bucketing test cases into various buckets based on the effort expended in creating and maintaining the test cases. It is mainly divided into 3 parts</p><ul><li>Unit Tests (~70%): mainly written by developers, are shorter and quicker to run</li><li>Service Tests (~20%): mainly consists of API contracts tests and integration tests</li><li>User Interface Tests (~10%): mainly consists of e2e (end-to-end) UI tests</li></ul><p>The above follows from the shift left philosophy — meaning the earlier the defects are found, the cheaper it is to fix it and the faster we can deploy features. Unit testing is closer to the development phase and hence we do the maximum testing using unit tests. Service testing is a little further away and UI test a little more than that.</p><p>As with any framework, this is a starting point and is open to adaptation per the firm’s needs. It could be very likely that websites built using angular or react could have UI unit test cases and not e2e test cases. A team can come up with its own name for each of the layers, as long as it is consistent within the firm. Maybe name the service tests layer to be integration tests. Maybe it need not be a pyramid but more a diamond, since a firm has more integration tests (say #stripe?).</p><p>#softwareengineering #testpyramid</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=36ad876a96a0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Quality Transformation in an Enterprise]]></title>
            <link>https://medium.com/@sudhir.shetty/quality-transformation-in-an-enterprise-130fc558e1b9?source=rss-888166ad862------2</link>
            <guid isPermaLink="false">https://medium.com/p/130fc558e1b9</guid>
            <category><![CDATA[enterprise-transformation]]></category>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[quality-engineering]]></category>
            <dc:creator><![CDATA[Sudhir Shetty]]></dc:creator>
            <pubDate>Fri, 02 Dec 2022 22:06:27 GMT</pubDate>
            <atom:updated>2022-12-02T22:06:27.278Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/962/0*WEix_65XHrnhQssG" /><figcaption>Quality Transformation</figcaption></figure><p>Transformation is inevitable mostly, so how to go about transforming a legacy quality management system. Though every enterprise is its own being, the below transformation characterizes what needs to exist at a minimum for an effective quality management system.</p><p>The framework for this transformation is defined in terms of six distinct areas: metrics standardization, process standardization, measurement, reporting, quality analytics, and culture &amp; leadership.</p><p>Culture &amp; Leadership: It has been proven time and again that the most important ingredient in the success of any endeavor is the people(/employees) component. And it would be impossible to keep the people motivated and driven without the active participation of the executive leadership team who can help by aligning the quality objectives to the strategic goals and following through on that.</p><p>Quality Analytics: mainly depends on 2 parameters viz. defect classification and defect prediction. Defect classification involves bucketing defects into various levels of severity and priority so that they can be fixed accordingly. Defect prediction involves using historical data (with the aid of even machine learning) to predict the most defect prone component of an application. This helps in resource planning as well as measuring test effectiveness.</p><p>Reporting: mainly serves 2 purposes, providing a singular source of quality metrics and displaying trending so as to aid decision making. The granularity of the reporting can be modified based on the audience, whether it be engineering team, leadership or external customer.</p><p>Measurement: In addition to the primary barometer of software quality, viz. defects which need to be measured, it is also of value to measure escalations from customers, time taken to complete testing activities, number of team members involved in testing, churn of issues while still in the software development cycle.</p><p>Process Standardization: This is applicable to relatively larger teams and alludes to processes like using either waterfall or agile for all program teams, using the same automation framework for similar technologies, using the same coding practices, using the same code review process, using the same defect classification process. This helps in an appreciable improvement in velocity.</p><p>Metrics Standardization: This follows naturally from the above two — viz. Process standardization and measurement. Meaning, follow standard metrics across the entire enterprise so that when they are used in measurement, they help in deriving a like for like comparison picture.</p><p>It goes without saying that in order to validate the effectiveness of the transformation in terms of the incoming defect statistics, periodic failure rates, and release cadence timeline, we need to capture the before and after profile of the team.</p><p>#transformation #enterprise #qualityengineering</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=130fc558e1b9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Monolith v/s Microservices: QE Perspective]]></title>
            <link>https://medium.com/@sudhir.shetty/monolith-v-s-microservices-qe-perspective-35680ded1f43?source=rss-888166ad862------2</link>
            <guid isPermaLink="false">https://medium.com/p/35680ded1f43</guid>
            <category><![CDATA[monolithic-architecture]]></category>
            <category><![CDATA[microservice-architecture]]></category>
            <category><![CDATA[quality-engineering]]></category>
            <dc:creator><![CDATA[Sudhir Shetty]]></dc:creator>
            <pubDate>Sat, 26 Nov 2022 00:33:31 GMT</pubDate>
            <atom:updated>2022-11-26T00:33:31.953Z</atom:updated>
            <content:encoded><![CDATA[<p>Software architecture can be defined as how the different components, modules and tech stack of an application are arranged with respect to each other — the 2 main of which are a monolith and a microservices oriented one.</p><p>A monolith is one whose modules cannot be executed independently while a microservices architecture’ modules can.</p><figure><img alt="monolith_micoservices_qualityengineering" src="https://cdn-images-1.medium.com/max/1024/0*K0AHdWL7xiX7pkCP" /></figure><p>From a quality engineering perspective, both monolithic and microservice software architectures can be evaluated against certain software quality attributes:</p><ul><li>Availability — is defined as the degree to which an application or system is operational and accessible when required for use. Microservices are created based on the service they provide, and it is less likely that the entire application can go down since that presumes that all microservices go down together which is unlikely. Microservices based applications are thus more available than monolith ones.</li><li>Complexity — is defined as the degree to which an application or system’s design or implementation is difficult to decipher and validate. Since monolithic applications incorporate all features, its complexity is higher as compared to a microservice that incorporates only one feature.</li><li>Testability — is defined as a degree of effectiveness and efficiency with which test criteria can be established for an application or system and tests can be performed to determine whether those criteria have been met. There are different kinds of tests and here there is a mixed result in the sense that integration tests for microservices are more involved than for monoliths.</li><li>Coupling — is defined as a measure of interdependence among components or modules in a software system. Since microservices mostly only encapsulate a singular feature independently within itself, they are less likely to depend on other microservices. Hence microservices are more loosely coupled in the context of an entire application or system.</li><li>Security — is defined as the degree to which an application or system protects information and data. Here the results are more or less similar with both sharing the same vulnerabilities in terms of user privileges, cross-site scripting attacks, and command line privileges with microservices having the additional job of ensuring messages between services are appropriately secured.</li><li>Deployability — is a measure of the time needed for the production of deployable artefacts and includes validation, code compilation, test execution, static code analysis and packaging of the application into a deployable format. Mostly, due to the fanning out of functionalities or features to various microservices, and due to the fact that at any time only a handful of features are modified, from a logistics perspective there are less moving parts in a microservices to productionize the features. Hence microservices are more deployable.</li></ul><p>#monolith #microservices #qualityengineering</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=35680ded1f43" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>