Professional Documents
Culture Documents
Lý Thuyết Kiểm Định Chất Lượng Phần Mềm - 4. Software Testing Artifacts
Lý Thuyết Kiểm Định Chất Lượng Phần Mềm - 4. Software Testing Artifacts
Lý Thuyết Kiểm Định Chất Lượng Phần Mềm - 4. Software Testing Artifacts
SOFTWARE TESTING
ARTIFACTS
BỘ MÔN CNPM- KHOA CNTT
TRƯỜNG ĐH NGOẠI NGỮ TIN HOC TPHCM
OBJECTIVES
• Test deliveries
• Test plan/Test Strategy
• Entry and exit Criteria
• Test checklist
• Test cases/ Test Scenario
• Bug- defect-failure –error
• Bug Severity And Priority
• Bug management - Bug life Cycle
• Test environment – Test execute – Test report
TEST DELIVERABLES
• Test Strategy is a high level document (static document) and usually developed by project
manager. It is a document which captures the approach on how we go about testing the
product and achieve the goals. It is normally derived from the Business Requirement
Specification (BRS). Documents like Test Plan are prepared by keeping this document as base.
• Usually test team starts writing the detailed Test Plan and continue further phases of testing
once the test strategy is ready.
• This is one of the important documents in test deliverables. Like other test deliverables, test
team shares this with the stakeholders for better understanding about the scope of the
project, test approaches and other important aspects.
TEST STRATEGY (CONT)
Test Strategy Document
1. Scope and overview
2. Test Approach
3. Testing tools
4. Industry standards to follow
5. Test deliverables
6. Testing metrics
7. Requirement Traceability Matrix
8. Risk and mitigation
9. Reporting tool
10. Test summary
TEST STRATEGY (CONT)
Scope and overview:
• In this section, we will mention the scope of testing activities (what to test and why to test)
and mention an overview of the AUT.
• Example: Creating a new Application (Say Google Mail) which offers email services. Test the
functionality of emails and make sure it gives value to the customer.
Test Approach:
• Test levels
• Test types
• Roles and responsibilities
• Environment requirements
TEST STRATEGY (CONT)
Test Levels:
This section lists out the levels of testing that will be performed during QA Testing. Levels of
testing such as unit testing, integration testing, system testing and user acceptance testing.
Testers are responsible for integration testing, system testing and user acceptance testing.
Test Types:
This section lists out the testing types that will be performed during QA Testing.
Roles and responsibilities:
This section describes the roles and responsibilities of Project Manager, Project Lead, individual
testers.
TEST STRATEGY (CONT)
Environment requirements:
• This section lists out the hardware and software for the test environment in order to
commence the testing activities.
Testing tools:
• This section will describe the testing tools necessary to conduct the tests
• Example: Name of Test Management Tool, Name of Bug Tracking Tool, Name of Automation
Tool
• Test Summary:
• This section lists out what kind of test summary reports will be produced along with the
frequency. Test summary reports will be generated on a daily, weekly or monthly basis
depends on how critical the project is.
TEST PLAN
What is test plan?
Test plan is one of the documents in test deliverables. Like other test deliverables, the test
plan document is also shared with the stakeholders. The stakeholders get to know the
scope, approach, objectives, and schedule of software testing to be done.
Who Prepare Test Plan Template?
Usually, Test Lead prepares Test Plan and Testers involve in the process of preparing test
plan document. Once the test plan is well prepared, then the testers write test scenarios
and test cases based on test plan document.
TEST PLAN
Sections of Test Plan Template:
1. Test Plan Identifier 10. Test Deliverables
2. References 11. Testing Tasks
3. Introduction 12. Environmental Needs
4. Test Items 13. Responsibilities
5. Features To Be Tested 14. Staffing and Training Needs
6. Features Not To Be Tested 15. Schedule
7. Approach 16. Risks and Contingencies
8. Pass/Fail Criteria 17. Approvals
9. Suspension Criteria
TEST PLAN
Sections of Test Plan Template:
1. Test Plan Identifier 10. Test Deliverables
2. References 11. Testing Tasks
3. Introduction 12. Environmental Needs
4. Test Items 13. Responsibilities
5. Features To Be Tested 14. Staffing and Training Needs
6. Features Not To Be Tested 15. Schedule
7. Approach 16. Risks and Contingencies
8. Pass/Fail Criteria 17. Approvals
9. Suspension Criteria
• http://www.mobileqazone.com/profiles/blogs/what-is-checklist-based-testing
• https://www.quora.com/What-is-checklist-based-testing
http://qualitypointtech.net/forum/viewtopic.php?f=12&t=8546)
• https://www.stickyminds.com/sites/default/files/article/file/2014/Graphical%20UI%20Testing%20Checklist.pdf
http://sqa.fyicenter.com/FAQ/Software-Testing-Check-List/
http://www.seleniumtests.com/2014/05/manual-testing-checklist.html
TEST CHECKLIST
Use the checklist when and where?
When
• When there was not enough time to write test cases
• Used for trainning
• Used to confirm the review before embarking on test case development
Where
• For applications with basic functions, simple, not complicated, and easy to understand
• For functional or to-do lists that must be repeated many times
• For applications, complex functions, requiring detailed conditions, data, and specific
operations, it should be written in test case.
TEST CHECKLIST
Use the checklist when and where?
When
• When there was not enough time to write test cases
• Used for trainning
• Used to confirm the review before embarking on test case development
Where
• For applications with basic functions, simple, not complicated, and easy to understand
• For functional or to-do lists that must be repeated many times
• For applications, complex functions, requiring detailed conditions, data, and specific operations, it should be written in
test case.
Who
• Testers
• Developers
• Trainers and trainees
• Team members have to checked the items to be developed and tested
TEST CHECKLIST
Advantages, disadvantages
Advantages
• Short, ensuring the correctness and accuracy for testing software
• Help tester see clearly and cover the testing process
• Takes less time to match projects with highly variable specs, with large workloads
• Analysis results (work schedule, completion status) is very easy
• Very flexible (You can add or remove unnecessary items)
Disadvantages
• Case selection will be difficult if you do not know the system requirements.
• Testers need the ability to see in order to perform many test cases based on the items in the
checklist
• It will be difficult for you new testers because there is no clear action in the checklist
TEST CHECKLIST
Some test checklists
● Graph User Interface
● Element & Datatype
● Function Search
● Function Sort
● Function Paging
● Function Master Data
● Function Login
● Function Upload & Download CSV
● Function Send mail
● Mobile
TEST SCENARIO
• Test Scenario gives the idea of what we have to test.Test Scenario is like a high-level test case.
• A test scenrio is defined as any functionality that can be tested. It is also called Test
Condition or Test Possibility.
• Scenario Testing is a variant of Software Testing where Scenarios are Used for Testing.
Scenarios help in an Easier Way of Testing of the more complicated Systems
• Test Scenario answers “What to be tested”
• Assume that we need to test the functionality of a login page of Gmail application.Test
scenario for the Gmail login page functionality as follows:
• Test Scenario Example: Verify the login functionality
TEST SCENARIO
Why create Test Scenarios?
• Creating Test Scenarios ensures complete Test Coverage
• Test Scenarios can be approved by various stakeholders like Business Analyst, Developers, Customers to
ensure the Application Under Test is thoroughly tested. It ensures that the software is working for the
most common use cases.
• They serve as a quick tool to determine the testing work effort and accordingly create a proposal for
the client or organize the workforce.
• They help determine the most important end-to-end transactions or the real use of the software
applications.
• For studying the end-to-end functioning of the program, Test Scenario is critical.
TEST SCENARIO
• When not create Test Scenario?
• The Application Under Test is complicated, unstable and there is a time crunch in the
project.
• Projects that follow Agile Methodology like Scrum, Kanban may not create Test Scenarios.
• Test Scenario may not be created for a new bug fix or Regression Testing. In such cases,
Test Scenarios must be already heavily documented in the previous test cycles. This is
especially true for Maintenance projects.
TEST SCENARIO
How to Write Test Scenarios?
• Step 1: Read the Requirement Documents like BRS, SRS, FRS, of the System Under Test (SUT). You
could also refer uses cases, books, manuals, etc. of the application to be tested.
• Step 2: For each requirement, figure out possible users actions and objectives. Determine the technical
aspects of the requirement. Ascertain possible scenarios of system abuse and evaluate users with
hacker's mindset.
• Step 3: After reading the Requirements Document and doing your due Analysis, list out different test
scenarios that verify each feature of the software.
• Step 4: Once you have listed all possible Test Scenarios, a Traceability Matrix is created to verify that
each & every requirement has a corresponding Test Scenario
• Step 5: The scenarios created are reviewed by your supervisor. Later, they are also reviewed by other
Stakeholders in the project.
TEST SCENARIO
Tips to Create Test Scenarios
• Each Test Scenario should be tied to a minimum of one Requirement or User Story as
per the Project Methodology.
• Before creating a Test Scenario that verifies multiple Requirements at once, ensure you
have a Test Scenario that checks that requirement in isolation.
• Avoid creating overly complicated Test Scenarios spanning multiple Requirements.
• The number of scenarios may be large, and it is expensive to run them all. Based on
customer priorities only run selected Test Scenarios
TEST CASES
• Test cases are the set of positive and negative executable steps of a test scenario which
has a set of pre-conditions, test data, expected result, post-conditions and actual results.
• Test Case answers “How to be tested”
• Assume that we need to test the functionality of a login page of Gmail application.Test
cases for the above login page functionality as follows:
• Test Case Examples:
• Test Case 1: Enter valid User Name and valid Password
Test Case 2: Enter valid User Name and invalid Password
Test Case 3: Enter invalid User Name and valid Password
Test Case 4: Enter invalid User Name and invalid Password
TEST CASES
Test case’s structure
Test Case ID
Each test case should be represented by a unique ID. It’s good practice to follow some naming
convention for better understanding and discrimination purposes.
Ex:
Test scenario:Verify the login of Gmail
Test case: Enter a valid username and valid password
TEST CASES
Test case’s structure
•Pre-condition
Conditions that need to meet before executing the test case. Mention if any preconditions are
available.
Example: Need a valid Gmail account to do login
Test Steps:
To execute test cases, you need to perform some actions. So write proper test steps. Mention all the
test steps in detail and in the order how it could be executed from the end-user’s perspective
Ex:
• Enter Username
• Enter Password
• Click Login button
TEST CASES
Test case’s structure
Test Data
You need proper test data to execute the test steps. So gather appropriate test data. The data
which could be used an input for the test cases.
Ex:
• Username: rajkumar@softwaretestingmaterial.com
• Password: STM
Expected Result:
The result which we expect once the test cases were executed. It might be anything such as
Home Page, Relevant screen, Error message, etc.,
Ex: Successful login
TEST CASES
Test case’s structure
Test Data
You need proper test data to execute the test steps. So gather appropriate test data. The data
which could be used an input for the test cases.
Ex:
• Username: rajkumar@softwaretestingmaterial.com
• Password: STM
Expected Result:
The result which we expect once the test cases were executed. It might be anything such as
Home Page, Relevant screen, Error message, etc.,
Ex: Successful login
TEST CASES
Test case’s structure
Post Condition:
• Conditions that need to achieve when the test case was successfully executed.
• Ex: Gmail inbox is shown
Usually: post condition be merged into expected result
Actual Result:
• The result which system shows once the test case was executed. Capture the result after
the execution. Based on this result and the expected result, we set the status of the test
case.
Ex: Pass/Fail Redirected to Gmail inbox
TEST CASES
Create test case
B1: Define the purpose of the test: need to understand the specification of customer
requirements.
B2: Define the testing function: need to know how the software is used including different
functional activities and organization.
B3: Identification of non-functional requirements: hardware requirements, operating system,
security aspects
B4: Define forms for TCs: include UI interface, functionality, compatibility, and performance ...
What is Error ?
• An error is a mistake, misconception, or misunderstanding on the part of a software
developer. In the category of developer we include software engineers, programmers,
analysts, and testers.
• For example, a developer may misunderstand a de-sign notation, or a programmer
might type a variable name incorrectly — leads to an Error. It is the one which is
generated because of wrong login, loop or due to syntax. Error normally arises in
software; it leads to change the functionality of the program.
BUG – DEFECT- ERROR-FAILURE
What is Error ?
• An error is a mistake, misconception, or misunderstanding on the part of a software
developer. In the category of developer we include software engineers, programmers,
analysts, and testers.
• For example, a developer may misunderstand a de-sign notation, or a programmer
might type a variable name incorrectly — leads to an Error. It is the one which is
generated because of wrong login, loop or due to syntax. Error normally arises in
software; it leads to change the functionality of the program.
BUG – DEFECT- ERROR-FAILURE
What is Failure ?
As we , discuss above when build does not meet the requirement then it is called Failure or fault.
• It is a condition that causes the software to fail to perform its required function. It is the
inability of a system or component to perform required function according to its
specification.
• For example, as per the software requirement specification there is no need to develop
the login page but all requirements are not clear at the end of developer side and they
created login page
BUG – DEFECT- ERROR-FAILURE
What is Bug ?
• As we , discuss above When defect accepted by development team it is called Bug
• In Software testing, when the expected and actual behavior is not matching, an incident needs
to be raised. It is a programmer’s fault where a programmer intended to implement a certain
behavior, but the code fails to correctly conform to this behavior because of incorrect
implementation in coding. It is also known as Defect.
• For example, login module is tested by the tester ; he enter valid email address and
password but it still show warning “ invalid email address”. Now tester reported that defect
to developer and he accepted that defect/ issue is called bug.
BUG – DEFECT- ERROR-FAILURE
• New: When a defect is logged and posted for the first time. Its state is given as new.
• Assigned: Once the bug is posted by the tester, the lead of the tester approves the bug and
assigns the bug to developer team.
• Open: Its state when the developer starts analyzing and working on the defect fix.
• Fixed:When developer makes necessary code changes and verifies the changes then he/she can
make bug status as ‘Fixed’.
• Retest: At this stage the tester do the retesting of the changed code which developer has given to
him to check whether the defect got fixed or not.
• Reopened: If the bug still exists even after the bug is fixed by the developer, the tester changes
the status to “reopened”.The bug goes through the life cycle once again.
WHAT IS DEFECT LIFE CYCLE?
• Deferred: The bug, changed to deferred state means the bug is expected to be fixed in next releases.
The reasons for changing the bug to this state have many factors. Some of them are a priority the bug
may be low, lack of time for the release or the bug may not have a major effect on the software.
• Rejected: If the developer feels that the bug is not genuine, the developer rejects the bug. Then the
state of the bug is changed to “rejected”.
• Duplicate : If the bug is repeated twice or the two bugs mention the same concept of the bug, then
the recent/latest bug status is changed to “duplicate“.
• Closed: Once the bug is fixed, it is tested by the tester. If the tester feels that the bug no longer exists in
the software, tester changes the status of the bug to “closed”. This state means that the bug is fixed,
tested and approved.
WHAT IS DEFECT LIFE CYCLE?
• Bug/Defect severity can be defined as the impact of the bug on the application. It can be
Critical, Major or Minor. In simple words, how much effect will be there on the system
because of a particular defect
• What are the types of Severity?
• Severity can be categorized into three types:
• As mentioned above the type of severity are categorized as Critical, Major, and Minor
• Let’s see how can we segregate a bug into these types:
BUG SEVERITY AND PRIORITY
• Critical:
• A critical severity issue is an issue where a large piece of functionality or major system component is completely
broken and there is no workaround to move further.
For example, Due to a bug in one module, we cannot test the other modules because that blocker bug has blocked
the other modules. Bugs which affects the customers business are considered as critical
• Major:
• A major severity issue is an issue where a large piece of functionality or major system component is completely
broken and there is a workaround to move further.
• Minor:
• A minor severity issue is an issue that imposes some loss of functionality, but for which there is an acceptable &
easily reproducible workaround.
• For example, font family or font size or color or spelling issue
• Trivial:
• A trivial severity defect is a defect which is related to the enhancement of the system
BUG SEVERITY AND PRIORITY
• What is Priority?
• Defect priority can be defined as an impact of the bug on the customers business. Main focus on how soon the
defect should be fixed. It gives the order in which a defect should be resolved. Developers decide which defect they
should take up next based on the priority. It can be High, Medium or Low.
• Most of the times the priority status is set based on the customer requirement.
• High:
• A high priority issue is an issue which has a high impact on the customers business or an issue which affects the
system severely and the system cannot be used until the issue was fixed. These kinds of issues must be fixed
immediately. Most of the cases as per the user perspective, the priority of the issue is set to high priority even
though the severity of the issue is minor.
• Medium:
• Issues which can be released in the next build comes under medium priority. Such issues can be resolved along with
other development activities.
• Low:
• An issue which has no impact on the customer business comes under low priority.
BUG SEVERITY AND PRIORITY
• https://www.softwaretestingmaterial.com/what-is-the-difference-between-severity-and-priority-in-software-testing/
DEFECT/BUG MANAGEMENT & TEST REPORT
• What is Defect Management Process
• Defects are
usually
categorized by
the Test Manager
–
DEFECT/BUG MANAGEMENT & TEST REPORT
Resolution
• Assignment: Assigned to a developer or
other technician to fix, and changed the
status to Responding.
• Schedule fixing: The developer side take
charge in this phase. They will create a
schedule to fix these defects, depend on
the defect priority.
• Fix the defect: While the development
team is fixing the defects, the Test
Manager tracks the process of fixing
defect compare to the above schedule.
• Report the resolution: Get a report of
the resolution from developers when
defects are fixed.
DEFECT/BUG MANAGEMENT & TEST REPORT
Verification
• After the development team fixed and reported the defect, the testing team verifies that the
defects are actually resolved.
• For example, in the above scenario, when the development team reported that they already fixed 61
defects, your team would test again to verify these defects were actually fixed or not.
Closure
• Once a defect has been resolved and verified, the defect is changed status as closed. If not, you
have send a notice to the development to check the defect again.
Reporting
• The management board has right to know the defect status. They must understand the defect
management process to support you in this project. Therefore, you must report them the current
defect situation to get feedback from them.
TEST ENVIRONMENT
What is Test Environment?
• Test Environment consists of elements that support test execution with software, hardware and
network configured. Test environment configuration must mimic the production environment in
order to uncover any environment/configuration related issues.
Example:
A typical Environmental Configuration for a web-based application is given below: