DAY 1
Day 1
Day 2
Day 2
Interface Implements keyword.
Test Report
Project Information
Project Name: To-Do List Web Application
Version: 1.0
Date: May 21, 2024
Prepared by: [Your Name]
Summary Report
Number of test cases executed: 50
Number of test cases passed: 45
Number of test cases failed: 5
Test coverage: 90%
Defect Report
Total Defects Found: 10
High severity: 3
Medium severity: 5
Low severity: 2
Defects Fixed: 7
Defects Closed: 5
Defects Reopened: 2
Execution Report
Test Case ID: TC001
Description: Verify user registration functionality.
Steps:
∙- Navigate to the registration page.
∙- Enter valid email and password.
∙- Click the 'Register' button.
Expected Result: User is registered successfully.
Actual Result: User is registered successfully.
Status: Passed
Test Case ID: TC002
Description: Verify user login functionality.
Steps:
∙- Navigate to the login page.
∙- Enter registered email and password.
∙- Click the 'Login' button.
Expected Result: User is logged in successfully.
Actual Result: User is logged in successfully.
Status: Passed
Bug Report
Project Information
Project Name: To-Do List Web Application
Version: 1.0
Date: May 21, 2024
Reported by: [Your Name]
Bug Report Details
Bug ID: 101
Summary: 'Save' button not working on task creation page
Severity: High
Priority: High
Status: New
Environment: Windows 10, Chrome v90
Description:
When a user attempts to create a new task and clicks the 'Save' button, nothing happens.
The task is not saved, and no error message is displayed.
Steps to Reproduce:
∙- Navigate to the task creation page.
∙- Enter task details (title and description).
∙- Click the 'Save' button.
Expected Result: The task should be saved and displayed in the task list.
Actual Result: Nothing happens when the 'Save' button is clicked. The task is not saved.
Attachments: Screenshot.png
Test Case Documentation
- Test Case 1: Verify Repository Search Functionality
- Test Case ID: TC001
- Description: Verify that users can search for repositories by name.
- Steps:
1. Navigate to the GitHub homepage.
2. Enter a repository name (e.g., "react") in the search bar.
3. Click the "Search" button.
- Expected Result: The search results should display a list of repositories matching the
name.
- Actual Result: [Document the actual result here]
- Status: [Pass/Fail]
<Slide >
- Test Case 2: Verify Creating a New Repository
- Test Case ID: TC002
- Description: Verify that users can create a new repository.
- Steps:
1. Log in to GitHub.
2. Click the "New repository" button.
3. Enter a repository name and description.
4. Choose the repository's visibility (public/private).
5. Click the "Create repository" button.
- Expected Result: The repository should be created and displayed on the user's profile.
- Actual Result: [Document the actual result here]
- Status: [Pass/Fail]
<Slide >
- Test Case 3: Verify Issues Creation in a Repository
- Test Case ID: TC003
- Description: Verify that users can create an issue in a repository.
- Steps:
1. Navigate to a repository.
2. Click the "Issues" tab.
3. Click the "New issue" button.
4. Enter a title and description for the issue.
5. Click the "Submit new issue" button.
- Expected Result: The issue should be created and displayed in the repository's issues
list.
- Actual Result: [Document the actual result here]
- Status: [Pass/Fail]
Manual Testing Exercise Sheet
Introduction
Welcome to the Manual Testing Exercise Sheet. In this exercise, you will execute test cases
on the GitHub website, log any defects found, and create a comprehensive test report. This
practical activity will help solidify your understanding of test execution, defect management,
and test reporting.
1. Explore the GitHub Website
Take a few minutes to explore the GitHub website and familiarize yourself with its features.
You can access the application at [GitHub](https://github.com/).
2. Execute Test Cases
Now that you are familiar with the GitHub website, execute the following test cases. Follow
the steps outlined in each test case and document the results.
Test Case ID: TC001
Description: Verify repository search functionality.
Steps:
∙- Navigate to the GitHub homepage.
∙- Enter a repository name (e.g., 'react') in the search bar.
∙- Click the 'Search' button.
Expected Result: The search results should display a list of repositories matching the name.
Actual Result: ________________________
Status (Pass/Fail): ________________________
Test Case ID: TC002
Description: Verify creating a new repository.
Steps:
∙- Log in to GitHub.
∙- Click the 'New repository' button.
∙- Enter a repository name and description.
∙- Choose the repository's visibility (public/private).
∙- Click the 'Create repository' button.
Expected Result: The repository should be created and displayed on the user's profile.
Actual Result: ________________________
Status (Pass/Fail): ________________________
Test Case ID: TC003
Description: Verify issues creation in a repository.
Steps:
∙- Navigate to a repository.
∙- Click the 'Issues' tab.
∙- Click the 'New issue' button.
∙- Enter a title and description for the issue.
∙- Click the 'Submit new issue' button.
Expected Result: The issue should be created and displayed in the repository's issues list.
Actual Result: ________________________
Status (Pass/Fail): ________________________
3. Log Defects
If any test cases fail or if you encounter any unexpected behavior, log the defects. Provide
detailed information to help developers understand and resolve the issues.
Defect Report Template
Defect ID: ________________________
Summary: ________________________
Description: ________________________
Steps to Reproduce: ________________________
Expected Result: ________________________
Actual Result: ________________________
Severity: ________________________
Priority: ________________________
Status: ________________________
4. Create a Test Report
After executing the test cases and logging any defects, create a comprehensive test report.
This report will summarize the testing activities, outcomes, and any issues identified.
Test Report Template
Project: GitHub Website
Version: 1.0
Date: ________________________
Prepared by: ________________________
Summary Report
Overall Test Progress:
Number of test cases executed: ________________________
Number of test cases passed: ________________________
Number of test cases failed: ________________________
Test coverage: ________________________
Defect Report
Total Defects Found: ________________________
High severity: ________________________
Medium severity: ________________________
Low severity: ________________________
Defects Fixed: ________________________
Defects Closed: ________________________
Execution Report
Test Case ID: ________________________
Description: ________________________
Steps: ________________________
Expected Result: ________________________
Actual Result: ________________________
Status (Pass/Fail): ________________________
writer.editor.GO_TO_TOP
Test Report
Project Information
Project Name: To-Do List Web Application
Version: 1.0
Date: May 21, 2024
Prepared by: [Your Name]
Summary Report
Number of test cases executed: 50
Number of test cases passed: 45
Number of test cases failed: 5
Test coverage: 90%
Defect Report
Total Defects Found: 10
High severity: 3
Medium severity: 5
Low severity: 2
Defects Fixed: 7
Defects Closed: 5
Defects Reopened: 2
Execution Report
Test Case ID: TC001
Description: Verify user registration functionality.
Steps:
∙- Navigate to the registration page.
∙- Enter valid email and password.
∙- Click the 'Register' button.
Expected Result: User is registered successfully.
Actual Result: User is registered successfully.
Status: Passed
Test Case ID: TC002
Description: Verify user login functionality.
Steps:
∙- Navigate to the login page.
∙- Enter registered email and password.
∙- Click the 'Login' button.
Expected Result: User is logged in successfully.
Actual Result: User is logged in successfully.
Status: Passed
Bug Report
Project Information
Project Name: <Project Name>
Version: <Version #>
Date: <Date Defect found>
Reported by: <Your Name>
Bug Report Details
Bug ID: <Bug #>
Summary: <A brief sentence on the problem encountered>
Severity: <High/Medium/Low>
Priority: <High/Medium/Low>
Status: New
Environment: <OS, Browser, browser version found etc.>
Description:
<Brief description of the problem>
Steps to Reproduce:
<Detailed steps to reproduce the problem>
Expected Result: <give the expected result>
Actual Result: <Actual result>
Attachments: <Attach any screenshots of the problem>
Exercise Instructions:
1. Explore the GitHub Website:
Navigate to [GitHub](https://github.com/) and familiarize yourself with
the login functionality.
2. Execute Test Cases:
Use the following test cases to validate the login functionality:
Test Case 1: Verify login with valid credentials.
Steps: Enter a valid username and password, then click 'Sign in.'
Expected Result: User should be logged in successfully.
Test Case 2: Verify login with invalid credentials.
Steps: Enter an invalid username and/or password, then click 'Sign
in.'
Expected Result: User should receive an error message indicating
invalid credentials.
Test Case 3: Verify password recovery process.
Steps: Click on 'Forgot password,' enter the registered email
address, and follow the instructions.
Expected Result: User should receive an email with instructions to
reset the password.
3. Document the Results:
Record the actual results of each test case, noting any discrepancies or
defects found.
4. Log Defects:
If any defects are found, log them using the defect report template
provided earlier.
Intermediate Test cases
Application: Todo List
Test cases:
Test Case ID 001
Test Case Schedule Tasks
1. Log in to the Todoist app.
2. Create a new project.
3. Add multiple tasks within the project.
Steps 4. Schedule each task with specific due dates and
times.
5. Save the tasks.
Tasks should be created with the specified
Expected Result: schedules intact.
Actual Result:
Status:
Defects:
Test Case ID Edit Task Details
Test Case 002
1. Log in to the Todoist app.
2. Navigate to the project with scheduled tasks.
3. Select a task and edit its details (e.g., change
the task name, due date, priority).
Steps
4. Save the changes.
5. Verify that the task details are updated
correctly.
The task details should be updated as specified.
Expected Result:
Actual Result:
Status:
Defects:
Test Case ID 003
Test Case Create Subtasks
1. Log in to the Todoist app.
2. Navigate to the project with tasks.
3. Select a task and create multiple subtasks
Steps under it.
4. Assign due dates and priorities to the subtasks.
5. Save the subtasks.
Subtasks should be created under the selected
Expected Result: task with specified details.
Actual Result:
Status:
Defects:
Test Case ID 004
Test Case Reschedule Tasks
1. Log in to the Todoist app.
2. Navigate to the project with scheduled tasks.
3. Select a task and change its due date and
Steps time.
4. Save the changes.
5. Verify that the task is rescheduled correctly.
The task should be updated with the new
Expected Result: schedule.
Actual Result:
Status:
Defects:
Test Case ID 005
1. Log in to the Todoist app.
Test Case Verify Task Completion
2. Navigate and
to the project Archiving
with tasks and
subtasks.
Steps
3. Mark tasks and subtasks as complete.
4. Archive the completed tasks.
5. Verify that completed tasks are archived
correctly and not visible in the active task list.
Completed tasks should be archived and no longer
Expected Result: visible in the active task list.
Actual Result:
Status:
Defects:
Non – Funcanial Testing
Hands-On Exercise: Non-Functional Testing
1. Explore Wikipedia:
- Familiarize yourself with performance and usability aspects.
2. Conduct Performance Testing:
- Use tools (e.g., JMeter) to simulate user load on the Wikipedia homepage.
- Steps:
- Simulate 50 users accessing the homepage simultaneously.
- Measure response times, throughput, and error rates.
3. Conduct Usability Testing:
- Evaluate Wikipedia's search and navigation processes.
- Steps:
- Observe users searching for articles and navigating.
- Gather feedback on ease of use and user experience.
4. Document Results:
- Record actual results, noting any issues.
5. Log Defects:
- Log performance or usability issues using a defect report template.
Apply Functional Testing techniques
Section 6.4: Exercise - Apply Functional Testing Techniques
- Overview: Apply the functional testing techniques learned in previous sections.
- Objective: Validate the login module of GitHub using Equivalence Partitioning, Boundary
Value Analysis, Decision Table Testing, and State Transition Testing.
Overview of the Exercise
- Objective: Apply functional testing techniques to validate GitHub's login module.
- Techniques Used:
- Equivalence Partitioning
- Boundary Value Analysis
- Decision Table Testing
- State Transition Testing
Step 1: Explore the GitHub Login Page
- Instructions:
1. Navigate to [GitHub Login](https://github.com/login) and familiarize yourself with the
functionality.
2. Identify input fields and buttons: Username, Password, Sign in, and error messages.
Step 2: Apply Equivalence Partitioning
- Instructions:
1. Identify equivalence classes for the username and password fields.
2. Example for Username:
- Valid: Non-empty string matching an existing account.
- Invalid: Empty string, non-existing account.
3. Example for Password:
- Valid: Correct password for an existing account.
- Invalid: Empty string, incorrect password.
Example Test Cases:
- Username: Valid, Password: Valid (Expected: Successful login)
- Username: Valid, Password: Invalid (Expected: Error message)
- Username: Invalid, Password: Any (Expected: Error message)
- Username: Empty, Password: Any (Expected: Error message)
Step 3: Apply Boundary Value Analysis
- Instructions:
1. Identify boundary values for the password field (considering length constraints).
2. Example: Password must be between 8 and 16 characters.
- Boundary values: 7, 8, 9, 15, 16, 17 characters.
Example Test Cases:
- Password: 7 characters (Expected: Error message)
- Password: 8 characters (Expected: Valid input)
- Password: 16 characters (Expected: Valid input)
- Password: 17 characters (Expected: Error message)
Step 4: Apply Decision Table Testing
- Instructions:
1. Identify conditions and actions for the login process.
2. Example conditions: Username (Valid/Invalid), Password (Valid/Invalid).
Example Decision Table:
| Username | Password | Expected Result |
|----------|----------|-------------------|
| Valid | Valid | Successful login |
| Valid | Invalid | Error message |
| Invalid | Valid | Error message |
| Invalid | Invalid | Error message |
Step 5: Apply State Transition Testing
- Instructions:
1. Identify states and events for the login process.
2. Example states: Logged Out, Logging In, Logged In, Login Failed.
3. Example events: Enter Credentials, Submit, Logout.
Example State Transition Diagram:
```
[Logged Out] --Enter Credentials--> [Logging In]
[Logging In] --Submit (Valid)--> [Logged In]
[Logging In] --Submit (Invalid)--> [Login Failed]
[Logged In] --Logout--> [Logged Out]
Execute the Test Cases
- Instructions:
1. Perform the tests on the GitHub login page.
2. Document the actual results for each test case.
3. Note any discrepancies between the expected and actual results.
Example Documentation:
| Test Case ID | Description | Expected Result | Actual Result | Status (Pass/Fail) |
|--------------|----------------------------------------------|-------------------|--------------------|--------------------|-----------------------------------
| TC001 | Valid Username and Valid Password | Successful login | Successful login | Pass |
| TC002 | Valid Username and Invalid Password | Error message | Error message | Pass |
| TC003 | Invalid Username and Valid Password | Error message | Error message | Pass |
| TC004 | Empty Username and Any Password | Error message | Error message | Pass |
| TC005 | Password of 7 characters | Error message | Error message | Pass |
| TC006 | Password of 8 characters | Valid input | Valid input | Pass |
| TC007 | Password of 16 characters | Valid input | Valid input | Pass |
| TC008 | Password of 17 characters | Error message | Error message | Pass |
| TC009 | Transition from Logged Out to Logging In | Valid credentials | Logged In | Pass |
| TC010 | Transition from Logging In to Logged In | Submit valid | Logged In | Pass |
| TC011 | Transition from Logging In to Login Failed | Submit invalid | Login Failed | Pass |
| TC012 | Transition from Logged In to Logged Out | Logout | Logged Out | Pass |
---
Logging Defects
- Instructions:
1. If any test cases fail, document the defect.
2. Include details such as the test case ID, description, steps to reproduce, expected result,
actual result, and any relevant screenshots.
Example Defect Report:
| Field | Description |
|----------------------|-----------------------------------------------|
| Defect ID | D001 |
| Test Case ID | TC002 |
| Description | Valid Username and Invalid Password shows incorrect error message |
| Steps to Reproduce | 1. Enter valid username. 2. Enter invalid password. 3. Click 'Sign in'. |
| Expected Result | Display 'Incorrect username or password.' |
| Actual Result | Displays 'Username does not exist.' |
| Severity | Medium |
| Priority | High |
| Screenshot | [Screenshot](link) |
Using JMeter to Test Performance
Introduction
In this example, we will use Apache JMeter to test the performance of a web application.
This guide includes detailed steps for installing and setting up JMeter, creating a test plan,
and executing a load test to avoid putting excessive load on a public platform.
1. Installing and Setting Up JMeter
Step 1: Download JMeter
1. Visit the Apache JMeter website:
- Go to https://jmeter.apache.org/
2. Download the latest version:
- Navigate to the 'Download Releases' section.
- Download the binaries (e.g., `apache-jmeter-5.4.1.zip`).
Step 2: Install JMeter
1. Extract the downloaded archive:
- Unzip the downloaded file to a directory of your choice (e.g., `C:\apache-jmeter-5.4.1`).
2. Set up environment variables (Optional):
- Add the JMeter `bin` directory to your system's PATH environment variable.
Step 3: Start JMeter
1. Navigate to the `bin` directory:
- Open a terminal or command prompt.
- Navigate to the JMeter `bin` directory (e.g., `cd C:\apache-jmeter-5.4.1\bin`).
2. Run JMeter:
- On Windows: `jmeter.bat`
- On Mac/Linux: `./jmeter.sh`
3. JMeter GUI:
- The JMeter GUI will open, and you are ready to create your test plan.
2. Creating a Test Plan in JMeter
Step 1: Create a Test Plan
1. Open JMeter:
- Ensure JMeter GUI is open.
2. Add a Thread Group:
- Right-click on Test Plan > Add > Threads (Users) > Thread Group.
- Configure the Thread Group:
- Number of Threads (users): 10 (simulating 10 users).
- Ramp-Up Period (seconds): 10 (time to start all users).
- Loop Count: 1 (number of test iterations).
Step 2: Add HTTP Request Sampler
1. Add HTTP Request Sampler:
- Right-click on Thread Group > Add > Sampler > HTTP Request.
- Configure the HTTP Request:
- Name: Home Page (or any descriptive name).
- Path: `/` (or the specific path to test).
Step 3: Add Listeners
1. Add View Results Tree Listener:
- Right-click on Thread Group > Add > Listener > View Results Tree.
2. Add Summary Report Listener:
- Right-click on Thread Group > Add > Listener > Summary Report.
3. Executing the Load Test
Step 1: Save the Test Plan
1. Save the Test Plan:
- Go to File > Save As.
- Save your test plan (e.g., `TestPlan.jmx`).
Step 2: Run the Test Plan
1. Start the Test:
- Click on the green Start button in the JMeter GUI.
2. Monitor the Test:
- Observe the test execution in the View Results Tree and Summary Report listeners.
Step 3: Analyze the Results
1. View Results Tree:
- Check individual request details and responses.
- Identify any errors or issues in the responses.
2. Summary Report:
- Review aggregated metrics such as average response time, min/max response time,
throughput, and error percentage.
- Identify any performance bottlenecks or areas for improvement.
4. Conclusion
By following these steps, you have successfully set up and executed a performance test using
Apache JMeter for a small set of users. This guide ensures that you can test the performance
of a web application without putting excessive load on public platforms. When you have an
application under test at your job, you can increase the load as per your company
guidelines.
You can now analyze the results to identify and address any performance issues, ensuring
your application performs efficiently under load.
writer.editor.GO_TO_TOP
writer.editor.GO_TO_BOTTOM