<?xml version="1.0"?><feed xmlns:media="http://search.yahoo.com/mrss/" xmlns:gr="http://www.google.com/schemas/reader/atom/" xmlns:idx="urn:atom-extension:indexing" xmlns="http://www.w3.org/2005/Atom" idx:index="no" gr:dir="ltr"><!--
Content-type: Preventing XSRF in IE.

--><generator uri="https://bazqux.com">BazQux Reader</generator><id>tag:google.com,2005:reader/feed/http://007unlicensedtotest.blogspot.com/feeds/posts/default</id><title>blogs</title><subtitle type="html">blogs</subtitle><link rel="self" href="https://bazqux.com/feed/d45a6ead98c5f8f9f99f?no_branding"></link><gr:continuation>7997229105273</gr:continuation><updated>2026-07-20T16:25:48Z</updated><entry gr:crawl-timestamp-msec="1784557098000"><id gr:original-id="https://medium.com/p/a64efa716a60">tag:google.com,2005:reader/item/0000089f00000066</id><title type="html">Tester at the business intersection— how the testing role naturally expands</title><published>2026-07-20T14:18:18Z</published><updated>2026-07-20T14:18:18Z</updated><link rel="alternate" href="https://fishouthebox.medium.com/tester-at-the-business-intersection-how-the-testing-role-naturally-expands-a64efa716a60?source=rss-43716d3850af------2" type="text/html"></link><summary type="html">&lt;figure&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; alt=&quot;An image of a eoman at the road explaining that testers sit at the business intersection and can add value to so many areas.&quot; src=&quot;https://cdn-images-1.medium.com/max/1024/1*Tfo8M9MxJTS2LP35scnwfA.png&quot;&gt;&lt;/figure&gt;&lt;p&gt;I’ve been thinking about how to explain how testers naturally get drawn into other areas across the business and I’ve come up with this line&lt;/p&gt;&lt;blockquote&gt;Tester at the business Intersection.&lt;/blockquote&gt;&lt;p&gt;I feel this explains well that you are surrounded by topics such as process improvement, risk management, cross team collaboration, change management and continuous improvement.&lt;/p&gt;&lt;p&gt;Real life examples -&lt;/p&gt;&lt;ul&gt;&lt;li&gt;I get asked to facilitate a definition of ready workshop and help drive what refinement sessions look like. Or document what a Pen Test process looks like from requesting, scheduling, reviewing results, implementation to closure. (process improvement)&lt;/li&gt;&lt;li&gt;To ask the business if they want a change released with a particular bug (change management).&lt;/li&gt;&lt;li&gt;To educate another team how a product works and how to test the system (cross team collaboration).&lt;/li&gt;&lt;li&gt;Providing feedback in a retrospective on how to streamline processes to make us more efficient and less wasteful (Continuous improvement)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;As you can see from my real life examples testing is not simply about testing a product and giving feedback. It involves collaboration, assessing risk and change management, refining processes and continually improving the as is.&lt;/p&gt;&lt;p&gt;For all of this to work what is needed is a Quality Management system — interconnected parts that all work together to meet customer and stakeholder requirements and to strive to exceed expectations. More on this soon!&lt;/p&gt;</summary><author><name>Melissa Fisher</name></author><source gr:stream-id="feed/https://medium.com/feed/@fishouthebox"><id>tag:google.com,2005:reader/feed/https://medium.com/feed/@fishouthebox</id><title type="html">Stories by Melissa Fisher on Medium</title><link rel="alternate" href="https://medium.com/@fishouthebox?source=rss-43716d3850af------2" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784557098000"><id gr:original-id="https://medium.com/p/a64efa716a60">tag:google.com,2005:reader/item/00000a2b0000004e</id><title type="html">Tester at the business intersection— how the testing role naturally expands</title><published>2026-07-20T14:18:18Z</published><updated>2026-07-20T14:18:18Z</updated><link rel="alternate" href="https://fishouthebox.medium.com/tester-at-the-business-intersection-how-the-testing-role-naturally-expands-a64efa716a60?source=rss-43716d3850af------2" type="text/html"></link><summary type="html">&lt;figure&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; alt=&quot;An image of a eoman at the road explaining that testers sit at the business intersection and can add value to so many areas.&quot; src=&quot;https://cdn-images-1.medium.com/max/1024/1*Tfo8M9MxJTS2LP35scnwfA.png&quot;&gt;&lt;/figure&gt;&lt;p&gt;I’ve been thinking about how to explain how testers naturally get drawn into other areas across the business and I’ve come up with this line&lt;/p&gt;&lt;blockquote&gt;Tester at the business Intersection.&lt;/blockquote&gt;&lt;p&gt;I feel this explains well that you are surrounded by topics such as process improvement, risk management, cross team collaboration, change management and continuous improvement.&lt;/p&gt;&lt;p&gt;Real life examples -&lt;/p&gt;&lt;ul&gt;&lt;li&gt;I get asked to facilitate a definition of ready workshop and help drive what refinement sessions look like. Or document what a Pen Test process looks like from requesting, scheduling, reviewing results, implementation to closure. (process improvement)&lt;/li&gt;&lt;li&gt;To ask the business if they want a change released with a particular bug (change management).&lt;/li&gt;&lt;li&gt;To educate another team how a product works and how to test the system (cross team collaboration).&lt;/li&gt;&lt;li&gt;Providing feedback in a retrospective on how to streamline processes to make us more efficient and less wasteful (Continuous improvement)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;As you can see from my real life examples testing is not simply about testing a product and giving feedback. It involves collaboration, assessing risk and change management, refining processes and continually improving the as is.&lt;/p&gt;&lt;p&gt;For all of this to work what is needed is a Quality Management system — interconnected parts that all work together to meet customer and stakeholder requirements and to strive to exceed expectations. More on this soon!&lt;/p&gt;</summary><author><name>Melissa Fisher</name></author><source gr:stream-id="feed/https://fishouthebox.medium.com/feed"><id>tag:google.com,2005:reader/feed/https://fishouthebox.medium.com/feed</id><title type="html">Stories by Melissa Fisher on Medium</title><link rel="alternate" href="https://medium.com/@fishouthebox?source=rss-43716d3850af------2" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784519129000"><id gr:original-id="https://medium.com/p/4173bb136d68">tag:google.com,2005:reader/item/0000091b00000082</id><category term="software-testing"></category><category term="typescript"></category><category term="software-engineering"></category><category term="programming"></category><category term="software-development"></category><title type="html">Playwright TypeScript Multiple Environments: A Complete Real-World Guide</title><published>2026-07-20T03:45:29Z</published><updated>2026-07-20T03:45:29Z</updated><link rel="alternate" href="https://levelup.gitconnected.com/playwright-typescript-multiple-environments-a-complete-real-world-guide-4173bb136d68?source=rss-d56167afca7d------2" type="text/html"></link><summary type="html">&lt;div&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://levelup.gitconnected.com/playwright-typescript-multiple-environments-a-complete-real-world-guide-4173bb136d68?source=rss-d56167afca7d------2&quot;&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://cdn-images-1.medium.com/max/1920/1*cnhGop1H2xSWU08w-6iYoA.jpeg&quot; width=&quot;1920&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Learn how to configure multiple environments in Playwright TypeScript using projects, baseURL, environment variables, and dotenv.&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://levelup.gitconnected.com/playwright-typescript-multiple-environments-a-complete-real-world-guide-4173bb136d68?source=rss-d56167afca7d------2&quot;&gt;Continue reading on Level Up Coding »&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary><author><name>Mohammad Faisal Khatri</name></author><source gr:stream-id="feed/https://medium.com/@iamfaisalkhatri/feed"><id>tag:google.com,2005:reader/feed/https://medium.com/@iamfaisalkhatri/feed</id><title type="html">Stories by Mohammad Faisal Khatri on Medium</title><link rel="alternate" href="https://medium.com/@iamfaisalkhatri?source=rss-d56167afca7d------2" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784519129000"><id gr:original-id="https://medium.com/p/4173bb136d68">tag:google.com,2005:reader/item/00000a8300000081</id><category term="software-testing"></category><category term="typescript"></category><category term="software-engineering"></category><category term="programming"></category><category term="software-development"></category><title type="html">Playwright TypeScript Multiple Environments: A Complete Real-World Guide</title><published>2026-07-20T03:45:29Z</published><updated>2026-07-20T03:45:29Z</updated><link rel="alternate" href="https://levelup.gitconnected.com/playwright-typescript-multiple-environments-a-complete-real-world-guide-4173bb136d68?source=rss-d56167afca7d------2" type="text/html"></link><summary type="html">&lt;div&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://levelup.gitconnected.com/playwright-typescript-multiple-environments-a-complete-real-world-guide-4173bb136d68?source=rss-d56167afca7d------2&quot;&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://cdn-images-1.medium.com/max/1920/1*cnhGop1H2xSWU08w-6iYoA.jpeg&quot; width=&quot;1920&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Learn how to configure multiple environments in Playwright TypeScript using projects, baseURL, environment variables, and dotenv.&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://levelup.gitconnected.com/playwright-typescript-multiple-environments-a-complete-real-world-guide-4173bb136d68?source=rss-d56167afca7d------2&quot;&gt;Continue reading on Level Up Coding »&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary><author><name>Mohammad Faisal Khatri</name></author><source gr:stream-id="feed/https://medium.com/feed/@iamfaisalkhatri"><id>tag:google.com,2005:reader/feed/https://medium.com/feed/@iamfaisalkhatri</id><title type="html">Stories by Mohammad Faisal Khatri on Medium</title><link rel="alternate" href="https://medium.com/@iamfaisalkhatri?source=rss-d56167afca7d------2" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784480948000"><id gr:original-id="https://qualityeng.substack.com/p/speaking-up-is-only-half-the-story">tag:google.com,2005:reader/item/00000b1e0000007f</id><title type="html">Speaking up is only half the story</title><published>2026-07-19T17:09:08Z</published><updated>2026-07-19T17:09:08Z</updated><link rel="alternate" href="https://qualityeng.substack.com/p/speaking-up-is-only-half-the-story" type="text/html"></link><link rel="enclosure" href="https://api.substack.com/feed/podcast/207642549/93fd42c53a6e80da083403037e035f80.mp3" type="audio/mpeg"></link><media:content url="https://api.substack.com/feed/podcast/207642549/93fd42c53a6e80da083403037e035f80.mp3" type="audio/mpeg"></media:content><summary type="html">&lt;div&gt;&lt;figure&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://substackcdn.com/image/fetch/$s_!q3BP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2232bbd-3a9e-46df-9eda-d548341dd06a_1456x903.webp&quot; data-component-name=&quot;Image2ToDOM&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://substackcdn.com/image/fetch/$s_!q3BP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2232bbd-3a9e-46df-9eda-d548341dd06a_1456x903.webp 424w, https://substackcdn.com/image/fetch/$s_!q3BP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2232bbd-3a9e-46df-9eda-d548341dd06a_1456x903.webp 848w, https://substackcdn.com/image/fetch/$s_!q3BP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2232bbd-3a9e-46df-9eda-d548341dd06a_1456x903.webp 1272w, https://substackcdn.com/image/fetch/$s_!q3BP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2232bbd-3a9e-46df-9eda-d548341dd06a_1456x903.webp 1456w&quot; sizes=&quot;100vw&quot;&gt;&lt;img width=&quot;1456&quot; height=&quot;903&quot; data-attrs=&quot;{&amp;quot;src&amp;quot;:&amp;quot;https://substack-post-media.s3.amazonaws.com/public/images/b2232bbd-3a9e-46df-9eda-d548341dd06a_1456x903.webp&amp;quot;,&amp;quot;srcNoWatermark&amp;quot;:null,&amp;quot;fullscreen&amp;quot;:null,&amp;quot;imageSize&amp;quot;:null,&amp;quot;height&amp;quot;:903,&amp;quot;width&amp;quot;:1456,&amp;quot;resizeWidth&amp;quot;:null,&amp;quot;bytes&amp;quot;:55188,&amp;quot;alt&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;image/webp&amp;quot;,&amp;quot;href&amp;quot;:null,&amp;quot;belowTheFold&amp;quot;:false,&amp;quot;topImage&amp;quot;:true,&amp;quot;internalRedirect&amp;quot;:&amp;quot;https://qualityeng.substack.com/i/207537329?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2232bbd-3a9e-46df-9eda-d548341dd06a_1456x903.webp&amp;quot;,&amp;quot;isProcessing&amp;quot;:false,&amp;quot;align&amp;quot;:null,&amp;quot;offset&amp;quot;:false}&quot; alt title data-orig-srcset=&quot;https://substackcdn.com/image/fetch/$s_!q3BP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2232bbd-3a9e-46df-9eda-d548341dd06a_1456x903.webp 424w, https://substackcdn.com/image/fetch/$s_!q3BP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2232bbd-3a9e-46df-9eda-d548341dd06a_1456x903.webp 848w, https://substackcdn.com/image/fetch/$s_!q3BP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2232bbd-3a9e-46df-9eda-d548341dd06a_1456x903.webp 1272w, https://substackcdn.com/image/fetch/$s_!q3BP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2232bbd-3a9e-46df-9eda-d548341dd06a_1456x903.webp 1456w&quot; src=&quot;https://substackcdn.com/image/fetch/$s_!q3BP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2232bbd-3a9e-46df-9eda-d548341dd06a_1456x903.webp&quot; fetchpriority=&quot;high&quot;&gt;&lt;/picture&gt;&lt;div&gt;&lt;div&gt;&lt;button tabindex=&quot;-1&quot; type=&quot;button&quot;&gt;&lt;svg role=&quot;img&quot; width=&quot;20&quot; height=&quot;20&quot; viewbox=&quot;0 0 20 20&quot; fill=&quot;none&quot; stroke-width=&quot;1.5&quot; stroke=&quot;var(--color-fg-primary)&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;g&gt;&lt;title&gt;&lt;/title&gt;&lt;path d=&quot;M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button tabindex=&quot;-1&quot; type=&quot;button&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;20&quot; height=&quot;20&quot; viewbox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;polyline points=&quot;15 3 21 3 21 9&quot;&gt;&lt;/polyline&gt;&lt;polyline points=&quot;9 21 3 21 3 15&quot;&gt;&lt;/polyline&gt;&lt;line x1=&quot;21&quot; x2=&quot;14&quot; y1=&quot;3&quot; y2=&quot;10&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;3&quot; x2=&quot;10&quot; y1=&quot;21&quot; y2=&quot;14&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h2&gt;Something feels off&lt;/h2&gt;&lt;p&gt;Imagine you’re in a planning or refinement meeting.&lt;/p&gt;&lt;p&gt;A senior engineer, lead or manager is explaining how they think the team should approach something. They sound confident, a few people are nodding, and everyone appears ready to move the conversation on.&lt;/p&gt;&lt;p&gt;But something doesn’t feel right to you.&lt;/p&gt;&lt;p&gt;Maybe there’s an assumption that hasn’t been explored. A dependency people are overlooking. Or a risk that could cause problems later.&lt;/p&gt;&lt;p&gt;You can’t fully explain it yet. You don’t have evidence or a better solution either. You just have a sense that something might have been missed.&lt;/p&gt;&lt;p&gt;Do you say something?&lt;/p&gt;&lt;p&gt;Speaking up could make you look like you haven’t understood. Like you’re being negative, slowing the team down or challenging someone more senior without a good enough reason.&lt;/p&gt;&lt;p&gt;But staying quiet could cause problems later, once more work has been built around the decision and the cost of changing direction is much higher.&lt;/p&gt;&lt;p&gt;Would you speak up, even though your concern isn’t fully formed?&lt;/p&gt;&lt;p&gt;Or stay quiet and hope you’re wrong?&lt;/p&gt;&lt;h2&gt;Speaking up is only half the story&lt;/h2&gt;&lt;p&gt;The thing about speaking up is that it’s only half the story. The other half is what happens next: the response.&lt;/p&gt;&lt;p&gt;That response teaches the person whether they will be judged, dismissed or embarrassed for taking the interpersonal risk of saying what they did.&lt;/p&gt;&lt;p&gt;But it also teaches everyone else watching what might happen if they took a similar risk.&lt;/p&gt;&lt;p&gt;Our responses in these moments, therefore, have consequences beyond the person who spoke. They influence what others may be willing to share in future.&lt;/p&gt;&lt;p&gt;And challenging authority isn’t the only situation where people may hold back.&lt;/p&gt;&lt;p&gt;It could be saying that you don’t understand something. Disagreeing with a decision or direction. Raising a concern. Or admitting that you’ve made a mistake.&lt;/p&gt;&lt;h2&gt;Making uncertainty visible&lt;/h2&gt;&lt;p&gt;When someone speaks up, they make uncertainty visible and bring new information into the system. While we don’t often think about it this way, a question, concern or disagreement can be a form of feedback.&lt;/p&gt;&lt;p&gt;A question can reveal missing shared understanding. A disagreement can expose different assumptions. A concern can highlight a potential risk. Admitting a mistake can draw attention to a problem within the wider system.&lt;/p&gt;&lt;p&gt;Speaking up does not necessarily reduce that uncertainty immediately. The concern may turn out to be unfounded, or the question may reveal a misunderstanding rather than a problem. But making it visible gives the team an opportunity to investigate, learn and decide what to do next.&lt;/p&gt;&lt;p&gt;Silence does not remove uncertainty either. It leaves it hidden, where it may later return as rework, defects, delays or surprises. The very things that unnecessarily slow teams down.&lt;/p&gt;&lt;p&gt;There is also interpersonal uncertainty.&lt;/p&gt;&lt;p&gt;The person speaking up may not know how others will respond. Will their contribution be taken seriously? Will they be judged, dismissed or blamed? Or will their perspective be met with curiosity?&lt;/p&gt;&lt;p&gt;This creates two connected feedback loops.&lt;/p&gt;&lt;p&gt;The immediate loop is about what happens to the information. Does the team explore it, dismiss it or act on it?&lt;/p&gt;&lt;p&gt;The future loop is about what people learn from the response. Will they share similar information next time?&lt;/p&gt;&lt;p&gt;These loops compound in that dismissing one concern may not only hide that information. It may also discourage the next question, concern or admission of a mistake.&lt;/p&gt;&lt;p&gt;However, a productive response can send the loop in the other direction. When one concern is explored respectfully, others may become more willing to ask questions or reveal that they are unsure.&lt;/p&gt;&lt;p&gt;Psychological safety develops through these repeated interactions. People learn whether speaking up is worthwhile by seeing what happens when they or others do it.&lt;/p&gt;&lt;h2&gt;Speaking up doesn’t mean agreeing with everything&lt;/h2&gt;&lt;p&gt;Psychological safety isn’t about avoiding discomfort, it’s about making disagreement possible.&lt;/p&gt;&lt;p&gt;That doesn’t mean every concern is correct or every issue raised must be acted on. But reasonable concerns should be acknowledged, considered and responded to with respect.&lt;/p&gt;&lt;p&gt;We often conflate understanding as agreement, but taking the time to listen to someone does not require agreeing with them. It means making a genuine effort to understand their perspective before deciding what to do with the information.&lt;/p&gt;&lt;h2&gt;What does a productive response look like?&lt;/h2&gt;&lt;p&gt;The response will depend on the situation, but many interpersonal risks fall into four broad categories.&lt;/p&gt;&lt;h3&gt;“I don’t know”&lt;/h3&gt;&lt;p&gt;Make someone feel stupid, and they learn not to ask questions.&lt;/p&gt;&lt;p&gt;Thank them for slowing the team down at the right moment, and they learn that uncertainty can be shared.&lt;/p&gt;&lt;h3&gt;“I disagree”, or “we may be missing something”&lt;/h3&gt;&lt;p&gt;Dismiss someone as obstructive, and they learn to keep concerns to themselves.&lt;/p&gt;&lt;p&gt;Explore the concern, and they learn that different perspectives are valued.&lt;/p&gt;&lt;h3&gt;“I made a mistake”&lt;/h3&gt;&lt;p&gt;Respond with blame, and they learn to hide mistakes.&lt;/p&gt;&lt;p&gt;Focus on learning, and they learn that the team improves the system together.&lt;/p&gt;&lt;h3&gt;“Someone senior might be wrong”&lt;/h3&gt;&lt;p&gt;Talk down to someone, and they learn that hierarchy matters more than information.&lt;/p&gt;&lt;p&gt;Invite the challenge, and they learn that ideas can be examined regardless of who raises them.&lt;/p&gt;&lt;h3&gt;Mindsets that support speaking up&lt;/h3&gt;&lt;p&gt;This is where the &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://qualityeng.substack.com/p/the-three-mindsets-of-a-qe&quot;&gt;core quality engineering mindsets of curiosity, humility, and empathy&lt;/a&gt; become important.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Curiosity&lt;/strong&gt; helps us understand what the person has noticed.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Humility&lt;/strong&gt; reminds us that our own perspective may be incomplete.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Empathy&lt;/strong&gt; helps us recognise the risk they took by sharing it.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;These mindsets matter most when we disagree or decide not to act on the information. That is when it becomes easiest to dismiss the contribution along with the idea.&lt;/p&gt;&lt;h2&gt;Speaking up is part of the team’s quality system&lt;/h2&gt;&lt;p&gt;Quality Engineers often focus on how information about the product moves through tests, monitoring, incidents and customer feedback. But information also moves through conversations.&lt;/p&gt;&lt;p&gt;Questions reveal missing understanding. Concerns can reveal risks. Disagreement can reveal different assumptions, and mistakes can reveal places where the system may need to improve.&lt;/p&gt;&lt;p&gt;A Quality Engineer cannot force people to share that information. But they can pay attention to the conditions that make sharing more or less likely.&lt;/p&gt;&lt;p&gt;Who asks questions? Whose concerns are explored? How are mistakes discussed? What happens when someone challenges a decision or shares a partially formed thought?&lt;/p&gt;&lt;p&gt;These interactions tell us something about the health of the team’s human feedback loops.&lt;/p&gt;&lt;p&gt;Quality Engineers can influence those conditions by modelling curiosity, inviting quieter perspectives and challenging responses that close down discussions.&lt;/p&gt;&lt;p&gt;Speaking up is only half the story.&lt;/p&gt;&lt;p&gt;It’s what happens after that that determines if people continue to.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What is your team teaching people to keep to themselves?&lt;/strong&gt;&lt;/p&gt;&lt;h1&gt;Furter reading&lt;/h1&gt;&lt;p&gt;If you’d like to explore some of the ideas behind this post further:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://qualityeng.substack.com/p/why-is-psychological-safety-important&quot;&gt;Why is psychological safety important to software engineering teams?&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;A broader look at what psychological safety means and why it matters in engineering teams.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://qualityeng.substack.com/p/the-three-mindsets-of-a-qe&quot;&gt;The Three Mindsets of a Quality Engineer&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;How curiosity, humility and empathy help us shape quality through everyday interactions.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://qualityeng.substack.com/p/quality-is-emergent&quot;&gt;Quality is Emergent&lt;/a&gt;&lt;/strong&gt; Why quality cannot be forced through individual effort, but can emerge when we create the right conditions around the work.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;clear: both&quot;&gt;&lt;/p&gt;&lt;p data-bqr-info=&quot;attachment&quot;&gt;&lt;audio style=&quot;display: block; width: 100%&quot; controls preload=&quot;none&quot; playsinline=&quot;true&quot; webkit-playsinline=&quot;true&quot; tabindex=&quot;-1&quot;&gt;&lt;source src=&quot;https://api.substack.com/feed/podcast/207642549/93fd42c53a6e80da083403037e035f80.mp3&quot; type=&quot;audio/mpeg&quot;&gt;&lt;/audio&gt;&lt;span class=&quot;downloadLink&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://api.substack.com/feed/podcast/207642549/93fd42c53a6e80da083403037e035f80.mp3&quot; title=&quot;https://api.substack.com/feed/podcast/207642549/93fd42c53a6e80da083403037e035f80.mp3&quot;&gt;93fd42c53a6e80da083403037e035f80.mp3&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</summary><author><name>Jit Gosai</name></author><source gr:stream-id="feed/https://qualityeng.substack.com/feed"><id>tag:google.com,2005:reader/feed/https://qualityeng.substack.com/feed</id><title type="html">Quality Engineering Newsletter</title><link rel="alternate" href="https://qualityeng.substack.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784476055773"><id gr:original-id="https://www.thegreenreport.blog/?t=1784477052">tag:google.com,2005:reader/item/00000861000000a1</id><category term="performance"></category><category term="api"></category><category term="load"></category><category term="stress"></category><category term="reporting"></category><category term="strategy"></category><title type="html">How QA Turns a Traffic Spike Into a Real Diagnosis</title><published>2026-07-19T15:47:35Z</published><updated>2026-07-19T15:47:35Z</updated><link rel="alternate" href="https://www.thegreenreport.blog/articles/how-qa-turns-a-traffic-spike-into-a-real-diagnosis/how-qa-turns-a-traffic-spike-into-a-real-diagnosis.html" type="text/html"></link><summary type="html">Someone on your team drops a message: POST /api/checkout took 20,000 requests in a single hour. It reads like a performance bug, and it might be. But that number alone...</summary><author><name></name></author><source gr:stream-id="feed/https://www.thegreenreport.blog/resources/xml/feeds.xml"><id>tag:google.com,2005:reader/feed/https://www.thegreenreport.blog/resources/xml/feeds.xml</id><title type="html">The Green Report | Quality Assurance Blog</title><link rel="alternate" href="https://www.thegreenreport.blog/" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784466087000"><id gr:original-id="http://diagramindustries.com/?p=3032">tag:google.com,2005:reader/item/000002fa0000002b</id><category term="quality"></category><category term="teams"></category><category term="testing"></category><category term="quality-engineering"></category><category term="software"></category><title type="html">The Hidden Loop of Quality Engineering</title><published>2026-07-19T13:01:27Z</published><updated>2026-07-19T13:01:27Z</updated><link rel="alternate" href="https://diagramindustries.com/2026/07/19/the-hidden-loop-of-quality-engineering/" type="text/html"></link><summary type="html">&lt;figure&gt;&lt;img width=&quot;600&quot; height=&quot;423&quot; data-attachment-id=&quot;3033&quot; data-permalink=&quot;https://diagramindustries.com/2026/07/19/the-hidden-loop-of-quality-engineering/grand_moff_tarkin/&quot; data-orig-file=&quot;https://diagramindustries.com/wp-content/uploads/2026/07/grand_moff_tarkin.jpg&quot; data-orig-size=&quot;600,423&quot; data-comments-opened=&quot;1&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;alt&amp;quot;:&amp;quot;&amp;quot;}&quot; data-image-title=&quot;grand_moff_tarkin&quot; data-image-description data-image-caption data-large-file=&quot;https://diagramindustries.com/wp-content/uploads/2026/07/grand_moff_tarkin.jpg?w=600&quot; alt data-orig-srcset=&quot;https://diagramindustries.com/wp-content/uploads/2026/07/grand_moff_tarkin.jpg 600w, https://diagramindustries.com/wp-content/uploads/2026/07/grand_moff_tarkin.jpg?w=150 150w, https://diagramindustries.com/wp-content/uploads/2026/07/grand_moff_tarkin.jpg?w=300 300w&quot; src=&quot;https://diagramindustries.com/wp-content/uploads/2026/07/grand_moff_tarkin.jpg&quot;&gt;&lt;/figure&gt;



&lt;p&gt;Quality engineering is a fun, nebulous concept. I’m into it because of that, not through any deep belief, just the freedom it affords. You can be a great exploratory tester and still be a quality engineer, as long as you have the skills to choose where to focus that skill and energy. I’m not scared of definitions with a bit of wiggle room either. The tighter you try and define something, the more of it slips through your fingers Governor Tarkin. Definitions miss the really good stuff, like the hidden loops that exist within quality engineering.&lt;/p&gt;



&lt;p&gt;My favourite hidden loop is making speculative suggestions. This is the way it usually goes.&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Ash thinks of a quality related activity, which is appropriate in the current context and will address a risk we have &lt;/li&gt;



&lt;li&gt;Ash suggests said quality related activity, everyone says maybe and goes away and thinks about it. Maybe they think we don’t need it (yet or ever), need more time to ponder, or have other things on their mind.&lt;/li&gt;



&lt;li&gt;Sometime later, some else on the team suggests said activity and adoption (or at least an experiment) follows.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;/p&gt;



&lt;p&gt;This might be part of the strategy or not, might be something truly valuable that has emerged. Quality engineering is emergent by the way not to be set wholly and immutably at the beginning and at organisational level.&lt;/p&gt;



&lt;p&gt;I can always tell those who talk about quality and testing but haven’t dipped their toes in reality for a while, as they don’t recognise the hidden loop. &lt;/p&gt;



&lt;p&gt;Let me give you a recent example, for a system in its early days:&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Ash suggests building a web-hook to post messages onto a queue. We can use this for exploratory testing, performance testing, essentially it democratises putting messages on queues for the whole team. Everyone with Postman and a little knowledge or training could use it.&lt;/li&gt;



&lt;li&gt;The team says why would we need that, it’s too early and other reasons. Ash says fine, just think about it.&lt;/li&gt;



&lt;li&gt;Fast forward a couple of months, the team says we need a way to enable performance testing and democratise the ability to post messages to the queue. Ash says that’s a great idea, let’s do it.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;/p&gt;



&lt;p&gt;There is nothing in the quality engineering strategy that talks about this, why would there be? Its local to the team and its context. That one web-hook would be more valuable that any part of the strategy though.&lt;/p&gt;



&lt;p&gt;Once you recognise the loops that hide in the spaces your strategy doesn’t reach, you’ll be a better quality engineer for it.&lt;/p&gt;</summary><author><name>Ash Winter</name></author><source gr:stream-id="feed/https://diagramindustries.com/blog/feed/"><id>tag:google.com,2005:reader/feed/https://diagramindustries.com/blog/feed/</id><title type="html">Blog – Diagram Industries</title><link rel="alternate" href="https://diagramindustries.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784349338000"><id gr:original-id="https://scrolltest.com/ai-qa-portfolio-project-eval-ci-gate/">tag:google.com,2005:reader/item/00000444000002c5</id><category term="AI Testing"></category><category term="Testing"></category><category term="CI/CD"></category><category term="deepeval"></category><category term="LLM testing"></category><category term="promptfoo"></category><category term="test automation"></category><title type="html">AI QA Portfolio Project: Build an Eval CI Gate</title><published>2026-07-18T04:35:38Z</published><updated>2026-07-18T04:35:38Z</updated><link rel="alternate" href="https://scrolltest.com/ai-qa-portfolio-project-eval-ci-gate/" type="text/html"></link><summary type="html">&lt;p&gt;Build an AI QA portfolio project that proves you can test LLM features, not just prompt ChatGPT. This Day 40 lab adds PromptFoo, DeepEval, and a CI gate to a real repo.&lt;/p&gt;
&lt;p&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com/ai-qa-portfolio-project-eval-ci-gate/&quot;&gt;AI QA Portfolio Project: Build an Eval CI Gate&lt;/a&gt; appeared first on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com&quot;&gt;Software Testing &amp;amp; Automation&lt;/a&gt;.&lt;/p&gt;</summary><author><name>Promode</name></author><source gr:stream-id="feed/https://scrolltest.com/feed/"><id>tag:google.com,2005:reader/feed/https://scrolltest.com/feed/</id><title type="html">Software Testing &amp; Automation</title><link rel="alternate" href="https://scrolltest.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784345800000"><id gr:original-id="https://scrolltest.com/playwright-visual-regression-testing-typescript/">tag:google.com,2005:reader/item/00000444000002c4</id><category term="Javascript"></category><category term="Test Automation"></category><category term="Testing"></category><category term="Playwright"></category><category term="test automation"></category><category term="typescript"></category><category term="visual regression"></category><title type="html">Playwright Visual Regression Testing with TypeScript</title><published>2026-07-18T03:36:40Z</published><updated>2026-07-18T03:36:40Z</updated><link rel="alternate" href="https://scrolltest.com/playwright-visual-regression-testing-typescript/" type="text/html"></link><summary type="html">&lt;p&gt;Learn Playwright visual regression testing with TypeScript: stable screenshots, CI diffs, masking dynamic UI, and a framework pattern teams can trust.&lt;/p&gt;
&lt;p&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com/playwright-visual-regression-testing-typescript/&quot;&gt;Playwright Visual Regression Testing with TypeScript&lt;/a&gt; appeared first on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com&quot;&gt;Software Testing &amp;amp; Automation&lt;/a&gt;.&lt;/p&gt;</summary><author><name>Promode</name></author><source gr:stream-id="feed/https://scrolltest.com/feed/"><id>tag:google.com,2005:reader/feed/https://scrolltest.com/feed/</id><title type="html">Software Testing &amp; Automation</title><link rel="alternate" href="https://scrolltest.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784345738000"><id gr:original-id="https://scrolltest.com/promptfoo-vs-deepeval-qa-guide-2/">tag:google.com,2005:reader/item/00000444000002c3</id><category term="AI Testing"></category><category term="Testing"></category><category term="deepeval"></category><category term="LLM testing"></category><category term="promptfoo"></category><category term="test automation"></category><title type="html">PromptFoo vs DeepEval: QA Guide for LLM Evals</title><published>2026-07-18T03:35:38Z</published><updated>2026-07-18T03:35:38Z</updated><link rel="alternate" href="https://scrolltest.com/promptfoo-vs-deepeval-qa-guide-2/" type="text/html"></link><summary type="html">&lt;p&gt;PromptFoo vs DeepEval explained for QA engineers: when to use config-driven regression checks, Python metrics, CI gates, and both together.&lt;/p&gt;
&lt;p&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com/promptfoo-vs-deepeval-qa-guide-2/&quot;&gt;PromptFoo vs DeepEval: QA Guide for LLM Evals&lt;/a&gt; appeared first on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com&quot;&gt;Software Testing &amp;amp; Automation&lt;/a&gt;.&lt;/p&gt;</summary><author><name>Promode</name></author><source gr:stream-id="feed/https://scrolltest.com/feed/"><id>tag:google.com,2005:reader/feed/https://scrolltest.com/feed/</id><title type="html">Software Testing &amp; Automation</title><link rel="alternate" href="https://scrolltest.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784345677000"><id gr:original-id="https://scrolltest.com/release-notes-to-test-plan/">tag:google.com,2005:reader/item/00000444000002c2</id><category term="AI Testing"></category><category term="Test Automation"></category><category term="Testing"></category><category term="CI/CD"></category><category term="Release Notes"></category><category term="SDET"></category><category term="test automation"></category><title type="html">Release Notes to Test Plan: QA Workflow That Works</title><published>2026-07-18T03:34:37Z</published><updated>2026-07-18T03:34:37Z</updated><link rel="alternate" href="https://scrolltest.com/release-notes-to-test-plan/" type="text/html"></link><summary type="html">&lt;p&gt;Turn Playwright and Selenium release notes into a prioritized test plan with owners, smoke coverage, CI gates, and rollback evidence.&lt;/p&gt;
&lt;p&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com/release-notes-to-test-plan/&quot;&gt;Release Notes to Test Plan: QA Workflow That Works&lt;/a&gt; appeared first on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com&quot;&gt;Software Testing &amp;amp; Automation&lt;/a&gt;.&lt;/p&gt;</summary><author><name>Promode</name></author><source gr:stream-id="feed/https://scrolltest.com/feed/"><id>tag:google.com,2005:reader/feed/https://scrolltest.com/feed/</id><title type="html">Software Testing &amp; Automation</title><link rel="alternate" href="https://scrolltest.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784343600000"><id gr:original-id="https://scrolltest.com/?p=8198">tag:google.com,2005:reader/item/00000444000002c1</id><category term="Playwright tutorial Java"></category><category term="Testing"></category><title type="html">Multi-Environment Configuration in Playwright: Dev, Staging, Prod</title><published>2026-07-18T03:00:00Z</published><updated>2026-07-18T03:00:00Z</updated><link rel="alternate" href="https://scrolltest.com/playwright-multi-environment-configuration/" type="text/html"></link><summary type="html">&lt;p&gt;Clean Playwright multi-environment configuration: one flag flips your suite between dev, staging, and prod with typed profiles and per-env auth.&lt;/p&gt;
&lt;p&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com/playwright-multi-environment-configuration/&quot;&gt;Multi-Environment Configuration in Playwright: Dev, Staging, Prod&lt;/a&gt; appeared first on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com&quot;&gt;Software Testing &amp;amp; Automation&lt;/a&gt;.&lt;/p&gt;</summary><author><name>Pramod Dutta</name></author><source gr:stream-id="feed/https://scrolltest.com/feed/"><id>tag:google.com,2005:reader/feed/https://scrolltest.com/feed/</id><title type="html">Software Testing &amp; Automation</title><link rel="alternate" href="https://scrolltest.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784325600000"><id gr:original-id="https://scrolltest.com/?p=7406">tag:google.com,2005:reader/item/00000444000002c0</id><category term="Career Guide"></category><category term="Testing"></category><title type="html">Exploratory Testing Charters: The Structured Approach to Finding Bugs AI Never Will</title><published>2026-07-17T22:00:00Z</published><updated>2026-07-17T22:00:00Z</updated><link rel="alternate" href="https://scrolltest.com/exploratory-testing-charters-structured-approach-bugs-ai/" type="text/html"></link><summary type="html">&lt;p&gt;Exploratory Testing Charters: The Structured Approach to Finding Bugs AI Never Will There is a persistent myth in the testing world that exploratory testing means opening the application and clicking around randomly until something breaks. This misconception has caused countless QA managers to dismiss exploratory testing as unprofessional, unrepeatable, and unnecessary in the age of...&lt;/p&gt;
&lt;p&gt;The post &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com/exploratory-testing-charters-structured-approach-bugs-ai/&quot;&gt;Exploratory Testing Charters: The Structured Approach to Finding Bugs AI Never Will&lt;/a&gt; appeared first on &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; rel=&quot;nofollow&quot; href=&quot;https://scrolltest.com&quot;&gt;Software Testing &amp;amp; Automation&lt;/a&gt;.&lt;/p&gt;</summary><author><name>Pramod Dutta</name></author><source gr:stream-id="feed/https://scrolltest.com/feed/"><id>tag:google.com,2005:reader/feed/https://scrolltest.com/feed/</id><title type="html">Software Testing &amp; Automation</title><link rel="alternate" href="https://scrolltest.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784319656000"><id gr:original-id="https://www.r-adams.co.uk/?p=529">tag:google.com,2005:reader/item/000008d300000030</id><category term="Ramblings"></category><category term="AI"></category><category term="conference"></category><category term="Learning"></category><category term="Reflection"></category><title type="html">All about the people</title><published>2026-07-17T20:20:56Z</published><updated>2026-07-17T20:20:56Z</updated><link rel="alternate" href="https://www.r-adams.co.uk/2026/07/17/all-about-the-people/" type="text/html"></link><summary type="html">&lt;p&gt;I’ve recently attended the &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://nationalsoftwaretestingconference.co.uk/&quot;&gt;National Software Testing Conference&lt;/a&gt;, with some really interesting talks and also conversations. Despite AI dominating the topics on stage, talking to fellow testers it is clear that our problems remain the same.&lt;/p&gt;



&lt;p&gt;Domenico Vitale gave an incredible talk on “Building a High-Impact QA Function” and I loved his message on people then process. Issues in “testing” are really risk, feedback and decision problems. This made me reflect that in a world where we’re leveraging automation &amp;amp; AI to go faster and faster, the value of how we explore and discuss these problems are still essential.&lt;/p&gt;



&lt;p&gt;The need to think was also well covered by Kiruthika Ganesan’s exploration of the brain and thinking. She highlighted how speeding things up have made it harder to have meaningful conversations. She asked do we have time to talk when everything takes seconds?&lt;/p&gt;



&lt;p&gt;On the flip side there was talk on AI generated requirements, code and testing with human in the loop to review it but with this I ask, how are we getting the time to think about whether we’re implementing the right thing? Some of my favourite practices are built upon talking to our peers. I worry that the the push for AI &amp;amp; faster could lead to us skipping some of the practices that have helped us build quality software.&lt;/p&gt;



&lt;p&gt;Shanmugapriya Sabapathy explored how AI is not a fix but an amplifier and the need to have engineering practices that are ready to adopt AI. I’ve seen similar shared by Craig Risi at Nordic Testing Days and Dan Llewyn at an Edinburgh Tech Meetup. With AI being an accelerator, if your processes have your teetering on the edge then you’re only going to go flying off a cliff.&lt;/p&gt;



&lt;p&gt;It is important that organisations know that adopting AI isn’t about the end goal of using AI. It is about delivering with quality and without good people, practices and processes, that can’t happen. Everything that we know and understand about building quality software isn’t changing through AI. It is still People, Processes &lt;strong&gt;then&lt;/strong&gt; tools. Just AI is changing the tools and tweaking processes…&lt;/p&gt;</summary><author><name>Rich</name></author><source gr:stream-id="feed/https://www.r-adams.co.uk/feed/"><id>tag:google.com,2005:reader/feed/https://www.r-adams.co.uk/feed/</id><title type="html">I Find Bugs</title><link rel="alternate" href="https://www.r-adams.co.uk" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784319152000"><id gr:original-id="https://chroniclesofapragmaticprogrammer.substack.com/p/por-que-os-engenheiros-mais-valiosos">tag:google.com,2005:reader/item/00000a2700000062</id><title type="html">Por que os engenheiros mais valiosos do mercado gastam mais tempo conversando do que codando</title><published>2026-07-17T20:12:32Z</published><updated>2026-07-17T20:12:32Z</updated><link rel="alternate" href="https://chroniclesofapragmaticprogrammer.substack.com/p/por-que-os-engenheiros-mais-valiosos" type="text/html"></link><summary type="html">&lt;div data-callout=&quot;true&quot;&gt;&lt;p&gt;Há uma cena que se repete em quase toda empresa de tecnologia: alguém recebe uma tarefa, abre o editor e começa a digitar antes de terminar de entender o problema. Duas semanas depois, o time descobre que construiu a coisa errada — com perfeição técnica. Este texto é sobre o profissional que faz o oposto.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Existe um mito silencioso na engenharia de software: o de que o valor de um profissional se mede pela velocidade com que ele produz código. É um mito confortável, porque código é visível, mensurável, versionável. Conversa não aparece no &lt;em&gt;git blame&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Mas observe qualquer engenheiro sênior de verdade em ação — não o que tem mais anos de casa, mas o que as empresas disputam a peso de ouro — e você vai notar um padrão contraintuitivo: ele passa uma fração desproporcional do tempo perguntando, parafraseando, desenhando no quadro, discordando educadamente, até &lt;em&gt;então&lt;/em&gt; abrir o editor. E quando abre, escreve rápido, porque já sabe exatamente o que está construindo e por quê.&lt;/p&gt;&lt;h2&gt;&lt;strong&gt;O código é o efeito, não a causa&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;O que diferencia esse perfil não é talento de digitação. É que ele enxerga o fluxo de valor de ponta a ponta — do problema de negócio até o resultado que o usuário sente — e trata o código como &lt;strong&gt;um meio para chegar lá&lt;/strong&gt;, não como o objetivo em si. Isso muda a ordem das operações: primeiro alinhar o que é valioso e por quê, depois desenhar o caminho técnico, só então escrever.&lt;/p&gt;&lt;div&gt;&lt;p&gt;“Bons programadores escrevem código que os humanos conseguem entender.”&lt;/p&gt;&lt;p&gt;&lt;span&gt;Martin Fowler — Refactoring: Improving the Design of Existing Code&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Fowler escreveu isso pensando em legibilidade de código, mas a ideia vale um passo antes: escrever para ser entendido também é o que se faz numa conversa de alinhamento. Quem só escreve para a máquina compilar tende a pular a etapa de escrever — falado ou em texto — para as pessoas entenderem.&lt;/p&gt;&lt;h2&gt;&lt;span&gt;A pergunta que todo mundo já fez&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;em&gt;&lt;span&gt;Se conversar não gera commits, por que isso deveria contar como trabalho de verdade?&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Porque comunicação malfeita é o maior gerador de retrabalho que existe — e retrabalho é código também, só que descartado. &lt;strong&gt;Frederick Brooks&lt;/strong&gt;, arquiteto de software do IBM System/360 e autor de &lt;em&gt;The Mythical Man-Month&lt;/em&gt;, mostrou que projetos grandes não falham por falta de gente digitando: falham porque o custo de coordenação cresce mais rápido que o número de pessoas. Ele chamou de “&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://arxiv.org/abs/1811.04315&quot;&gt;conceitual integrity&lt;/a&gt;” &lt;mark data-color=&quot;#ffff00&quot; style=&quot;background-color: rgb(255, 255, 0); color: rgb(0, 0, 0)&quot;&gt;a ideia de que um sistema bom precisa vir de poucas mentes alinhadas — não porque comitês são burros, mas porque cada nova pessoa multiplica os caminhos de comunicação necessários para todo mundo entender a mesma coisa&lt;/mark&gt;.&lt;/p&gt;&lt;p&gt;Na visão dele, publicada em 1975 e ainda citada hoje, &lt;span&gt;“conceptual integrity is the most important consideration in system design”&lt;/span&gt; — a integridade conceitual é a consideração mais importante no design de um sistema. &lt;strong&gt;Conversa é como essa integridade se propaga entre pessoas antes de virar código.&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://substackcdn.com/image/fetch/$s_!FOAU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4708df15-db2d-4e92-ab56-93741fc6c80a_721x319.png&quot; data-component-name=&quot;Image2ToDOM&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://substackcdn.com/image/fetch/$s_!FOAU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4708df15-db2d-4e92-ab56-93741fc6c80a_721x319.png 424w, https://substackcdn.com/image/fetch/$s_!FOAU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4708df15-db2d-4e92-ab56-93741fc6c80a_721x319.png 848w, https://substackcdn.com/image/fetch/$s_!FOAU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4708df15-db2d-4e92-ab56-93741fc6c80a_721x319.png 1272w, https://substackcdn.com/image/fetch/$s_!FOAU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4708df15-db2d-4e92-ab56-93741fc6c80a_721x319.png 1456w&quot; sizes=&quot;100vw&quot;&gt;&lt;img width=&quot;721&quot; height=&quot;319&quot; data-attrs=&quot;{&amp;quot;src&amp;quot;:&amp;quot;https://substack-post-media.s3.amazonaws.com/public/images/4708df15-db2d-4e92-ab56-93741fc6c80a_721x319.png&amp;quot;,&amp;quot;srcNoWatermark&amp;quot;:null,&amp;quot;fullscreen&amp;quot;:null,&amp;quot;imageSize&amp;quot;:null,&amp;quot;height&amp;quot;:319,&amp;quot;width&amp;quot;:721,&amp;quot;resizeWidth&amp;quot;:null,&amp;quot;bytes&amp;quot;:22150,&amp;quot;alt&amp;quot;:null,&amp;quot;title&amp;quot;:null,&amp;quot;type&amp;quot;:&amp;quot;image/png&amp;quot;,&amp;quot;href&amp;quot;:null,&amp;quot;belowTheFold&amp;quot;:true,&amp;quot;topImage&amp;quot;:false,&amp;quot;internalRedirect&amp;quot;:&amp;quot;https://chroniclesofapragmaticprogrammer.substack.com/i/197857043?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4708df15-db2d-4e92-ab56-93741fc6c80a_721x319.png&amp;quot;,&amp;quot;isProcessing&amp;quot;:false,&amp;quot;align&amp;quot;:null,&amp;quot;offset&amp;quot;:false}&quot; alt data-orig-srcset=&quot;https://substackcdn.com/image/fetch/$s_!FOAU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4708df15-db2d-4e92-ab56-93741fc6c80a_721x319.png 424w, https://substackcdn.com/image/fetch/$s_!FOAU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4708df15-db2d-4e92-ab56-93741fc6c80a_721x319.png 848w, https://substackcdn.com/image/fetch/$s_!FOAU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4708df15-db2d-4e92-ab56-93741fc6c80a_721x319.png 1272w, https://substackcdn.com/image/fetch/$s_!FOAU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4708df15-db2d-4e92-ab56-93741fc6c80a_721x319.png 1456w&quot; src=&quot;https://substackcdn.com/image/fetch/$s_!FOAU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4708df15-db2d-4e92-ab56-93741fc6c80a_721x319.png&quot;&gt;&lt;/picture&gt;&lt;div&gt;&lt;div&gt;&lt;button tabindex=&quot;-1&quot; type=&quot;button&quot;&gt;&lt;svg role=&quot;img&quot; width=&quot;20&quot; height=&quot;20&quot; viewbox=&quot;0 0 20 20&quot; fill=&quot;none&quot; stroke-width=&quot;1.5&quot; stroke=&quot;var(--color-fg-primary)&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;g&gt;&lt;title&gt;&lt;/title&gt;&lt;path d=&quot;M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button tabindex=&quot;-1&quot; type=&quot;button&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;20&quot; height=&quot;20&quot; viewbox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;polyline points=&quot;15 3 21 3 21 9&quot;&gt;&lt;/polyline&gt;&lt;polyline points=&quot;9 21 3 21 3 15&quot;&gt;&lt;/polyline&gt;&lt;line x1=&quot;21&quot; x2=&quot;14&quot; y1=&quot;3&quot; y2=&quot;10&quot;&gt;&lt;/line&gt;&lt;line x1=&quot;3&quot; x2=&quot;10&quot; y1=&quot;21&quot; y2=&quot;14&quot;&gt;&lt;/line&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h2&gt;&lt;strong&gt;O preço do mal-entendido&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Barry Boehm&lt;/strong&gt; estudou projetos reais na TRW e na IBM e chegou a uma conclusão que hoje parece óbvia mas continua sendo ignorada na prática: um mal-entendido descoberto na fase de requisitos custa uma fração do que custa descobri-lo depois do sistema estar em produção — em análises citadas por engenheiros da NASA, essa diferença chega à ordem de cem vezes. A curva ficou menos exponencial com práticas modernas de entrega contínua, mas a direção da seta nunca mudou: &lt;em&gt;quanto antes você entende errado, mais barato é corrigir&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Kent Beck&lt;/strong&gt;, criador do Extreme Programming, levou essa ideia a sério de um jeito diferente: em vez de tentar acertar tudo de uma vez no papel, ele propôs achatar a curva com ciclos de feedback curtíssimos — testes antes do código, integração constante, conversas frequentes no lugar de documentos grossos escritos uma única vez. A lição comum aos dois: o problema nunca foi documentar demais ou de menos, foi &lt;em&gt;quando&lt;/em&gt; você descobre que entendeu errado.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“...é sempre um problema de pessoas.” - &lt;span&gt;Kent Beck — Extreme Programming Explained&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Beck escreveu isso sobre um contexto específico — não importa o que o cliente diga que é o problema técnico, na raiz costuma haver um desalinhamento entre pessoas. &lt;strong&gt;É por isso que times que conversam bem corrigem defeitos de entendimento antes que eles virem defeitos de código.&lt;/strong&gt;&lt;/p&gt;&lt;h4&gt;&lt;span&gt;Pergunta seguinte&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;&lt;em&gt;&lt;span&gt;Então a solução é documentar tudo antes de sair codando?&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Não exatamente — é pensar em prosa antes de pensar em sintaxe. A Amazon institucionalizou isso com o processo interno conhecido como &lt;em&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://aws.amazon.com/pt/blogs/smb/working-backwards-to-drive-customer-experience-and-smb-innovation-forward/&quot;&gt;Working Backwards&lt;/a&gt;&lt;/em&gt;: antes de qualquer linha de código, o time escreve um comunicado de imprensa fictício e uma lista de perguntas frequentes descrevendo o produto já pronto, do ponto de vista do cliente. Jeff Bezos resumiu a lógica dizendo que a empresa &lt;span&gt;“start[s] with the customer and work[s] backwards”&lt;/span&gt; — começa pelo cliente e trabalha de trás para frente.&lt;/p&gt;&lt;p&gt;O caso mais citado é o da AWS: Bezos e Andy Jassy identificaram a oportunidade em 2004, mas os serviços fundacionais (S3 e EC2) só foram lançados em 2006 — mais de um ano foi gasto escrevendo, revisando e discutindo esses documentos antes de qualquer infraestrutura ser construída. A empresa também substituiu apresentações de slides por memorandos narrativos de até seis páginas nas reuniões de decisão, exatamente porque escrever em prosa força a explicitar relações de causa e efeito que um slide deixa passar batido.&lt;/p&gt;&lt;h2&gt;&lt;strong&gt;Por que isso não é burocracia&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;Vale uma ressalva científica aqui. O próprio Brooks fez uma comparação reveladora: a física lida com sistemas tão complexos quanto o software, mas o físico trabalha com fé de que existem princípios unificadores por trás do caos — a complexidade da natureza é, em certo sentido, honesta. A complexidade de um sistema de software, ao contrário, é muitas vezes arbitrária: nasce de decisões humanas, de interfaces que mudam de equipe para equipe, &lt;strong&gt;&lt;mark data-color=&quot;#ffff00&quot; style=&quot;background-color: rgb(255, 255, 0); color: rgb(0, 0, 0)&quot;&gt;de contexto que não está escrito em lugar nenhum a não ser na cabeça de quem participou da conversa original.&lt;/mark&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;É por isso que engenheiros de alto nível conversam antes: não para seguir processo, mas porque a complexidade arbitrária do software só existe na cabeça das pessoas até alguém a transformar em linguagem compartilhada — falada, escrita ou desenhada. &lt;em&gt;&lt;strong&gt;Código é a última tradução dessa cadeia, não a primeira.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;h2&gt;&lt;strong&gt;Técnicas para não errar a especificação, o entendimento e os testes&lt;/strong&gt;&lt;/h2&gt;&lt;h3&gt;Especificação&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reescreva o pedido com suas próprias palavras&lt;/strong&gt; antes de abrir o editor, e mande de volta para quem pediu confirmar. Se a paráfrase não bater, o requisito não estava claro — só parecia estar.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pergunte pelo que não deve acontecer&lt;/strong&gt;, não só pelo que deve. Casos de borda e comportamento não-funcional (performance, segurança, limites) raramente aparecem no pedido original.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Escreva um mini “PR/FAQ” antes de uma POC&lt;/strong&gt;: qual pergunta este experimento responde e o que provaria que ele falhou. Sem isso, toda POC “funciona” — porque ninguém definiu o que seria fracasso.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Entendimento&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Em sistemas legados, mapeie o comportamento atual antes de mudar&lt;/strong&gt; (testes de caracterização / golden master). Documente o que o sistema &lt;em&gt;faz&lt;/em&gt; hoje, não o que a documentação diz que ele deveria fazer — raramente são a mesma coisa.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Traga alguém de fora da equipe técnica&lt;/strong&gt; (produto, suporte, dados) para ouvir sua leitura do problema antes de estimar prazo. Se você não consegue explicar em termos simples, ainda não entendeu o suficiente para estimar.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Em reuniões de kickoff, seja o último a falar sobre solução.&lt;/strong&gt; Alinhar o problema antes da solução evita que a primeira ideia técnica vire âncora da conversa inteira.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Testes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Escreva o teste que evidencia a intenção&lt;/strong&gt; — dado, quando, então — antes ou junto da implementação, mesmo sem seguir TDD à risca. &lt;mark data-color=&quot;#ffff00&quot; style=&quot;background-color: rgb(255, 255, 0); color: rgb(0, 0, 0)&quot;&gt;Um teste escrito depois tende a confirmar o código, não a intenção original&lt;/mark&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Em MVPs, escreva por escrito o que deliberadamente não será testado&lt;/strong&gt; (non-goals). &lt;mark data-color=&quot;#ffff00&quot; style=&quot;background-color: rgb(255, 255, 0); color: rgb(0, 0, 0)&quot;&gt;Isso transforma débito técnico invisível em decisão explícita&lt;/mark&gt;, revisável mais tarde.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Revisão de código deve avaliar se o código cumpre o que a conversa combinou&lt;/strong&gt;, não só se está limpo ou idiomático. Sintaxe correta não é o mesmo que intenção correta.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;strong&gt;3 práticas para levar à próxima conversa com seu gestor ou PM&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;Tudo isso pode soar abstrato se você ainda não tem uma década de bagagem para “simplesmente perceber” quando uma conversa evitaria um problema. &lt;/p&gt;&lt;p&gt;As três práticas abaixo não exigem experiência — só um script pronto e a coragem de usá-lo antes de abrir o editor.&lt;/p&gt;&lt;h3&gt;1 · Antes de começar — traduza o pedido em uma frase que se responde com “sim” ou “não”&lt;/h3&gt;&lt;p&gt;Você não precisa entender o negócio a fundo para fazer isso. Precisa só devolver o que ouviu, em uma frase curta, e esperar confirmação antes de escrever a primeira linha de código.&lt;/p&gt;&lt;p&gt;&lt;mark data-color=&quot;#ffff00&quot; style=&quot;background-color: rgb(255, 255, 0); color: rgb(0, 0, 0)&quot;&gt;“Antes de começar, só confirmando: o objetivo é &lt;/mark&gt;&lt;em&gt;&lt;mark data-color=&quot;#ffff00&quot; style=&quot;background-color: rgb(255, 255, 0); color: rgb(0, 0, 0)&quot;&gt;[o que você entendeu]&lt;/mark&gt;&lt;/em&gt;&lt;mark data-color=&quot;#ffff00&quot; style=&quot;background-color: rgb(255, 255, 0); color: rgb(0, 0, 0)&quot;&gt;, para que &lt;/mark&gt;&lt;em&gt;&lt;mark data-color=&quot;#ffff00&quot; style=&quot;background-color: rgb(255, 255, 0); color: rgb(0, 0, 0)&quot;&gt;[resultado que a pessoa quer]&lt;/mark&gt;&lt;/em&gt;&lt;mark data-color=&quot;#ffff00&quot; style=&quot;background-color: rgb(255, 255, 0); color: rgb(0, 0, 0)&quot;&gt; aconteça. É isso mesmo?”&lt;/mark&gt;&lt;/p&gt;&lt;p&gt;Se a resposta vier rápida e direta, você entendeu. Se vier uma correção — “não bem, na verdade...” — você acabou de evitar dias de trabalho na direção errada, pelo custo de uma mensagem.&lt;/p&gt;&lt;h3&gt;2 · Durante a conversa — pergunte pelo cenário de fracasso, não só pelo de sucesso&lt;/h3&gt;&lt;p&gt;PMs e gestores costumam descrever o que a funcionalidade deve fazer. Raramente descrevem o que ela não pode quebrar, porque isso parece óbvio para quem pensa no produto o dia inteiro. Não é óbvio para quem está chegando agora — e perguntar por isso não exige jargão técnico.&lt;/p&gt;&lt;p&gt;&lt;mark data-color=&quot;#ffff00&quot; style=&quot;background-color: rgb(255, 255, 0); color: rgb(0, 0, 0)&quot;&gt;&amp;quot;O que aconteceria se essa parte desse errado, ou se ela simplesmente não existisse? Isso me ajuda a saber o que eu não posso quebrar sem perceber.&amp;quot;&lt;/mark&gt;&lt;/p&gt;&lt;p&gt;Essa pergunta funciona em qualquer nível de senioridade porque desloca a conversa do “o que construir” para “o que importa de verdade” — que é exatamente o tipo de informação que normalmente só aparece depois, em produção.&lt;/p&gt;&lt;h3&gt;3 · Depois da conversa — feche com um resumo escrito de três linhas&lt;/h3&gt;&lt;p&gt;Não precisa ser um documento. Precisa existir, e precisa ser curto o bastante para alguém corrigir em quinze segundos, no mesmo dia — não descobrir o mal-entendido na revisão final.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Entendi:&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;&lt;em&gt;[o problema, em uma frase]&lt;/em&gt;&lt;br&gt;&lt;strong&gt;Vou fazer:&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;&lt;em&gt;[o que você vai construir]&lt;/em&gt;&lt;br&gt;&lt;strong&gt;Pode dar errado se:&lt;/strong&gt;&lt;span&gt; &lt;/span&gt;&lt;em&gt;[a maior dúvida ou risco que você identificou]&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Esse mini-resumo é a versão rascunho do memorando narrativo da Amazon citado antes: força você a organizar o pensamento em texto simples, e dá para quem pediu a tarefa uma chance barata de corrigir o rumo — exatamente o ponto da curva de custo em que a correção ainda é quase de graça.&lt;/p&gt;&lt;div&gt;&lt;p&gt;“A única maneira de ir rápido é ir bem.”&lt;/p&gt;&lt;p&gt;&lt;span&gt;Robert C. Martin — Clean Architecture&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Vale para código, e vale para o que vem antes dele. &lt;mark data-color=&quot;#ffff00&quot; style=&quot;background-color: rgb(255, 255, 0); color: rgb(0, 0, 0)&quot;&gt;Pular a conversa para “ganhar tempo” costuma custar mais tempo depois — só que espalhado, invisível, disfarçado de imprevisto&lt;/mark&gt;.&lt;/p&gt;&lt;p&gt;O perfil mais disputado do mercado hoje não é o que escreve mais rápido. É o que entende o fluxo de valor de ponta a ponta — do problema de negócio ao resultado sentido pelo usuário — &lt;strong&gt;e usa o código como meio, não como fim&lt;/strong&gt;. Conversar antes de codar não é perder tempo: é onde esse profissional realmente trabalha.&lt;/p&gt;&lt;div data-attrs=&quot;{&amp;quot;url&amp;quot;:&amp;quot;https://chroniclesofapragmaticprogrammer.substack.com/subscribe?&amp;quot;,&amp;quot;text&amp;quot;:&amp;quot;Inscreva-se&amp;quot;,&amp;quot;language&amp;quot;:&amp;quot;pt-br&amp;quot;}&quot; data-component-name=&quot;SubscribeWidgetToDOM&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;Obrigado por ler Crônicas de um Programador Pragmático! Inscreva-se gratuitamente para receber novas publicações e apoiar meu trabalho.&lt;/p&gt;&lt;/div&gt;&lt;input tabindex=&quot;-1&quot; type=&quot;email&quot; name=&quot;article-XDQb1pRtLZjm4W9XA-geNkVAXnI-email&quot; placeholder=&quot;Digite seu e-mail…&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h2&gt;&lt;strong&gt;Sua vez&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;Qual foi a vez em que uma conversa de dez minutos evitou uma semana de retrabalho? Ou o contrário — o que aconteceu quando o time codificou antes de entender? Conte abaixo.&lt;/p&gt;&lt;p data-attrs=&quot;{&amp;quot;url&amp;quot;:&amp;quot;https://chroniclesofapragmaticprogrammer.substack.com/p/por-que-os-engenheiros-mais-valiosos/comments&amp;quot;,&amp;quot;text&amp;quot;:&amp;quot;Deixe um comentário&amp;quot;,&amp;quot;action&amp;quot;:null,&amp;quot;class&amp;quot;:null}&quot; data-component-name=&quot;ButtonCreateButton&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://chroniclesofapragmaticprogrammer.substack.com/p/por-que-os-engenheiros-mais-valiosos/comments&quot;&gt;&lt;span&gt;Deixe um comentário&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Frederick P. Brooks Jr. — &lt;em&gt;The Mythical Man-Month: Essays on Software Engineering&lt;/em&gt; (1975/1995)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Colin Bryar &amp;amp; Bill Carr — &lt;em&gt;Working Backwards&lt;/em&gt;; processo PR/FAQ da Amazon (&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;http://workingbackwards.com&quot;&gt;workingbackwards.com&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Barry Boehm — &lt;em&gt;Software Engineering Economics&lt;/em&gt; (1981); síntese em relatório da NASA sobre custo de erro&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Kent Beck — &lt;em&gt;Extreme Programming Explained&lt;/em&gt; (2000), sobre o achatamento da curva de custo de mudança e mal-entendidos como problema de pessoas&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Martin Fowler — &lt;em&gt;Refactoring: Improving the Design of Existing Code&lt;/em&gt; (1999)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Robert C. Martin — &lt;em&gt;Clean Architecture: A Craftsman’s Guide to Software Structure and Design&lt;/em&gt; (2017)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</summary><author><name>Rafael Miguel</name></author><source gr:stream-id="feed/https://chroniclesofapragmaticprogrammer.substack.com/feed"><id>tag:google.com,2005:reader/feed/https://chroniclesofapragmaticprogrammer.substack.com/feed</id><title type="html">Chronicles of a Pragmatic Programmer</title><link rel="alternate" href="https://chroniclesofapragmaticprogrammer.substack.com" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784295627000"><id gr:original-id="https://medium.com/p/1a254fab91d0">tag:google.com,2005:reader/item/0000091b00000081</id><category term="artificial-intelligence"></category><category term="ai-agent"></category><category term="docker"></category><category term="technology"></category><category term="devops"></category><title type="html">Build Your Own Local AI QA Engineer with Docker, Ollama, LibreChat, and Playwright MCP</title><published>2026-07-17T13:40:27Z</published><updated>2026-07-17T13:40:27Z</updated><link rel="alternate" href="https://levelup.gitconnected.com/build-your-own-local-ai-qa-engineer-with-docker-ollama-librechat-and-playwright-mcp-1a254fab91d0?source=rss-d56167afca7d------2" type="text/html"></link><summary type="html">&lt;div&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://levelup.gitconnected.com/build-your-own-local-ai-qa-engineer-with-docker-ollama-librechat-and-playwright-mcp-1a254fab91d0?source=rss-d56167afca7d------2&quot;&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://cdn-images-1.medium.com/max/1920/1*_Y4uQQFP47q6ZAaceg7VyQ.jpeg&quot; width=&quot;1920&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Learn how to build a completely local AI-powered QA Automation Engineer using Docker, Ollama, Qwen3:8b, LibreChat, and Playwright MCP…&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://levelup.gitconnected.com/build-your-own-local-ai-qa-engineer-with-docker-ollama-librechat-and-playwright-mcp-1a254fab91d0?source=rss-d56167afca7d------2&quot;&gt;Continue reading on Level Up Coding »&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary><author><name>Mohammad Faisal Khatri</name></author><source gr:stream-id="feed/https://medium.com/@iamfaisalkhatri/feed"><id>tag:google.com,2005:reader/feed/https://medium.com/@iamfaisalkhatri/feed</id><title type="html">Stories by Mohammad Faisal Khatri on Medium</title><link rel="alternate" href="https://medium.com/@iamfaisalkhatri?source=rss-d56167afca7d------2" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784295627000"><id gr:original-id="https://medium.com/p/1a254fab91d0">tag:google.com,2005:reader/item/00000a8300000080</id><category term="artificial-intelligence"></category><category term="ai-agent"></category><category term="docker"></category><category term="technology"></category><category term="devops"></category><title type="html">Build Your Own Local AI QA Engineer with Docker, Ollama, LibreChat, and Playwright MCP</title><published>2026-07-17T13:40:27Z</published><updated>2026-07-17T13:40:27Z</updated><link rel="alternate" href="https://levelup.gitconnected.com/build-your-own-local-ai-qa-engineer-with-docker-ollama-librechat-and-playwright-mcp-1a254fab91d0?source=rss-d56167afca7d------2" type="text/html"></link><summary type="html">&lt;div&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://levelup.gitconnected.com/build-your-own-local-ai-qa-engineer-with-docker-ollama-librechat-and-playwright-mcp-1a254fab91d0?source=rss-d56167afca7d------2&quot;&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://cdn-images-1.medium.com/max/1920/1*_Y4uQQFP47q6ZAaceg7VyQ.jpeg&quot; width=&quot;1920&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Learn how to build a completely local AI-powered QA Automation Engineer using Docker, Ollama, Qwen3:8b, LibreChat, and Playwright MCP…&lt;/p&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://levelup.gitconnected.com/build-your-own-local-ai-qa-engineer-with-docker-ollama-librechat-and-playwright-mcp-1a254fab91d0?source=rss-d56167afca7d------2&quot;&gt;Continue reading on Level Up Coding »&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary><author><name>Mohammad Faisal Khatri</name></author><source gr:stream-id="feed/https://medium.com/feed/@iamfaisalkhatri"><id>tag:google.com,2005:reader/feed/https://medium.com/feed/@iamfaisalkhatri</id><title type="html">Stories by Mohammad Faisal Khatri on Medium</title><link rel="alternate" href="https://medium.com/@iamfaisalkhatri?source=rss-d56167afca7d------2" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784278800000"><id gr:original-id="https://www.eviltester.com/blog/eviltester/apichallenges/2026-07-17-api-challenges-updates/">tag:google.com,2005:reader/item/0000044a0000010f</id><title type="html">API Challenges with Swagger UI and Simulator Requests</title><published>2026-07-17T09:00:00Z</published><updated>2026-07-17T09:00:00Z</updated><link rel="alternate" href="https://www.eviltester.com/blog/eviltester/apichallenges/2026-07-17-api-challenges-updates/" type="text/html"></link><summary type="html">&lt;p&gt;TLDR; API Challenges can now be used without installing any REST Clients.&lt;/p&gt;
&lt;p&gt;A few things that changed for the API Challenges recently.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;new repo&lt;/li&gt;
&lt;li&gt;In Situ Requests for the Simulator&lt;/li&gt;
&lt;li&gt;Swagger UI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My aim with the API Challenges was always to make API Testing easy to learn and experiment with. Hopefully all of this makes the API Challenges easier to use and work through.&lt;/p&gt;
&lt;h2 id=&quot;article-PZ8EQeugEcaWS0zM78VzqK3_aQU-api-challenges-repo&quot;&gt;API Challenges Repo&lt;/h2&gt;
&lt;p&gt;API Challenges was a ‘spin off’ project from my ‘Thingifier’ Entity Relationship Modelling tool.&lt;/p&gt;
&lt;p&gt;I’ve now moved the API Challenges into a Repo of their own.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://github.com/eviltester/apichallenges&quot;&gt;github.com/eviltester/apichallenges&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;New releases will be on the API challenges repo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://github.com/eviltester/apichallenges/releases&quot;&gt;New API Challenges releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://github.com/eviltester/thingifier/releases&quot;&gt;Old API Challenges releases&lt;/a&gt; still on the Thingifier&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This allows me to expand the features of the Thingifier without always updating the API Challenges.&lt;/p&gt;
&lt;h2 id=&quot;article-PZ8EQeugEcaWS0zM78VzqK3_aQU-new-simulation-mode-features&quot;&gt;New Simulation Mode Features&lt;/h2&gt;
&lt;p&gt;The &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://apichallenges.eviltester.com/practice-modes/simulation&quot;&gt;API Simulator&lt;/a&gt; is a set of requests with canned responses.&lt;/p&gt;
&lt;p&gt;It is a ‘real’ API, in that it will respond with XML or JSON if you change the accept headers - but I don’t really advertise that because it is designed to be easy to use… but it’s a real API.&lt;/p&gt;
&lt;p&gt;We’ve had an Open API spec file that you can upload into Swagger or REST Clients for a while. And that was basically the main suggested way to work with the API.&lt;/p&gt;
&lt;p&gt;But I wanted to make working through the Simulator even easier.&lt;/p&gt;
&lt;p&gt;So I’ve added in-situ request execution.&lt;/p&gt;
&lt;p&gt;When you work through the Simulator instructions, which are step by step instructions, and you encounter a request that the simulator wants you to make. You can now make it directly from within the browser and see the results.&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://www.eviltester.com/images/blog/apichallenges/inbrowser-sim-requests.png&quot; alt=&quot;In browser request execution on the simulator page&quot;&gt;&lt;/p&gt;
&lt;p&gt;If you want to experiment with cURL or wget to make the requests then you can copy them from the page and paste them into your CLI.&lt;/p&gt;
&lt;p&gt;This should make it a lot easier for first time walkthroughs of “what is an API?” and “What are API requests exactly?”&lt;/p&gt;
&lt;p&gt;And… we’ve added a Swagger UI page so you can use the swagger UI to experiment. But more on that in a moment.&lt;/p&gt;

&lt;div data-youtube-id=&quot;5p1eKwJ1fMc&quot; data-youtube-title=&quot;YouTube video: API Challenges with Swagger UI and Simulator Requests&quot;&gt;
    &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.youtube.com/watch?v=5p1eKwJ1fMc&quot; aria-label=&quot;Play YouTube video: API Challenges with Swagger UI and Simulator Requests&quot;&gt;
        &lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://i.ytimg.com/vi/5p1eKwJ1fMc/hqdefault.jpg&quot; alt&gt;
        
    &lt;/a&gt;
&lt;/div&gt;


&lt;h2 id=&quot;article-PZ8EQeugEcaWS0zM78VzqK3_aQU-swagger-ui&quot;&gt;Swagger UI&lt;/h2&gt;
&lt;p&gt;We now have a Swagger UI page for all of the main APIs on the site.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://apichallenges.eviltester.com/sim/docs/swagger-ui&quot;&gt;Simulator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Simple API]&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://apichallenges.eviltester.com/simpleapi/docs/swagger-ui&quot;&gt;https://apichallenges.eviltester.com/simpleapi/docs/swagger-ui&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://apichallenges.eviltester.com/docs/swagger-ui&quot;&gt;API Challenges&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This means that you can use all the APIs without having to install a REST client and experiment with the API.&lt;/p&gt;
&lt;p&gt;I do recommend using an API Client because it is the only way to really solve all the challenges and you will use a REST Client when you test APIs in the real world.&lt;/p&gt;
&lt;p&gt;But… the Swagger UI is another ’easy next step’. Rather than forcing you to use a client you can start making requests in the browser and when you understand what you are doing you can move on to a REST Client.&lt;/p&gt;

&lt;div data-youtube-id=&quot;QDC7UJKUhGY&quot; data-youtube-title=&quot;YouTube video: API Challenges with Swagger UI and Simulator Requests&quot;&gt;
    &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.youtube.com/watch?v=QDC7UJKUhGY&quot; aria-label=&quot;Play YouTube video: API Challenges with Swagger UI and Simulator Requests&quot;&gt;
        &lt;img class=&quot;bqrUnknownImgSize&quot; src=&quot;https://i.ytimg.com/vi/QDC7UJKUhGY/hqdefault.jpg&quot; alt&gt;
        
    &lt;/a&gt;
&lt;/div&gt;


&lt;h2 id=&quot;article-PZ8EQeugEcaWS0zM78VzqK3_aQU-recommended-learning-steps-for-api-testing&quot;&gt;Recommended Learning Steps for API Testing&lt;/h2&gt;
&lt;p&gt;Depending on where you are in your API Testing journey, you can start at different points in this list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Walkthrough the instruction steps in the &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://apichallenges.eviltester.com/practice-modes/simulation&quot;&gt;Simulator&lt;/a&gt; using the in browser request widget. Make request and see responses.&lt;/li&gt;
&lt;li&gt;Learn more about APIs using the &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://apichallenges.eviltester.com/learning&quot;&gt;Learning Zone&lt;/a&gt; which has tutorials and reference information.&lt;/li&gt;
&lt;li&gt;Experiment with the &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://apichallenges.eviltester.com/practice-modes/simpleapi&quot;&gt;Simple API&lt;/a&gt; using the &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://apichallenges.eviltester.com/simpleapi/docs/swagger-ui&quot;&gt;Swagger UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download one of the REST API Clients - you can find a &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://apichallenges.eviltester.com/tools/clients&quot;&gt;list on the site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Experiment with your client using the &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://apichallenges.eviltester.com/practice-modes/mirror&quot;&gt;Mirror mode&lt;/a&gt; to make sure the client is setup correctly.&lt;/li&gt;
&lt;li&gt;Work through the &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://apichallenges.eviltester.com/gui/challenges&quot;&gt;API Challenges&lt;/a&gt; using the REST Client&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mix and match the Simulator if you want to experiment with different clients or start using CLI tools like cURL or wget.&lt;/p&gt;
&lt;p&gt;Hopefully there is enough flexibility in learning style and information that you can learn and experiment with APIs at your own pace.&lt;/p&gt;
&lt;p&gt;And if you want additional variety and more sites to test then we have a list of recommended &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://apichallenges.eviltester.com/practice-sites&quot;&gt;Practice APIs&lt;/a&gt;&lt;/p&gt;&amp;lt;p&amp;gt;
    &amp;lt;strong&amp;gt;&amp;lt;a href=&amp;quot;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.patreon.com/c/eviltester&quot;&gt;https://www.patreon.com/c/eviltester&lt;/a&gt;&amp;quot;&amp;gt;Join our Patreon&amp;lt;/a&amp;gt; from as little as $1 a month for early access to videos, ad-free videos, free e-books and courses, and lots of exclusive content.&amp;lt;/strong&amp;gt;
&amp;lt;/p&amp;gt;</summary><author><name>Alan Richardson</name></author><source gr:stream-id="feed/https://www.eviltester.com/index.xml"><id>tag:google.com,2005:reader/feed/https://www.eviltester.com/index.xml</id><title type="html">EvilTester.com - Exploratory Testing, Automation, Development (Agile + Web) on EvilTester.com - Exploratory Testing, Automation, Development (Agile + Web)</title><link rel="alternate" href="https://www.eviltester.com/" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784278561000"><id gr:original-id="https://medium.com/p/a65ddf9a735f">tag:google.com,2005:reader/item/000008af0000003d</id><title type="html">AI for QA Engineers: New Live Batch Starts 25 July</title><published>2026-07-17T08:56:01Z</published><updated>2026-07-17T08:56:01Z</updated><link rel="alternate" href="https://medium.com/@anshita.bhasin/ai-for-qa-engineers-new-live-batch-starts-25-july-a65ddf9a735f?source=rss-cf4a02363eb1------2" type="text/html"></link><summary type="html">&lt;p&gt;&lt;em&gt;A hands-on live course for working QA engineers who want to actually use AI in their testing work, not just talk about it.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Earlier this year, I ran the first batch of my live course, AI for QA. Working QA engineers from different companies and countries joined, sat through live sessions, built things hands-on, and presented their own projects on Demo Day.&lt;/p&gt;&lt;p&gt;The most common feedback I got was some version of this: “I had read about AI everywhere, but this was the first time I actually used it in my own testing workflow.”&lt;/p&gt;&lt;p&gt;That is exactly the gap this course exists for. And now the next batch is starting on &lt;strong&gt;25 July&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;This post covers everything: what the course teaches, how it runs, who it is for, and who it is not for.&lt;/p&gt;&lt;h3&gt;Why this course exists&lt;/h3&gt;&lt;p&gt;If you work in QA today, you have probably noticed two things happening at the same time.&lt;/p&gt;&lt;p&gt;First, every job description now mentions AI in some form. Teams expect QA engineers to know how to use AI tools, not just have an opinion on them.&lt;/p&gt;&lt;p&gt;Second, most of the content available online is either too shallow (generic “10 ChatGPT prompts for testers” lists) or too far from real QA work (ML theory courses built for data scientists).&lt;/p&gt;&lt;p&gt;There is very little in the middle: practical, hands-on training built specifically for QA engineers, using real testing scenarios, taught live so you can ask questions when you get stuck.&lt;/p&gt;&lt;p&gt;That middle is what this course is.&lt;/p&gt;&lt;h3&gt;What you will learn&lt;/h3&gt;&lt;p&gt;This is a live, hands-on course. Every topic is taught by doing, on screen, with real examples from QA work. The curriculum covers:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Foundations that actually matter&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Tokens, context windows, and why your prompts behave the way they do&lt;/li&gt;&lt;li&gt;Context engineering: how to structure what you give an AI so you get reliable output instead of random output&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Working with Claude for QA tasks&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Using Claude for day-to-day QA work: test case generation, test data, bug analysis, documentation&lt;/li&gt;&lt;li&gt;Claude Projects and Skills, and how to set them up for your own testing context&lt;/li&gt;&lt;li&gt;Claude Code: using it hands-on for automation work&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;MCP (Model Context Protocol)&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;What MCP is and why it matters for testers&lt;/li&gt;&lt;li&gt;Using the official Playwright MCP server to drive browser automation through AI&lt;/li&gt;&lt;li&gt;Building your own custom MCP server, step by step&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Testing the AI itself&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Promptfoo: evaluating and testing prompts systematically, the QA way&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Beyond one tool&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;GitHub Copilot in a QA workflow&lt;/li&gt;&lt;li&gt;Running local LLMs with Ollama, so you understand what runs on your machine versus in the cloud&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Build your own practice environment&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Building your own website from scratch to use as your personal practice ground for testing&lt;/li&gt;&lt;li&gt;Taking that website live, so you have a real deployed application to test against, not just localhost&lt;/li&gt;&lt;li&gt;Creating your own database and connecting it to your application&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This part matters more than it sounds. Most testers practice on the same public demo sites everyone else uses. In this course, you build and deploy your own application with its own database. That gives you a real system you fully control, to practice UI testing, API testing, and AI-assisted workflows on.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Demo Day&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The course ends with a Demo Day where you present what you built. Not a certificate for attendance. An actual project you made yourself.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Everything taught in this course is based on official documentation and hands-on verified workflows. No secondhand claims, no “AI can probably do this” content.&lt;/p&gt;&lt;h3&gt;How the batch runs&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Start date:&lt;/strong&gt; 25 July&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Schedule:&lt;/strong&gt; Saturday and Sunday, weekend-only&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Time:&lt;/strong&gt; 8:00 to 9.30:00 AM IST (1.5-2 hours per session)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Format:&lt;/strong&gt; Live sessions on screen share, fully hands-on&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Recordings:&lt;/strong&gt; Every session is recorded, so if you miss a live class, you do not fall behind&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The weekend-morning format is deliberate. Most people joining are working professionals. Two consecutive weekend sessions keep the momentum going without eating into your work week.&lt;/p&gt;&lt;h3&gt;Who this course is for&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;QA engineers (manual or automation) who want to add AI skills to their real work, not just their resume&lt;/li&gt;&lt;li&gt;Testers who have used ChatGPT casually but never gone beyond basic prompting&lt;/li&gt;&lt;li&gt;Automation engineers curious about Claude Code, MCP, and AI-assisted test development&lt;/li&gt;&lt;li&gt;Anyone in QA who keeps seeing “AI” in job descriptions and wants hands-on ability, not just awareness&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You do not need any AI or ML background. You do need to be willing to do the hands-on work between sessions.&lt;/p&gt;&lt;h3&gt;Who this course is NOT for&lt;/h3&gt;&lt;p&gt;I would rather be honest here than have someone join and feel it was not for them.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;If you want deep machine learning theory or model training, this is not the course&lt;/li&gt;&lt;li&gt;If you want a recorded, watch-at-your-own-pace course, this is live and structured around live participation&lt;/li&gt;&lt;li&gt;If you expect AI to replace your testing skills, this course teaches the opposite: AI as a tool in the hands of a skilled tester&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Common questions&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Do I need to know coding?&lt;/strong&gt; Basic familiarity helps for the automation-focused sessions, but the course is built for QA engineers, including manual testers. Every hands-on exercise is walked through live, step by step.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What if I miss a session?&lt;/strong&gt; Recordings are provided for every session.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What tools do I need?&lt;/strong&gt; Everything you need is covered in the setup session at the start. You will not be asked to buy a stack of paid tools.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Is this the same as Batch 01?&lt;/strong&gt; The core curriculum is the same practitioner-focused approach, updated wherever the tools themselves have changed since the last batch.&lt;/p&gt;&lt;h3&gt;How to join&lt;/h3&gt;&lt;p&gt;The new batch starts &lt;strong&gt;Saturday, 25 July&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Registration link: &lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https://www.youtube.com/redirect?event=comments&amp;amp;redir_token=QUFFLUhqa2dEaUEwVHNvczlLeDczajRYNklmN0R5UklnUXxBQ3Jtc0tsdE9vRW80RzU5RkpHaThQZUQ4Mm85UV90NDhnQWlvdWVzN25LQnE2U2dzS1NWRDYwQ0VQNG01R3AtV2k5VlJaZ0ZZN01BWkdTQXJuMlJyaGRKTG5CV1JsQks2aFpNNDVINE16Q1o5Y2JhZ1F1MkhqNA&amp;amp;q=https%3A%2F%2Fforms.gle%2FTfAjJQ1EU3xtxu3x9&quot;&gt;https://forms.gle/TfAjJQ1EU3xtxu3x9&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If you have questions before registering, drop them in the comments or reach out to me directly.&lt;/p&gt;&lt;p&gt;See you in class.&lt;/p&gt;&lt;iframe width=&quot;854&quot; height=&quot;479&quot; src=&quot;https://cdn.embedly.com/widgets/media.html?src=https:%2f%2fwww.youtube.com%2fembed%2fXuHYwIaXGQ0%3ffeature%3doembed%26autoplay%3d0%26fs%3d1%26rel%3d0%26playsinline%3d1%26modestbranding%3d1%26origin%3dhttps:%252f%252fbazqux.com&amp;amp;display_name=YouTube&amp;amp;url=https:%2f%2fwww.youtube.com%2fwatch%3fv%3dXuHYwIaXGQ0&amp;amp;image=https:%2f%2fi.ytimg.com%2fvi%2fXuHYwIaXGQ0%2fhqdefault.jpg&amp;amp;type=text%2fhtml&amp;amp;schema=youtube&quot; allow=&quot;autoplay; fullscreen; encrypted-media; clipboard-write; picture-in-picture; web-share&quot; sandbox=&quot;allow-same-origin allow-scripts allow-forms allow-popups allow-presentation&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;&lt;p&gt;&lt;em&gt;I run ABAutomationHub, where I create content on QA, automation, and AI for testers. This course is the live, hands-on version of everything I have been building and teaching in that space.&lt;/em&gt;&lt;/p&gt;</summary><author><name>Anshita Bhasin</name></author><source gr:stream-id="feed/https://medium.com/feed/@anshita.bhasin"><id>tag:google.com,2005:reader/feed/https://medium.com/feed/@anshita.bhasin</id><title type="html">Stories by Anshita Bhasin on Medium</title><link rel="alternate" href="https://medium.com/@anshita.bhasin?source=rss-cf4a02363eb1------2" type="text/html"></link></source></entry><entry gr:crawl-timestamp-msec="1784275476654"><id gr:original-id="tag:blogger.com,1999:blog-7028399228927965110.post-5286064466003723709">tag:google.com,2005:reader/item/0000074600000079</id><category term="Testing and Conferences"></category><title type="html">STeP-IN 2026: My Proposal for the Conference Theme</title><published>2026-07-17T08:04:36Z</published><updated>2026-07-17T08:04:36Z</updated><link rel="alternate" href="https://testinggarage.blogspot.com/2026/07/my-proposal-for-the-step-in-2026-conference-theme-ravisuriya.html" type="text/html"></link><summary type="html">&lt;p&gt; &lt;/p&gt;&lt;p&gt;I submitted a theme proposal for the STeP-IN Summit 2026. Below is the theme I proposed, along with the abstract explaining why I believe it is the need of the hour.&lt;/p&gt;&lt;p&gt;To enable AI and Agents to truly help us across the SDLC, engineers and businesses must restructure and realign the way they work. This change is critical and necessary.&lt;/p&gt;&lt;p&gt;Simply introducing AI and Agents into an organization is not enough. Their adoption requires a cultural shift in the organization and a change in the way engineers work.&lt;/p&gt;&lt;p&gt;Unless this shift happens, AI and agents cannot effectively understand and respond to the context in which they are being used. This is what I am learning.&lt;/p&gt;&lt;p&gt;My theme proposal is not selected, but I congratulate the person whose proposal is chosen.&lt;/p&gt;&lt;p&gt;See you at STeP-IN 2026!&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: center&quot;&gt;Theme&lt;/h2&gt;&lt;h3 style=&quot;text-align: center&quot;&gt;&amp;quot;Restructuring and Orchestrating Myself and Tests with AI and Agents&amp;quot;&lt;/h3&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;h4&gt;Abstract&lt;/h4&gt;&lt;p&gt;The AI solution and tooling is everywhere in the SDLC for an
engineer and business.&lt;/p&gt;

&lt;p&gt;How do the AI and Agents influence &lt;u&gt;the below factors&lt;/u&gt; in my work
and organization?&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; text-indent: -18pt&quot;&gt;&lt;span style=&quot;mso-list: Ignore&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-variation-settings: normal&quot;&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left&quot;&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -18pt&quot;&gt;The confidence in release&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -18pt&quot;&gt;The confidence in code and tests generated and written with assistance&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -18pt&quot;&gt;The speed of release&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -18pt&quot;&gt;The cost of going wrong in production&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;For an engineer, using AI and Agents is about efficient
productivity and personal upskilling.&lt;span style=&quot;mso-spacerun: yes&quot;&gt; 
&lt;/span&gt;For an engineering leader it is about the velocity and displacement in
business.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;  &lt;/span&gt;&lt;u&gt;The same AI and Agents but the
two different expectations and interpretations!&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;To achieve, both the engineer and engineering leader have to
restructure and orchestrate themselves individually and as a team with AI and
Agentic solutions.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;  &lt;/span&gt;If not, above
mentioned factors will get impacted and derail the delivery.&lt;/p&gt;

&lt;p&gt;Anytime the answer to above said factors is not confident, then
incorporation of AI and Agentic solutions in SDLC is not working.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;  &lt;/span&gt;Then, it is just bragging – &lt;i&gt;do you know how
our engineers spend the whole day using AI to code, test and ship?&lt;/i&gt;  That’s it.&lt;span style=&quot;mso-spacerun: yes&quot;&gt;  &lt;/span&gt;It is not serving the business and engineer. &lt;/p&gt;

&lt;p&gt;This is where, this &lt;u&gt;theme&lt;/u&gt; is critical and a need –&lt;span style=&quot;background-color: white&quot;&gt;
&lt;/span&gt;&lt;b style=&quot;background-color: #eeeeee&quot;&gt;Restructuring and Orchestrating Myself and Tests with AI and Agents&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;Most of us are using AI and Agents without asking,&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -18pt&quot;&gt;How it has impacted the releases cycle compared
to last year?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -18pt&quot;&gt;How confident and fast we are in coding and testing
compared to last year?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -18pt&quot;&gt;Has it cut down the time of testing and
automation compared to last year?&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;If there is no confident answer, you know it – one has to
restructure and orchestrate the self with AI.&lt;/p&gt;

&lt;p&gt;How to do it?&lt;span style=&quot;mso-spacerun: yes&quot;&gt;  &lt;/span&gt;The test
engineers, SDETs &amp;amp; engineering leaders to share and talk on how they are doing
it in their work and org.&lt;/p&gt;</summary><author><name>Unknown</name></author><source gr:stream-id="feed/https://testinggarage.blogspot.com/feeds/posts/default"><id>tag:google.com,2005:reader/feed/https://testinggarage.blogspot.com/feeds/posts/default</id><title type="html">Testing Garage</title><link rel="alternate" href="https://testinggarage.blogspot.com/" type="text/html"></link></source></entry></feed>