2-Week Junior SQA Prep Course Guide
2-Week Junior SQA Prep Course Guide
Course
I'll be your guide through this journey! Let's create a focused, practical plan to prepare you for
Junior SQA roles in Bangladesh's IT sector within 2 weeks.
Resources:
Daily Task: Create a document with 20 test cases for a Facebook login page
Morning:
Afternoon:
Practice Project: Find bugs on any website and document them professionally
Morning:
• Explore free testing tools: Selenium IDE basics, Postman for API testing
• Introduction to SQL for testers (basic SELECT, WHERE, JOIN queries)
• Understanding requirements and creating RTM (Requirements Traceability Matrix)
Afternoon:
Morning:
Afternoon:
Morning:
Afternoon:
Morning:
Afternoon:
All Day:
Are you ready to begin? Do you have any questions about the plan, or should we start with
understanding what to focus on for Day 1?
Software Quality Assurance (SQA) is about preventing defects in software by ensuring quality
processes are followed throughout development.
Watch this now (30 minutes): Go to YouTube and search: "SDLC in Software Testing
Tutorial" by Guru99 Take notes on each SDLC phase.
1. Requirement Analysis
o Understand what to test
o Identify testable requirements
2. Test Planning
o Create test strategy
o Estimate effort and resources
3. Test Case Development
o Write detailed test cases
o Prepare test data
4. Test Environment Setup
o Configure testing environment
o Install necessary tools
5. Test Execution
o Run test cases
o Log defects found
6. Test Closure
o Complete test reports
o Lessons learned
Your Task (30 minutes): Read this article: Search "Software Testing Life Cycle STLC" on
[Link] Create a simple chart showing all 6 phases.
Major Categories:
Your Task (30 minutes): Search YouTube: "Types of Software Testing" by Software Testing
Mentor List 10 types of testing with one-line definitions.
� LUNCH BREAK (12:30 PM - 2:00 PM)
What is a Test Case? A test case is a set of conditions to verify if a software feature works
correctly.
Field Description
Test Case ID TC_001
Test Scenario Verify login functionality
Test Case
User login with valid credentials
Description
Pre-conditions User is registered
1. Open application<br>2. Enter username<br>3. Enter password<br>4.
Test Steps
Click Login
Test Data Username: test@[Link]<br>Password: Test@123
Expected Result User successfully logs in
Actual Result (Fill after execution)
Status Pass/Fail
Steps:
1. Navigate to [Link]
2. Enter valid email address
3. Click "Next"
4. Enter valid password
5. Click "Next"
Test Data:
Email: testuser@[Link]
Password: ValidPass@123
Part 6: Hands-On Practice (150 minutes)
Negative Test Cases (Things that should fail gracefully): 6. Login with invalid email 7. Login
with invalid password 8. Login with empty email field 9. Login with empty password field 10.
Login with special characters in email 11. Login with SQL injection attempt 12. Login with very
long password (500 characters) 13. Login with correct email but wrong case password 14. Login
with unregistered email 15. Login after account is locked (multiple wrong attempts)
Boundary & Edge Cases: 16. Login with minimum length password 17. Login with maximum
length password 18. Login with email at maximum allowed length 19. Check password masking
(hidden characters) 20. Check browser back button after logout
Pre-conditions:
- User has active Facebook account
- Browser is opened
Test Steps:
1. Navigate to [Link]
2. Enter valid email in email field
3. Enter valid password in password field
4. Click "Log In" button
Test Data:
Email: yourtest@[Link]
Password: TestPass@123
Expected Result:
- User is redirected to Facebook News Feed
- User's name appears in top right corner
Priority: High
Type: Functional, Positive
Remember: Don't rush! Quality > Quantity. Take breaks every 60-90 minutes.
Are you starting now? Do you have any questions before you begin Day 1?
Let me know when you've completed the morning session, and I'll check in on your progress!
These techniques help you create comprehensive test cases without knowing the internal code.
Concept: Divide input data into groups (partitions) where all values behave similarly.
Partitions:
Instead of testing 100 values, test one value from each partition (3 test cases instead of 100!)
Partitions:
Conditions:
Test Scenario: High-level functionality to test (WHAT to test) Test Case: Detailed steps to test
(HOW to test)
Example:
• 5 test scenarios
• 3 test cases for each scenario (15 total)
Alternative paths:
- REJECTED → Not a valid bug
- DEFERRED → Will fix in future release
- REOPENED → Bug still exists after fix
Examples:
Severity: Major
Priority: P1
Status: New
Reported By: [Your Name]
Assigned To: Development Team
Environment: Windows 10, Chrome 120, Production
Steps to Reproduce:
1. Navigate to [Link]/login
2. Enter email: test@[Link]
3. Enter password: Test@123
4. Click "Login" button
Expected Result:
User should be logged in and redirected to dashboard
Actual Result:
Error message displayed: "Invalid credentials"
User remains on login page
Attachments:
- Screenshot: login_error.png
- Console log: console_output.txt
Additional Information:
- Issue started after today's deployment
- Same credentials work on staging environment
- Affects all users
1. [Link]
2. [Link]
3. [Link]
4. [Link]
5. Any local e-commerce site
Functional Issues:
• Broken links
• Forms not submitting
• Search not working
• Filters not applying
• Images not loading
• Payment flow issues
UI/UX Issues:
• Text overlapping
• Buttons not aligned
• Responsive design issues (test on mobile view)
• Inconsistent fonts/colors
• Missing labels
Validation Issues:
BUG #1
=====
Title: Search button not working on mobile view
Severity: Major
Priority: P2
Steps to Reproduce:
1. Open [Link] on mobile browser (Chrome Android)
2. Click on search icon in header
3. Enter "mobile phone" in search field
4. Click search button
Environment:
- Device: Android 12
- Browser: Chrome Mobile 120
- Screen size: 360x780
• 5 Functional bugs
• 5 UI/UX bugs
• 5 Validation bugs
Write 10 detailed test cases using the techniques you learned today:
Pre-conditions:
- User is logged in
- Product "Samsung Galaxy A54" is in stock (50 units available)
- Minimum order quantity: 1
- Maximum order quantity: 10
Test Steps:
1. Navigate to product page
2. Enter quantity: 1 (minimum boundary)
3. Click "Add to Cart" button
4. Navigate to cart page
Test Data:
Product: Samsung Galaxy A54
Price: 42,000 BDT
Quantity: 1
Expected Result:
- Product added to cart successfully
- Cart shows: 1 item
- Subtotal: 42,000 BDT
- Success message: "Product added to cart"
Day 3 Preview
Tomorrow we'll cover:
How are you feeling about Day 2? Are you ready to start, or do you have questions about
anything from today's plan?
Once you finish the morning session, check back with me and I'll guide you through the
afternoon!
Day 3: Test Documentation & SQL for
Testers �
Welcome to Day 3! Today you'll learn how to create professional test documentation and
essential SQL skills that every SQA engineer needs.
What is RTM? A document that maps requirements to test cases, ensuring complete test
coverage and tracking.
Why is it important?
RTM Format:
Requirements:
REQ_CHK_001: User must select delivery address
REQ_CHK_002: User can apply discount coupon
REQ_CHK_003: Payment options: bKash, Card, COD
REQ_CHK_004: Order confirmation email sent after payment
Req ID Requirement Test Cases Coverage Priority
Select delivery TC_CHK_001, TC_CHK_002,
REQ_CHK_001 100% High
address TC_CHK_003
Apply discount
REQ_CHK_002 TC_CHK_004, TC_CHK_005 100% Medium
coupon
TC_CHK_006, TC_CHK_007,
REQ_CHK_003 Payment options 100% High
TC_CHK_008
REQ_CHK_004 Confirmation email TC_CHK_009 100% High
Requirements:
1. User must provide first name and last name
2. Email or phone number is required
3. Password must be minimum 8 characters
4. User must select date of birth
5. User must select gender
6. User must be at least 13 years old
7. Terms and conditions must be accepted
Create:
What is a Test Plan? A comprehensive document outlining the testing strategy, scope,
resources, and schedule.
2. INTRODUCTION
Purpose of this test plan
Project background
3. SCOPE
In Scope:
- User registration and login
- Product search and filters
- Add to cart functionality
- Checkout process
Out of Scope:
- Admin panel
- Payment gateway (third-party)
- Email server
4. TEST STRATEGY
Types of Testing:
- Functional Testing
- UI/UX Testing
- Compatibility Testing (Chrome, Firefox, Safari)
- Responsive Testing (Mobile, Tablet, Desktop)
Testing Approach:
- Manual testing for Phase 1
- Automation for regression (future)
5. TEST ENVIRONMENT
- OS: Windows 10, macOS, Android, iOS
- Browsers: Chrome 120+, Firefox 115+, Safari 17+
- Database: MySQL 8.0
- Test Server: [Link]
6. TEST SCHEDULE
Week 1: Test planning & test case creation
Week 2: Test execution - Functional testing
Week 3: Regression testing
Week 4: UAT & Bug fixes
7. RESOURCES
QA Team: 3 testers
Tools: Jira, Postman, Chrome DevTools
Test Data: Provided by development team
8. DELIVERABLES
- Test Plan document
- Test Cases (200+)
- RTM
- Test Execution Report
- Bug Reports
- Test Summary Report
9. ENTRY CRITERIA
- Requirements are finalized
- Test environment is ready
- Test data is available
- Build is deployed to staging
12. APPROVALS
Prepared by: QA Lead
Reviewed by: Project Manager
Approved by: Client
Create a simplified 1-page Test Plan for testing a mobile food delivery app (like Pathao Food).
Include:
What is Test Summary Report? Document created after test execution showing overall results
and metrics.
Template:
2. TEST METRICS
3. DEFECT SUMMARY
By Severity:
- Critical: 2
- Major: 8
- Minor: 12
- Trivial: 6
By Status:
- Fixed: 18
- Open: 7
- Deferred: 3
4. TEST COVERAGE
Modules Tested:
- Login/Registration: 100% coverage, 95% pass
- Product Search: 100% coverage, 85% pass
- Cart: 100% coverage, 90% pass
- Checkout: 80% coverage, 80% pass (pending fixes)
Blockers:
- Payment gateway integration not working (BUG_145)
Concerns:
- Checkout module has 20% failure rate
- Need additional testing time
6. RECOMMENDATIONS
7. SIGN-OFF
QA Lead: __________
Project Manager: __________
Date: __________
-- Basic SELECT
SELECT * FROM users;
-- Count records
SELECT COUNT(*) FROM users;
-- Distinct values
SELECT DISTINCT city FROM users;
Testing Example:
-- Greater than
SELECT * FROM orders WHERE total_amount > 5000;
-- Not equal
SELECT * FROM products WHERE status != 'deleted';
-- IN - Multiple values
SELECT * FROM orders WHERE payment_method IN ('bKash', 'Nagad', 'Rocket');
-- BETWEEN - Range
SELECT * FROM orders
WHERE order_date BETWEEN '2026-01-01' AND '2026-01-18';
Testing Scenarios:
Testing Example:
-- 13. Join users and orders, show user name with their orders
Day 4 Preview
Tomorrow we'll cover:
Great progress so far! You're already 3 days in. How do you feel about the content? Are
you practicing along or do you need me to slow down on any topic?
Ready to start Day 3? Let me know when you complete the morning session! �
I'll use [Link] as an example. You can follow the same approach for your chosen site.
For [Link]:
2. OBJECTIVE
To verify the functional and UI aspects of [Link] e-commerce
platform before recommending for production use.
3. SCOPE
IN SCOPE:
- User registration and login functionality
- Book search and filtering
- Shopping cart operations
- Checkout process (without actual payment)
- Responsive design testing (Desktop, Mobile)
OUT OF SCOPE:
- Payment gateway integration (third-party)
- Backend admin panel
- Email server functionality
- Performance/Load testing
4. TEST APPROACH
- Black box testing
- Manual functional testing
- Exploratory testing
- Cross-browser testing (Chrome, Firefox)
- Responsive testing (Desktop 1920x1080, Mobile 375x667)
5. TEST ENVIRONMENT
- OS: Windows 10
- Browsers: Chrome 120, Firefox 115
- Mobile: Chrome DevTools mobile emulation
- URL: [Link]
- Test Data: Self-created test accounts
6. SCHEDULE
Day 1: Test planning & test case creation (Today Morning)
Day 1: Test execution (Today Afternoon)
Day 1: Bug reporting & summary report (Today Evening)
7. DELIVERABLES
✓ Test Plan
✓ Test Cases (minimum 50)
✓ RTM
✓ Test Execution Report
✓ Bug Reports (minimum 10)
✓ Test Summary Report
8. ENTRY CRITERIA
✓ Website is accessible
✓ Test plan approved (self-review)
✓ Test cases are ready
9. EXIT CRITERIA
✓ All test cases executed
✓ All bugs documented
✓ Test summary report completed
10. RISKS
- Website may have server downtime
- Some features may require real payment (will skip)
11. ASSUMPTIONS
- Website is stable version
- No access to backend/database
- Testing as an end user
Your Task: Create a Test Plan for YOUR chosen website using this template
Template to use:
---------------------------------------------------
Pre-conditions:
- Navigate to [Link]
- Click on "Sign In" or "Register" option
Test Steps:
1. Click on "Create New Account" or "Register"
2. Enter valid first name: "Test"
3. Enter valid last name: "User"
4. Enter valid email: "testuser12345@[Link]"
5. Enter valid phone: "01712345678"
6. Enter valid password: "Test@12345"
7. Re-enter password: "Test@12345"
8. Check "I agree to terms and conditions"
9. Click "Register" or "Sign Up" button
Expected Result:
- Registration successful
- Success message displayed: "Registration successful" or similar
- User redirected to homepage or dashboard
- User is logged in automatically
Test Data:
First Name: Test
Last Name: User
Email: testuser12345@[Link]
Phone: 01712345678
Password: Test@12345
Priority: High
Type: Functional, Positive
Technique: N/A
---------------------------------------------------
Pre-conditions:
- User with email "testuser12345@[Link]" already exists
Test Steps:
1. Navigate to registration page
2. Enter first name: "Another"
3. Enter last name: "User"
4. Enter existing email: "testuser12345@[Link]"
5. Enter phone: "01812345678"
6. Enter password: "Test@12345"
7. Click Register
Expected Result:
- Registration fails
- Error message: "Email already exists" or similar
- User remains on registration page
Test Data:
Email: testuser12345@[Link] (existing)
Priority: High
Type: Functional, Negative
Technique: Equivalence Partitioning
---------------------------------------------------
Expected Result:
- Validation error: "Please enter valid email"
- Registration blocked
Priority: Medium
Type: Functional, Negative
Technique: Equivalence Partitioning
---------------------------------------------------
• Valid registration
• Existing email
• Invalid email format
• Password mismatch
• Empty mandatory fields
• Password strength validation
• Terms & conditions unchecked
• Phone number validation
TOTAL REQUIREMENTS: 7
TOTAL TEST CASES: 50
OVERALL COVERAGE: 100%
Your Task: Create RTM mapping all your test cases to requirements
Execution Process:
Bug Reporting:
BUG REPORT #1
=============
Bug ID: BUG_ROK_001
Title: Duplicate user registration allowed with same email
Severity: Critical
Priority: P1
Status: New
Reported By: [Your Name]
Date: 18-Jan-2026
Steps to Reproduce:
1. Register user with email: test123@[Link]
2. Complete registration successfully
3. Logout
4. Try to register again with same email: test123@[Link]
5. Enter different name and phone
6. Click Register
Expected Result:
- System should show error: "Email already registered"
- Registration should be blocked
Actual Result:
- No error message shown
- Second registration successful
- Two accounts created with same email
Reproducibility: 5/5 times (100%)
Impact:
- Data integrity issue
- Users can create multiple accounts
- Potential for fraud/abuse
Suggested Fix:
- Add email uniqueness validation before registration
- Check database for existing email
---------------------------------------------------
BUG REPORT #2
=============
Bug ID: BUG_ROK_002
Title: Search button unresponsive on mobile view
Severity: Major
Priority: P2
Status: New
Steps to Reproduce:
1. Open [Link] in mobile view
2. Click on search icon in header
3. Enter "Harry Potter" in search box
4. Click/tap search button
Expected Result:
- Search results page loads
- Books matching "Harry Potter" displayed
Actual Result:
- Search button doesn't respond to click
- No results shown
- User stuck on same page
Impact:
- Mobile users cannot search
- Major functionality broken for mobile traffic
- Poor user experience
Workaround:
- Works fine on desktop view
- Mobile users can use desktop mode
Related Test Case: TC_SEARCH_001
---------------------------------------------------
Your Task:
What is Jira? Industry-standard project management and bug tracking tool used by 90%+ IT
companies in Bangladesh.
1. Go to [Link]/software/jira
2. Click "Get it free"
3. Sign up with your email
4. Choose "Jira Software" (Free plan)
5. Create a project: "SQA Practice Project"
6. Choose template: "Kanban" or "Scrum"
1. Issue Types:
2. Issue Status:
3. Priority:
• Highest, High, Medium, Low, Lowest
4. Components:
Step-by-step:
Description:
When attempting to register with an already existing email address,
the system does not show any validation error and allows duplicate
registration.
Steps to Reproduce:
1. Register user with email: test123@[Link]
2. Complete registration successfully
3. Logout
4. Try to register again with same email: test123@[Link]
5. Click Register
Expected Result:
Error message: "Email already registered"
Actual Result:
Registration successful, duplicate account created
Environment:
- Browser: Chrome 120
- OS: Windows 10
- URL: [Link]
Attachments:
- Screenshot_duplicate_registration.png
3. Click "Create"
Jira Workflow for Testers:
---------------------------------------------------
1. EXECUTIVE SUMMARY
---------------------------------------------------
2. TEST METRICS
PASS: 38 (76%)
FAIL: 12 (24%)
BLOCKED: 0 (0%)
NOT EXECUTED: 0 (0%)
---------------------------------------------------
3. MODULE-WISE RESULTS
---------------------------------------------------
4. DEFECT SUMMARY
By Severity:
- Critical: 3 (25%)
- Major: 5 (42%)
- Minor: 3 (25%)
- Trivial: 1 (8%)
By Priority:
- P1 (Immediate): 3
- P2 (High): 5
- P3 (Medium): 3
- P4 (Low): 1
By Module:
- Registration: 2 bugs
- Search: 3 bugs
- Cart: 2 bugs
- Checkout: 5 bugs
By Status:
- Open: 12
- Fixed: 0
- Retested: 0
---------------------------------------------------
---------------------------------------------------
6. TEST COVERAGE
---------------------------------------------------
Blockers:
- None
Major Concerns:
- Checkout module has 71.4% failure rate
- Critical payment-related bugs
- Search functionality poor on mobile
Environment Issues:
- Website slow during peak hours (not logged as bug)
---------------------------------------------------
8. TESTING CHALLENGES
- No access to test accounts/data
- Had to create real user accounts
- Could not test actual payment (no test cards)
- Some features required Bangladesh phone number
---------------------------------------------------
9. LESSONS LEARNED
---------------------------------------------------
10. RECOMMENDATIONS
Immediate Actions:
1. Fix all 3 critical bugs (BUG_001, BUG_005, BUG_008)
2. Retest checkout module completely
3. Conduct regression testing after fixes
Before Production:
1. Fix all P1 and P2 bugs (8 bugs)
2. Complete cross-browser testing
3. Perform security testing on registration
4. Validate all payment calculations
Future Testing:
1. Automated regression suite for cart calculations
2. Performance testing during sale periods
3. API testing for backend validation
---------------------------------------------------
---------------------------------------------------
12. SIGN-OFF
---------------------------------------------------
END OF REPORT
My_SQA_Portfolio/
│
├── Project_1_Rokomari_Testing/
│ ├── 01_Test_Plan.doc
│ ├── 02_Test_Cases.doc (50 TCs)
│ ├── 03_RTM.xlsx
│ ├── 04_Test_Execution_Report.xlsx
│ ├── 05_Bug_Reports.doc (10+ bugs)
│ ├── 06_Test_Summary_Report.doc
│ └── 07_Screenshots/
│ ├── bug_001.png
│ ├── bug_002.png
│ └── jira_dashboard.png
│
└── [Link] (Overview of your portfolio)
Day 5 Preview
Tomorrow we'll cover:
Congratulations! Day 4 is the most intensive day. You've just completed a REAL testing
project that you can showcase in interviews! �
Are you ready to dive in? Start with the morning session and update me on your progress!
�
Advantage:
- Release working software every 2-4 weeks
- Changes welcomed anytime
- Testing throughout (bugs caught early)
- Customer feedback incorporated quickly
• Represents customer/business
• Maintains Product Backlog (list of features)
• Prioritizes what to build
• Accepts/Rejects completed work
• Developers (2-5)
• QA Engineers (1-2) ← This is YOU!
• UI/UX Designer (0-1)
• Self-organizing, cross-functional
Scrum Events/Ceremonies
WHAT HAPPENS:
- Product Owner presents top priority items from backlog
- Team discusses: "What can we complete this sprint?"
- Team selects User Stories for sprint
- Team breaks stories into tasks
- Team commits to Sprint Goal
EXAMPLE:
PO: "We need login with Google this sprint"
You: "Will this work on mobile too? Any specific error scenarios?"
Team: "Yes mobile. We'll handle Google API errors"
You: "I'll need 2 days for test cases and 1 day for testing"
Three Questions:
1. What did I do yesterday?
2. What will I do today?
3. Any blockers/impediments?
RULES:
- Keep it brief (1-2 minutes per person)
- Don't solve problems here (take offline)
- Stand up (keeps it short!)
- No laptops/phones
WHAT HAPPENS:
- Team demonstrates completed features (live demo)
- Only "Done" items are shown
- Stakeholders give feedback
- PO accepts or rejects work
YOUR ROLE:
- May demonstrate tested features
- Confirm features meet acceptance criteria
- Report testing results
- Highlight any quality concerns
EXAMPLE DEMO:
Developer: [Shows Google login working]
You: "I tested on Chrome, Firefox, Safari - all passed.
Mobile testing also complete - 18/18 test cases passed.
One minor UI bug found and fixed (logo alignment).
Ready for production."
PO: "Accepted! Great work team."
Three Topics:
1. What went well? (Keep doing)
2. What didn't go well? (Stop doing)
3. What can we improve? (Action items)
EXAMPLE RETROSPECTIVE:
� What went well:
- Test cases ready before development finished
- Good collaboration between dev and QA
- All bugs fixed within sprint
� Improvements:
- Action: Create test environment backup
- Action: QA to join requirement discussions earlier
- Action: Daily smoke test to catch bugs early
ACTIVITIES:
- Review upcoming User Stories
- Break down large stories
- Estimate effort (Story Points)
- Clarify requirements
- Identify dependencies
YOUR ROLE:
- Ask testability questions
- Identify test data needs
- Point out potential testing challenges
- Suggest acceptance criteria
1. Product Backlog
Example:
1. [HIGH] User login with email/password
2. [HIGH] User registration
3. [MEDIUM] Forgot password
4. [MEDIUM] Login with Google
5. [LOW] Login with Facebook
...
100+ items
2. Sprint Backlog
Example DoD:
� Code written and peer reviewed
� Unit tests written and passing
� Code deployed to test environment
� Test cases written (by QA)
� All test cases executed and passed
� No critical/major bugs open
� Code merged to main branch
� Documentation updated
� Demo-ready
Example:
As a customer, I want to reset my password, so that I can
regain access to my account if I forget it.
AC1:
Given I am on login page
When I click "Forgot Password"
Then I should see password reset page
AC2:
Given I am on password reset page
When I enter my registered email and click "Send Reset Link"
Then I should receive reset email within 5 minutes
AC3:
Given I received reset email
When I click the reset link and enter new password (8+ characters)
Then my password should be updated and I can login with new password
AC4:
Given I click reset link
When the link is older than 24 hours
Then I should see "Link expired" error
Example:
Week 1 of Sprint:
Day 2-3:
- Write test cases for stories
- Review with team
- Set up test data
- Prepare test environment
Day 4-5:
- Developers start delivering features
- Begin exploratory testing
- Review code changes (optional)
- Update test cases based on implementation
Week 2 of Sprint:
Day 6-8:
- Execute test cases
- Log bugs in Jira
- Retest fixed bugs
- Regression testing on existing features
Day 9:
- Final testing
- Update test reports
- Prepare demo notes
COLLABORATION:
� Pair testing with developers
� Clarify requirements with PO
� Discuss test approach with team
� Help unblock other team members
BUSINESS-FACING
|
Q2 | Q3
Functional Tests | Exploratory Testing
Story Testing | Usability Testing
Prototypes | UAT
(Manual/Automated) | (Manual)
|
SUPPORTING ------+------ CRITIQUE
THE TEAM | PRODUCT
|
Q1 | Q4
Unit Tests | Performance Testing
Component Tests | Security Testing
(Automated) | "ility" Testing
| (Tools)
|
TECHNOLOGY-FACING
Write:
API Basics:
Example:
User clicks "Login" button (Frontend)
→ Sends request to API: POST /api/login
→ API checks database
→ API sends response: {"status": "success", "token": "abc123"}
→ Frontend shows Dashboard
HTTP Methods:
2xx - Success
200 OK → Request successful
201 Created → Resource created successfully
204 No Content → Success but no data to return
Installing Postman
Step 1: Download
• Go to: [Link]/downloads
• Download for Windows
• Install (it's free!)
1. Open Postman
2. Click "New" → "HTTP Request"
3. Enter URL: [Link]
4. Method: GET (default)
5. Click "Send"
URL: [Link]
RESPONSE:
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@[Link]"
}
TEST CASES:
✓ Status code is 200
✓ User ID is 1
✓ Name is "Leanne Graham"
✓ Email contains '@'
NEGATIVE TEST:
URL: [Link]
Expected: 404 Not Found (user doesn't exist)
URL: [Link]
Method: POST
{
"title": "My Test Post",
"body": "This is test content from API testing practice",
"userId": 1
}
4. Click "Send"
RESPONSE:
{
"title": "My Test Post",
"body": "This is test content from API testing practice",
"userId": 1,
"id": 101
}
TEST CASES:
✓ Status code is 201 (Created)
✓ Response has id field
✓ Title matches request
✓ UserId matches request
URL: [Link]
Method: PUT
Body:
{
"id": 1,
"title": "Updated Title",
"body": "Updated content",
"userId": 1
}
Expected: 200 OK
Response contains updated data
Expected: 200 OK
Empty response body: {}
REQUEST BODY:
{
"firstName": "Rahim",
"lastName": "Ahmed",
"email": "rahim@[Link]",
"password": "SecurePass@123",
"phone": "01712345678"
}
Test Cases:
Status
Test ID Test Case Request Data Expected Response
Code
Register with valid Success message, user
API_REG_001 Valid all fields 201
data ID returned
Register with Error: "Email already
API_REG_002 Existing email 400
existing email exists"
Register without Error: "Email
API_REG_003 Email field missing 400
email required"
Register with invalid Error: "Invalid email
API_REG_004 Email: "invalidemail" 400
email format"
Register with weak Error: "Password
API_REG_005 Password: "123" 400
password must be 8+ chars"
Register with SQL Email: "test@[Link]'
API_REG_006 Error or sanitized 400
injection OR '1'='1"
Register with special Error: "Invalid
API_REG_007 FirstName: "Test@#$" 400
chars in name characters"
Register without Error: "Required
API_REG_008 Empty JSON {} 400
required fields fields missing"
Tests to perform:
- GET /api/users → List users
- GET /api/users/2 → Get single user
- POST /api/users → Create user
- PUT /api/users/2 → Update user
- DELETE /api/users/2 → Delete user
Create:
✓ 10 test cases
✓ Test positive and negative scenarios
✓ Verify response data structure
1. Native Apps
2. Web Apps
3. Hybrid Apps
1. Functional Testing
2. Compatibility Testing
Different OS Versions:
- Android 10, 11, 12, 13, 14
- iOS 15, 16, 17, 18
Different Resolutions:
- HD: 720x1280
- Full HD: 1080x1920
- 2K, 4K displays
3. Performance Testing
4. Usability Testing
• Easy to navigate
• Buttons are touch-friendly (minimum 44x44 pixels)
• Text is readable
• Intuitive UI
5. Security Testing
• Data encryption
• Secure login
• Permission handling
6. Interruption Testing
7. Installation/Uninstallation Testing
Benefits:
✓ Free
✓ No setup needed
✓ Test responsive design
✓ Simulate touch events
✓ Test different screen sizes
Emulators/Simulators (Advanced):
Your Assignment:
1. [Link]
2. [Link] (mobile view)
3. [Link] (mobile view)
• Tap buttons
• Swipe carousel/images
• Pinch to zoom (images)
• Pull to refresh
• Long press actions
• Hamburger menu
• Bottom navigation
• Sticky header/footer
• Modal popups
• Form inputs (keyboard appearance)
Document Format:
TC_MOB_WEB_001
Title: Verify homepage layout on iPhone 12
Device: iPhone 12 Pro (390x844)
Orientation: Portrait
Steps:
1. Open [Link] in Chrome DevTools
2. Select iPhone 12 Pro
3. Check header layout
4. Check product grid
5. Check footer
Expected:
- All elements visible
- No horizontal scroll
- Images load properly
- Text readable without zoom
- Buttons properly sized
Agile/Scrum:
API Testing:
• [ ] Installed Postman
• [ ] Tested GET requests
• [ ] Tested POST requests (Create)
• [ ] Tested PUT requests (Update)
• [ ] Tested DELETE requests
• [ ] Wrote automated test scripts
• [ ] Created 20+ API test cases
Mobile Testing:
Deliverables:
Day 6 Preview
Tomorrow (Week 2 Begins!):
You can already apply for SOME Junior SQA positions with these skills!
Ready to continue? How are you feeling about the pace? Any topic you want to review
before moving forward? �
Day 6: Automation Testing, Selenium &
Resume Building �
Welcome to Day 6 and Week 2! Today you'll step into automation testing, write your first
automated script, learn Git/GitHub, and start building your professional resume.
What is Test Automation? Using tools and scripts to execute test cases automatically instead of
manual execution.
Manual vs Automation:
MANUAL TESTING:
Tester opens browser → Navigates to login page → Enters credentials
→ Clicks login → Verifies result → Documents pass/fail
Time: 2-3 minutes per execution
AUTOMATION TESTING:
Script runs → Opens browser → Executes steps → Verifies → Reports result
Time: 10-15 seconds per execution
Can run 24/7, no human needed!
� AUTOMATE When:
1. Regression Testing
- Same tests run repeatedly after each release
- Example: Login, Search, Checkout (run 100+ times)
2. Smoke/Sanity Testing
- Quick checks after deployment
- Example: "Is website up? Can users login?"
3. Data-Driven Testing
- Same test with multiple data sets
- Example: Test login with 50 different username/password combinations
4. Cross-Browser Testing
- Test on Chrome, Firefox, Safari, Edge
- Manually testing on 4 browsers = 4x time
5. Performance Testing
- Simulate 1000 users simultaneously
- Impossible manually!
6. Repetitive Tasks
- Form filling, navigation flows
1. Exploratory Testing
- Finding unexpected bugs
- Requires human intuition
2. Usability Testing
- "Does this look good?"
- "Is navigation intuitive?"
3. One-Time Tests
- Test run only once
- Not worth automation effort
5. Ad-hoc Testing
- Quick investigation of reported issues
ROI Calculation:
Web Automation:
3. Playwright (Microsoft)
- Multi-browser
- Modern alternative to Selenium
4. TestCafe
- No WebDriver needed
Mobile Automation:
2. Espresso (Android)
3. XCUITest (iOS)
API Automation:
1. Postman + Newman
2. REST Assured (Java)
3. Requests library (Python)
What is Selenium WebDriver? A tool that controls browsers programmatically. You write code
that tells the browser what to do.
Architecture:
1. Go to [Link]/downloads
2. Download Python 3.12 (latest)
3. Install - CHECK "Add Python to PATH" �
4. Verify: Open CMD, type: python --version
# Open Google
[Link]("[Link]
# Close browser
[Link]()
How to Run:
# File: test_google_search.py
# Setup browser
driver = [Link](service=Service(ChromeDriverManager().install()))
# Maximize window
driver.maximize_window()
# Open Google
[Link]("[Link]
print("Opened Google")
# Press Enter
search_box.send_keys([Link])
print("Pressed Enter")
# Close browser
[Link]()
# File: test_facebook_login.py
# Setup
driver = [Link](service=Service(ChromeDriverManager().install()))
driver.maximize_window()
# Open Facebook
[Link]("[Link]
print("Opened Facebook")
[Link](2)
[Link](3)
print("�
� Test script executed successfully")
# Close
[Link]()
# 2. By NAME
element = driver.find_element([Link], "username")
# 3. By CLASS_NAME
element = driver.find_element(By.CLASS_NAME, "login-button")
# 4. By TAG_NAME
element = driver.find_element(By.TAG_NAME, "input")
# 6. By PARTIAL_LINK_TEXT
element = driver.find_element(By.PARTIAL_LINK_TEXT, "Sign")
# 7. By CSS_SELECTOR (Powerful!)
element = driver.find_element(By.CSS_SELECTOR, "input[name='email']")
element = driver.find_element(By.CSS_SELECTOR, "#email") # ID
element = driver.find_element(By.CSS_SELECTOR, ".login-btn") # Class
# Navigation
[Link]("[Link] # Open URL
[Link]() # Browser back button
[Link]() # Browser forward
[Link]() # Refresh page
# Browser actions
driver.maximize_window() # Maximize
driver.minimize_window() # Minimize
driver.set_window_size(1024, 768) # Custom size
# Element interactions
[Link]() # Click element
element.send_keys("text") # Type text
[Link]() # Clear text field
[Link]() # Submit form
# Get information
text = [Link] # Get visible text
value = element.get_attribute("value") # Get attribute
is_displayed = element.is_displayed() # Is visible?
is_enabled = element.is_enabled() # Is clickable?
is_selected = element.is_selected() # Is checkbox/radio selected?
# Waits
[Link](3) # Hard wait (not recommended)
# Screenshots
driver.save_screenshot("[Link]")
# Close
[Link]() # Close current tab
[Link]() # Close all tabs and browser
# HINTS:
# - Use Inspect Element to find search box locator
# - Check if "Python" appears in page title or results
# - Use driver.save_screenshot("rokomari_search.png")
# HINTS:
# - Use ActionChains for hover
from [Link].action_chains import ActionChains
# actions = ActionChains(driver)
# actions.move_to_element(element).perform()
# HINTS:
# For dropdowns:
from [Link] import Select
# dropdown = Select(driver.find_element([Link], "continents"))
# dropdown.select_by_visible_text("Asia")
# HINTS:
# Use find_elements (plural) to get list
# results = driver.find_elements(By.TAG_NAME, "h3")
# print(f"Found {len(results)} results")
# TEMPLATE:
from [Link] import NoSuchElementException
try:
element = driver.find_element([Link], "nonexistent_id")
except NoSuchElementException:
print("� Element not found")
# Take screenshot for debugging
driver.save_screenshot("[Link]")
What is GitHub? Online platform to store Git repositories (like Google Drive for code)
Installing Git:
1. Go to: [Link]/downloads
2. Download for Windows
3. Install (default settings are fine)
4. Verify: Open CMD, type: git --version
Should show: git version 2.x.x
Commands:
git add → Moves to staging
git commit → Saves to repository
git push → Uploads to GitHub
# Verify
git config --list
1. Go to: [Link]
2. Sign up (use professional email)
3. Choose free plan
4. Verify email
5. Create username (professional: firstname-lastname or firstnamelastname)
Examples: rahim-ahmed, rahimsqa, rahim-qa
Your First Git Repository:
Step-by-step:
# 2. Initialize Git
git init
# Output: Initialized empty Git repository
# 4. Check status
git status
# Shows: [Link] is untracked
# 9. Push to GitHub
git branch -M main
git push -u origin main
# Check status
git status
# Add files
git add [Link] # Single file
git add . # All files
# Commit changes
git commit -m "Your message here"
# Push to GitHub
git push
# View history
git log
# Create branch
git branch feature-name
git checkout feature-name
# See changes
git diff
# Daily workflow:
# 3. Add changes
git add .
# 5. Push to GitHub
git push
# Repeat daily!
[Link] Template:
## About Me
Junior SQA Engineer with hands-on experience in manual and automation
testing.
## Skills
- Manual Testing
- Test Case Design
- Bug Reporting (Jira)
- API Testing (Postman)
- Automation Testing (Selenium WebDriver - Python)
- Agile/Scrum methodology
## Projects
**Test Scenarios:**
- Google search automation
- E-commerce website testing ([Link])
- Form filling automation
- Login functionality testing
**Coverage:**
- RESTful API testing
- CRUD operations validation
- Response validation
- Status code verification
## Certifications
(Add when you complete any)
## Contact
- Email: [Link]@[Link]
- LinkedIn: [Your Profile]
- GitHub: [This Repository]
═══════════════════════════════════════════════════════════
[YOUR FULL NAME]
Junior Software Quality Assurance Engineer
───────────────────────────────────────────────────────────
Phone: +880 1XXXXXXXXX | Email: [Link]@[Link]
LinkedIn: [Link]/in/yourprofile | GitHub: [Link]/yourusername
Location: Dhaka, Bangladesh
═══════════════════════════════════════════════════════════
PROFESSIONAL SUMMARY
───────────────────────────────────────────────────────────
Motivated Junior SQA Engineer with 2 years of Computer Science
education and hands-on experience in manual and automation testing.
Proficient in creating comprehensive test plans, executing test cases,
and identifying software defects. Experienced with Agile/Scrum
methodology, API testing, and test automation using Selenium WebDriver.
Seeking to contribute quality assurance expertise to a dynamic IT team.
TECHNICAL SKILLS
───────────────────────────────────────────────────────────
Testing Types:
• Functional Testing • Regression Testing
• API Testing • Mobile Testing
• Cross-Browser Testing • Responsive Testing
• Smoke & Sanity Testing • Black Box Testing
Automation:
• Selenium WebDriver (Python)
• Test Script Development
• Basic Page Object Model
Tools & Technologies:
• Bug Tracking: Jira, Bugzilla
• API Testing: Postman
• Version Control: Git, GitHub
• Databases: MySQL (Basic SQL queries)
• Test Management: Excel, Google Sheets
• Browsers: Chrome, Firefox, Edge, Safari
• OS: Windows, Android
Methodologies:
• Agile/Scrum • SDLC & STLC
• Test Case Design Techniques (Equivalence Partitioning,
Boundary Value Analysis, Decision Tables)
Soft Skills:
• Analytical Thinking • Attention to Detail
• Team Collaboration • Problem Solving
• Clear Communication • Quick Learning
EDUCATION
───────────────────────────────────────────────────────────
Bachelor of Science in Computer Science & Engineering
[Your University Name] | [City] | Expected: [Year]
Completed: 2 years (4 semesters)
Relevant Coursework: Software Engineering, Database Management,
Web Technologies, Programming
Responsibilities:
• Analyzed requirements and created comprehensive test plan
• Designed and documented 50+ test cases covering registration,
login, search, cart, and checkout modules
• Executed test cases and identified 12 defects (3 critical)
• Created Requirements Traceability Matrix (RTM)
• Logged and tracked bugs in Jira with detailed reproduction steps
• Prepared Test Summary Report with metrics and recommendations
Achievements:
• Achieved 100% requirements coverage
• Identified critical payment calculation bug before production
• Maintained 76% test pass rate
───────────────────────────────────────────────────────────
Responsibilities:
• Tested RESTful APIs for e-commerce operations
• Created 30+ API test cases for CRUD operations
• Validated request/response using Postman
• Automated API tests with Postman test scripts
• Verified status codes, response structure, and data integrity
• Performed negative testing with invalid data
Test Coverage:
• GET requests: Retrieve users, products, categories
• POST requests: Create user, add product
• PUT/PATCH requests: Update operations
• DELETE requests: Remove resources
───────────────────────────────────────────────────────────
Responsibilities:
• Tested responsive design across multiple devices
• Verified touch interactions and gestures
• Tested portrait and landscape orientations
• Identified 5 mobile-specific UI issues
• Validated mobile-specific features (hamburger menu, sticky footer)
Test Coverage:
• Device sizes: iPhone SE, iPhone 12 Pro, iPad
• Interactions: Tap, swipe, pinch-zoom, long-press
• Browsers: Chrome Mobile, Safari Mobile
───────────────────────────────────────────────────────────
Responsibilities:
• Automated web application testing using Selenium
• Developed test scripts for login, search, form filling
• Implemented various locator strategies (ID, XPath, CSS)
• Created reusable functions for common actions
• Version controlled scripts using Git/GitHub
Scripts Developed:
• Google search automation
• Form filling automation
• Multi-element handling
• Error handling implementation
═══════════════════════════════════════════════════════════
LANGUAGES
───────────────────────────────────────────────────────────
• Bengali: Native
• English: Fluent (Written & Spoken)
AVAILABILITY
───────────────────────────────────────────────────────────
Available for immediate joining (Internship or Full-time)
═══════════════════════════════════════════════════════════
DO's:
� Keep it 1-2 pages (as fresher: 1 page is fine)
� Use action verbs: Created, Executed, Identified, Tested, Automated
� Quantify achievements: "50+ test cases", "12 bugs", "76% pass rate"
� Include GitHub links
� Tailor for each job (modify based on job description)
� Proofread multiple times (NO typos!)
� Save as PDF: "YourName_SQA_Resume.pdf"
DON'Ts:
� Don't lie or exaggerate
� Don't use fancy fonts/colors (keep professional)
� Don't include photo (not required in Bangladesh IT)
� Don't mention age, religion, marital status
� Don't use first person (I, me, my)
� Don't include irrelevant hobbies
� Don't make it too long
Automation Testing:
• [ ] Installed Git
• [ ] Created GitHub account
• [ ] Initialized Git repository
• [ ] Pushed code to GitHub
• [ ] Created portfolio repository
• [ ] Wrote professional README
Resume:
Week 1 Complete! �
Congratulations on completing Week 1!
Any specific areas you want to strengthen before we move to interview prep? �
Mobile testing of a website can present challenges such as ensuring responsiveness, dealing with various screen sizes, touch interactions, and potential performance issues. Best practices suggest testing on multiple devices and using tools like Chrome DevTools for mobile emulation. It's crucial to verify layout consistency, the visibility of elements, and the absence of horizontal scroll. For example, a test case for an iPhone 12 Pro should check the homepage layout to ensure images load properly and text is readable without zooming .
An effective Test Plan provides a structured approach to testing by clearly defining objectives, scope, test approach, environment, schedule, deliverables, entry and exit criteria, risks, and assumptions. It ensures that all team members are aligned and understand their responsibilities. By setting clear parameters for what is in scope and out of scope, the Test Plan helps prevent scope creep and ensures resource optimization. For example, the Test Plan for the Rokomari.com project limits in-scope activities to functionalities like user registration and login, enhancing focus and efficiency .
A professional software tester's resume should include sections that highlight educational background, relevant skills (e.g., API testing, manual and automation testing, Jira expertise), work experience, and completed projects. Additionally, it should list specific testing methodologies, such as Black Box testing or Agile/Scrum, and any software tools like Selenium or Postman used. The resume should be concise, leveraging bullet points, and reflect both technical capabilities and soft skills. Saving as PDF prevents formatting issues when shared electronically .
A junior software tester should strategically focus on building a strong resume and portfolio, applying to a variety of platforms such as BdJobs.com, LinkedIn, and directly to company websites. It's crucial to research top companies hiring entry-level testers and tailor applications to showcase relevant skills, such as developing test cases, bug reporting, and familiarity with testing tools. Additionally, sending at least 10 applications daily increases visibility and opportunity, while networking and preparing for interviews strengthens the application process .
Mock interviews and daily practice of technical and behavioral questions help candidates familiarize themselves with common interview scenarios, reduce anxiety, and improve communication skills. For software testers, daily practice of 20 technical and 10 behavioral questions reinforces knowledge, aids in formulating clear responses, and builds confidence. Mock interviews simulate the interview environment, allowing candidates to receive feedback and adjust their approach accordingly, improving their chances of success in real interviews .
Continuous learning is vital for software testers to keep up with technological advancements and evolving testing methodologies. It ensures testers remain proficient and adaptable, enhancing career growth and job performance. Effective strategies include following online courses, engaging with YouTube tutorials, and utilizing practice sites like Guru99 and DemoQA. Testers should also participate in mock interviews, work on portfolio projects, and stay updated with industry trends to maintain a competitive edge in the dynamic field of software testing .
Jira facilitates bug tracking and project management by offering a comprehensive toolset for managing issues, tasks, and projects efficiently. Its key features include issue types, status tracking, priority levels, and components which help in categorizing work and tracking progress. For example, testers can create detailed bug reports for defects like duplicate user registration, assign priorities, and monitor the issue's status from creation to resolution using Jira's workflow capabilities .
Quality Assurance (QA) is process-oriented, aimed at preventing defects by ensuring that quality processes are followed throughout development. It focuses on improving processes and implementing standards. Quality Control (QC) is product-oriented, focused on identifying defects in the final product. Testing is a subset of QC, involving executing the software to identify defects. For example, QA would involve following coding standards and conducting code reviews, while QC and testing involve activities like verifying if a login function works correctly .
Software testers ensure comprehensive coverage by using a Requirement Traceability Matrix (RTM), which maps each test case to specific requirements. This ensures that all functional requirements have corresponding test cases, verifying coverage and highlighting any potential gaps. For instance, in the Rokomari.com project, the RTM ensures 100% coverage by aligning test cases with requirements, such as user registration and login functionalities, ensuring that all elements of the application are tested according to client specifications .
Practicing Selenium WebDriver scripts enables software testers to automate repetitive testing tasks, increasing efficiency and accuracy. By learning Selenium locators and handling multiple web elements, testers can write more robust scripts that interact with the application's UI effectively. For instance, writing and running 5+ automation scripts helps in understanding error handling and improves script reliability, making it easier to catch issues early in the development lifecycle .