<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mochammad Alie</title>
    <description>The latest articles on DEV Community by Mochammad Alie (@mochammmad_alie).</description>
    <link>https://dev.to/mochammmad_alie</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3284142%2Ff9b51a81-170e-4c7e-a606-c617002c26b1.jpg</url>
      <title>DEV Community: Mochammad Alie</title>
      <link>https://dev.to/mochammmad_alie</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mochammmad_alie"/>
    <language>en</language>
    <item>
      <title>Things Junior QA Engineers Don’t Expect in Their First QA Role</title>
      <dc:creator>Mochammad Alie</dc:creator>
      <pubDate>Sun, 21 Dec 2025 15:59:07 +0000</pubDate>
      <link>https://dev.to/mochammmad_alie/things-junior-qa-engineers-dont-expect-in-their-first-qa-role-527k</link>
      <guid>https://dev.to/mochammmad_alie/things-junior-qa-engineers-dont-expect-in-their-first-qa-role-527k</guid>
      <description>&lt;p&gt;Hi there 👋🏻! I'm Alie, working as a Software QA Engineer (freshhh...) at SaaS company.&lt;/p&gt;

&lt;p&gt;In this post, I want to share my experience after successfully transitioning from Customer Support to a QA Engineer role.&lt;br&gt;
Hopefully, this can give you some context—and maybe a bit of clarity—if you’re considering a similar path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;After graduating from university, I started my professional career as a Customer Support Associate at a SaaS company.&lt;/p&gt;

&lt;p&gt;After about a year, I began to feel conflicted. I enjoyed working with the product and users, but I also felt the urge to grow into a different role. At that time, I considered several options, such as:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;SEO Specialist&lt;/li&gt;
&lt;li&gt;QA Engineer&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After a lot of thinking (and persistence), I finally decided to pursue a QA Engineer role.&lt;/p&gt;

&lt;p&gt;And… here I am.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. QA Is Not Just About Finding Bugs
&lt;/h2&gt;

&lt;p&gt;During my first month as a QA Engineer, I realized something important:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;QA is not just about finding bugs or executing test cases.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As a QA, you’re expected to be proactive in the software development process.&lt;/p&gt;

&lt;p&gt;This was very different from my role in Customer Support. As a QA Engineer, I needed to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Get involved in product development discussions&lt;/li&gt;
&lt;li&gt;Review mockups and designs&lt;/li&gt;
&lt;li&gt;Understand the business goals behind each feature&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So before jumping into a QA role, I highly recommend sharpening soft skills such as:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Business understanding&lt;/li&gt;
&lt;li&gt;Logical thinking&lt;/li&gt;
&lt;li&gt;User experience awareness&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These matter more than I initially thought.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Understanding the Product Matters More Than Tools
&lt;/h2&gt;

&lt;p&gt;One thing I’m very grateful for is my background in Customer Support.&lt;/p&gt;

&lt;p&gt;By dealing directly with users and solving their problems, I gained deep product knowledge even before becoming a QA Engineer. Because of that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I could work more independently&lt;/li&gt;
&lt;li&gt;My onboarding process was much faster&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tip:&lt;br&gt;
If you’re applying for a QA Engineer role, try to understand:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What the product does&lt;/li&gt;
&lt;li&gt;Who the target users are&lt;/li&gt;
&lt;li&gt;What problems the product is solving&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This will help you understand the system far beyond what tools alone can teach you. DO NOT just apply by feel the role is matches with your dream.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Automation Is Not the First Priority
&lt;/h2&gt;

&lt;p&gt;In today’s job market, many Junior QA roles require some automation skills—and sometimes even hands-on experience.&lt;/p&gt;

&lt;p&gt;While automation is important, I learned that it should not be the first priority.&lt;/p&gt;

&lt;p&gt;Automation is a tool to save time on repetitive work—not the goal itself.&lt;/p&gt;

&lt;p&gt;Before automating any test, there are important questions to ask:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Do we really need to automate this test?&lt;/li&gt;
&lt;li&gt;Why should this test be automated?&lt;/li&gt;
&lt;li&gt;What happens if we don’t automate it?&lt;/li&gt;
&lt;li&gt;Is this scenario critical to the user?&lt;/li&gt;
&lt;li&gt;Is the feature stable enough to automate?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Without business and product understanding, automation can easily become wasted effort.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Reading Logs and Errors Is a Core Skill
&lt;/h2&gt;

&lt;p&gt;Let me be very honest here:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Do not become a QA Engineer if you’re lazy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;QA Engineers read a lot (read = understand).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In daily work, you’ll:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Read the Product Documents&lt;/li&gt;
&lt;li&gt;Review and understand the UI Mockup&lt;/li&gt;
&lt;li&gt;Read logs from development and testing&lt;/li&gt;
&lt;li&gt;Analyze bug reports and error messages&lt;/li&gt;
&lt;li&gt;Debug failed automated tests&lt;/li&gt;
&lt;li&gt;Inspect API responses and system behavior&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All of this requires &lt;strong&gt;patience&lt;/strong&gt; and &lt;strong&gt;curiosity&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you dislike reading logs, errors, or technical details, QA can feel very exhausting.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Communication Skills from Customer Support Are a Big Advantage
&lt;/h2&gt;

&lt;p&gt;Another thing I truly appreciate from my Customer Support background is &lt;strong&gt;communication skill&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In Customer Support, I interacted with users from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Different countries&lt;/li&gt;
&lt;li&gt;Different cultures&lt;/li&gt;
&lt;li&gt;Different communication styles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That experience helped me:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Explain issues more clearly&lt;/li&gt;
&lt;li&gt;Communicate better with developers and product teams&lt;/li&gt;
&lt;li&gt;Think from a real user’s perspective&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When I test new or existing features, I often ask myself:&lt;/p&gt;

&lt;p&gt;“How would an actual user experience this?”&lt;/p&gt;

&lt;p&gt;That mindset is incredibly valuable in QA.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I hope this post gives you a small preview of what it’s like before jumping into a Software QA Engineer role.&lt;/p&gt;

&lt;p&gt;Transitioning roles is not easy—but it’s possible.&lt;/p&gt;

&lt;p&gt;Remember:&lt;br&gt;
Chase your dreams regardless of the situation, because only you truly understand your own capabilities.&lt;/p&gt;

&lt;p&gt;Good luck on your journey 🚀&lt;/p&gt;

</description>
      <category>switchcareer</category>
      <category>qa</category>
      <category>tech</category>
    </item>
    <item>
      <title>Playwright: Test Structure (Tiny part that bring a huge impact)</title>
      <dc:creator>Mochammad Alie</dc:creator>
      <pubDate>Sun, 21 Dec 2025 04:47:51 +0000</pubDate>
      <link>https://dev.to/mochammmad_alie/playwright-test-structure-tiny-part-that-bring-a-huge-impact-43mj</link>
      <guid>https://dev.to/mochammmad_alie/playwright-test-structure-tiny-part-that-bring-a-huge-impact-43mj</guid>
      <description>&lt;p&gt;Hi there 👋! This is my first post since I joined dev.to&lt;br&gt;
I’m a Junior QA Engineer who recently transitioned from Customer Support into QA.&lt;/p&gt;

&lt;p&gt;While I don’t have tons of experience yet—especially when it comes to discussing automated testing at a deep level. However, during my day-to-day work as a QA Engineer, I’ve noticed one important thing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Many QA Engineers write automated tests, but not all of them truly understand their test structure.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And... that often becomes a problem.&lt;/p&gt;

&lt;p&gt;Without a clear and well-thought-out test structure, automated tests can quickly become:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hard to maintain&lt;/li&gt;
&lt;li&gt;Difficult to debug when tests fail&lt;/li&gt;
&lt;li&gt;Risky to scale as the product grows&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One simple but often overlooked improvement is &lt;strong&gt;how we structure our automated tests&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Even though test structure sounds very basic, many QA Engineers—especially those who are new to automation or have limited hands-on experience with real projects—may not be fully aware of its importance.&lt;/p&gt;

&lt;p&gt;In this post, I want to share a few simple tips about managing test structure, based on what I’ve learned so far.&lt;br&gt;
It might be a small topic, but I believe it has a big impact.&lt;/p&gt;

&lt;p&gt;Hopefully, through this tiny post, we can become better QA Engineers—not only in terms of technical skills, but also in:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Business mindset&lt;/li&gt;
&lt;li&gt;Risk awareness&lt;/li&gt;
&lt;li&gt;Long-term maintainability thinking&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let’s get started 🚀&lt;/p&gt;

&lt;p&gt;I'll use my automated-test project as a reference, and why this approach works better than sticking to the default structure.&lt;/p&gt;
&lt;h2&gt;
  
  
  📂 Default Playwright Test Structure (The Starting Point)
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tests/
 ├── example.spec.ts
 ├── another-test.spec.ts
playwright.config.ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This is totally fine for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;demos&lt;/li&gt;
&lt;li&gt;tutorials&lt;/li&gt;
&lt;li&gt;very small projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But as tests grow, this structure quickly starts to hurt you. &lt;/p&gt;
&lt;h3&gt;
  
  
  Common problems with the default structure:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Selectors are duplicated across test files&lt;/li&gt;
&lt;li&gt;Tests become long and hard to read&lt;/li&gt;
&lt;li&gt;UI changes require updating many test files&lt;/li&gt;
&lt;li&gt;Debugging failed tests takes longer&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s why, in my project, I decided to move away from the default structure early.&lt;/p&gt;
&lt;h2&gt;
  
  
  🧱 Custom Test Structure Used in the Repository
&lt;/h2&gt;

&lt;p&gt;Instead of placing everything directly inside *.spec.ts files, I separated concerns clearly.&lt;/p&gt;

&lt;p&gt;High-level structure (simplified):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tests/
 ├── pages/
 ├── fixtures/
 ├── utils/
 ├── ai/
 │   └── ai-movie.spec.ts

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  📄 1. Page Object Model (POM)
&lt;/h3&gt;

&lt;p&gt;The pages/ folder contains page classes that handle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;selectors&lt;/li&gt;
&lt;li&gt;page actions (click, fill, submit, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of writing selectors directly in test files, tests interact with the page through methods like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;search movie&lt;/li&gt;
&lt;li&gt;submit prompt&lt;/li&gt;
&lt;li&gt;read AI response&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why this matters:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;UI changes only affect page files&lt;/li&gt;
&lt;li&gt;Test files stay clean and readable&lt;/li&gt;
&lt;li&gt;Less selector duplication&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;👉 Compared to the default Playwright approach, this dramatically reduces maintenance cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔁 2. Fixtures for Shared Setup
&lt;/h3&gt;

&lt;p&gt;The fixtures/ folder contains reusable setup logic, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;navigating to the app&lt;/li&gt;
&lt;li&gt;preparing test state&lt;/li&gt;
&lt;li&gt;shared test configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This prevents every test from repeating the same setup steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages over default structure:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;tests focus on behavior, not setup&lt;/li&gt;
&lt;li&gt;easier to standardize test flow&lt;/li&gt;
&lt;li&gt;fewer copy-paste mistakes&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🧰 3. Utilities for Complex Logic
&lt;/h3&gt;

&lt;p&gt;In AI-related testing, some validations are not trivial.&lt;br&gt;
For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checking response format&lt;/li&gt;
&lt;li&gt;Validating content rules&lt;/li&gt;
&lt;li&gt;Handling async behavior consistently&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those logic pieces live in utils/.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this beats default structure:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;assertions stay reusable&lt;/li&gt;
&lt;li&gt;test files don’t become bloated&lt;/li&gt;
&lt;li&gt;logic can be improved without touching tests&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;📁 4. Feature-Based Test Grouping&lt;/p&gt;

&lt;p&gt;Instead of random spec files, tests are grouped by feature.&lt;br&gt;
For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI-related tests live in their own folder&lt;/li&gt;
&lt;li&gt;future features can follow the same pattern&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Compared to default structure:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Easier navigation&lt;/li&gt;
&lt;li&gt;Clearer ownership&lt;/li&gt;
&lt;li&gt;Better scalability as features grow&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🧠 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Even as a junior QA Engineer, I’ve learned that good structure is a skill, not a luxury.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You don’t need:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A huge project&lt;/li&gt;
&lt;li&gt;Years of experience&lt;/li&gt;
&lt;li&gt;Perfect architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What you do need is the mindset that:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Automated tests are long-term assets, not one-time scripts.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;By moving beyond Playwright’s default structure and organizing tests intentionally, you:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reduce future pain&lt;/li&gt;
&lt;li&gt;Improve collaboration&lt;/li&gt;
&lt;li&gt;Build better testing habits early&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hopefully, this post helps other junior QAs avoid the mistakes I’m still learning from 🚀&lt;/p&gt;

&lt;p&gt;Feel free to take a look onto &lt;a href="https://github.com/mochammadaliesf/ai-movie-finder" rel="noopener noreferrer"&gt;my project here&lt;/a&gt; and make it as reference &lt;/p&gt;

&lt;p&gt;Let's connect!&lt;/p&gt;

</description>
      <category>playwright</category>
      <category>qa</category>
      <category>typescript</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
