Software Quality Engineering - Lecture 11 - 17
Software Quality Engineering - Lecture 11 - 17
Engineering
Lecture 11 - 17
By Jawad Khalid @ FAST-NU
Next few lectures
- Risk identification is done during the product quality risk analysis that
usually involves all stakeholders
- Stakeholders can employ one or more of the following techniques for risk
identification:
e
iv
th
ct
s
i
rs w
w
pe
ps
ie
de ng
en t
ho
sm en
rv
ro
ol mi
te
ks
es nd
et
eh or
In
tR
or
ss e
ak st
A dep
rt
W
St ain
ec
pe
sk
oj
Br
In
Ex
Pr
Ri
1 2 3 4 5
Risk Assessment
- Risk categorization
- Risk Severity
- Critical (1) − Harsh effects that reduces the productivity to zero. It can also cause the
project to be terminated. It has a top priority in risk management.
- High (2) − Large effects, can cause great loss, and severely threatens the project.
- Medium (3) - Short term damage still reversible through restoration activities.
- Low (4) - Little or minimal damage or loss. This can be monitored and managed by
routine procedures.
- Risk Probability
- Frequent (A) − Expected to occur several times in most scenarios. (91-100%)
- Probable (B) − Likely to arise several times in most scenarios (61-90%)
- Occasional (C) − May arise sometime (41-60%)
- Remote(D) − Unlikely to arise/may arise sometime (11-40%)
- Improbable(E) − May arise in rare scenarios (0-10%)
- Eliminated(F) − Impossible (0%)
Risk Mitigation
Test cases by
Identify all possible
System Study applying test design Review Test cases
test scenarios
techniques
- Determining in which test areas low-level or high-level test cases are appropriate
- Determining the test technique(s) that will enable the necessary coverage to be
achieved. The techniques that may be used are established during test planning.
- Using test techniques to design test cases and sets of test cases that cover the
identified test conditions
- Identifying necessary test data to support test conditions and test cases
- Designing the test environment and identifying any required infrastructure including
tools
- Capturing bi-directional traceability (e.g., between the test basis, test conditions and
test cases)
Test Case Design
- Review Types
- Self-review
- Peer review
- Supervisory Review
Test Case lifecycle
Common Issues in Test Cases
- Pros: - Pros:
- Explicit documented tests - More adoptable: Tester determines actual
- Better Guarantee of Coverage test steps
- Easy to trace back to requirements - Learning and testing at the same time
- It’s automatable - Less test prep and documentation
- Medium and Junior QA can test - Cons:
- Written directly from requirements - Coverage depends on tester’s skill to
- Cons: explore and learn
- Not adoptable i.e. can’t deviate from - It’s not automatable
steps - Difficult to trace back to requirements
- Require documentation and maintenance
Test Case VS Exploratory Testing
- Why Choose?
- Test case based testing and Exploratory testing are both excellent techniques for
reducing the number of defects found in production. Together they serve as two
great complementary techniques that build on each other. Ideally, we would like
to do both.
Test Environment
Test Environment
- A testing environment is a setup of software and hardware on which the testing team
is going to execute test cases. The test environment consists of real business and
user environment, as well as physical environments, such as server, front end running
environment.
Different Major Available Environments
01 Development Environments
●
Collaboration
No Client Data
02 QA/Test Environments
●
●
with test data
No client Data
Company may have multiple QA/Test Environments
03 Staging Environment
●
●
acceptance based on production sized data set
Limited production data
Scaled down replica of Production environment
04 Production Environment
●
●
Used by clients (live)
Full Production Data
Setting Up Test Environments
- Maintenance of central repository with all the updated version of test environments
- Test Environment management as per the test team demands
- Creating new environments as per the new requirements
- Monitoring the environments
- Updating/Deleting outdated test environments
- Investigation of issues on the environment
- Coordination till an issue resolution
Challenges of Test Environment
- Yes, all the data that you have used or created during the testing of the applications in
lab exercises is Test Data. e.g
- Boards, lists and cards that you had to create to do the testing of search (Test
Data created to meet the pre-condition)
- The Value(s) that you used to test the search field (Test Data used as input to
confirm the functionality)
Test Data
- Preparation & maintenance of test data consumes between 30%-60% of the tester’s
time
- Manual Test data practices create bottlenecks in CI/CD pipelines
Test Data Example
- You are designing test cases for Whatsapp. You want to test if the Whatsapp shows
correct messaging history for all types of user. Identify what test data you would
need?
- A new user with no messaging history/call history
- A very old user with lots of messaging history. Messages including
- Images
- Text
- Voice
- An old user that switched mobiles between android / IOS
- Old user who deleted their account and then recreated it
How to Create Test Data
Us rat
but complete test data
Ge ools
on
ing ion
Pro From
ne
- Using Test Generation Tools
cti
T
Te
du
- Quick data generation using online tools
st
- More robust data generation using specialized tools
- Customized data generation using custom scripting as part of
application code
Explore creating test data
- https://generatedata.com/
- https://mockaroo.com/
- https://www.bestrandoms.com/random-address-in-ph?quantity=6
Challenges in Preparing Test Data
- Testing team lacking knowledge and skills in test data generation tools
- Testing team not having access to data sources
- Delay in production data access to the testers
- Production data not being fully usable in case of developing business scenarios
- Large volumes of data required
- Synthetic data is less reliable and credible
- Non-representative data fails to identify critical bugs
- Replication and/or sharing of sensitive data can create legal issues
- Protecting Test Data to standard compliances
Test Data Creation Criteria
- Following categories of test data should be considered while designing test data:
- No data: Check system response when no data is submitted
- Valid data: Check system response when Valid test data is submitted
- Invalid data: Check system response when InValid test data is submitted
- Illegal data format: Check system response when test data is in an invalid format
- Boundary Condition Dataset: Test data meeting boundary value conditions
- Equivalence Partition Data Set: Test data qualifying your equivalence partitions.
- Decision Table Data Set: Test data qualifying your decision table testing strategy
- State Transition Test Data Set: Test data meeting your state transition testing
strategy
- Use Case Test Data: Test Data in-sync with your use cases.
Test Data Management Strategies
03 Production Data
● Manage sanitized production data to be used
when required
- The activity that runs a test on a component or system producing actual results.
- Basic Test Execution Tasks
- Executing manual tests, including exploratory testing
- Executing automated tests
- Comparing actual results with expected results
- Analyzing anomalies to establish their likely causes
- Reporting defects based on the failures observed
- Logging the actual results of test execution
- Executing regression tests
Other Test Execution Tasks
- Recognizing defect clusters which may indicate the need for more testing of a
particular part of the test object
- Making suggestions for future exploratory testing sessions based on the findings
from exploratory testing
- Identifying new risks from information obtained when performing test execution tasks
- Making suggestions for improving any of the work products from the test
implementation activity (e.g., improvements to test procedures)
Test Execution Entry Criteria
Screencasting/S
creen capturing
tool
Console Monitor
Monitoring Tool
Network
Browser
Clipboard
History Manager
Test Execution Prioritization
- Test Management Tools are user to create test cycles according to test plans.
- During execution, Tester needs to update the test case execution status properly
- To-Be-Executed
- In-Progress
- Passed
- Failed
- Blocked
Bug Reporting
Bug Reporting
- One major task during test execution is reporting defects based on the failures
observed
Bug Reporting
- Bug Report Components
- Identifier
- Title/ Summary
- Reporting Date
- Reporter
- Test Item
- Test Environment
- Description
- Steps to reproduce
- Test Data used
- Screenshots / screencasts
- System Logs and any attachment that can help
- Expected & Actual Results
- Severity
- Priority
- Status
Bug’s Lifecycle
- The ultimate goal of the test planning process is communicating (not recording) the
software test team's intent, its expectations, its understanding of the testing that's to
be performed.
Test Planning Topics To Discuss
- High-Level Expectations:
- Initial alignment of stakeholders on product, test planning process, etc
- People, Places, and Things:
- List of all key stakeholders and their contact details
- Definitions:
- High-level quality and reliability goals
- Inter-Group Responsibilities:
- Identify tasks and deliverables that potentially affect the test effort
- What Will and Won't Be Tested:
- Somethings will not be tested because they are already tested components, changes
have no relation, some component is a third-party’s tested product
- Test Phases
- Identify what to test and when to test based on development plan
Test Planning Topics To Discuss
- Test Strategy
- Define test strategy that the test team will use to test the software both overall and in
each phase.
- Resource Requirements
- People, Equipment, Office and lab space, Software, Outsource companies,
Miscellaneous supplies
- Tester Assignments
- Assign responsibilities to individuals or groups
- Test Schedule
- Discuss timelines based on scope, phases, strategy, resources, etc.,
- Test Cases
- What test case to write, can we use existing test cases, how and where to manage the
test cases
Test Planning Topics To Discuss
- Bug Reporting
- Process for bug reporting and Managing
- Metrics and Statistics
- Metrics and KPIs that needs to be tracked to measure progress of testing, quality of
testing, success of project
- Risks and Issues
- Very useful and critical for successful testing and delivery of project
- Risks include: unrealistic deadlines for testing, insufficient skills of testers, delays in
environment availability or work product availability, sufficient resources not available,
people leaving the companies
- Note: these are risks to testing effort and not related to product risks that we used for
Risk-Based Testing
Key Steps for Test Planning
9. Risk Assessment
and Mitigation
Exercises
- For Scenario 1:A new test strategy will need to be devised. However, team is
experienced and we require only a PoC, so they can choose a best suitable one from
their prior experience. As there is no resource allocation so need to evaluate if a new
hiring is required or not. Clear definition of entry/exit criteria that is aligned with the
needs of PoC to avoid too less or too much testing
- In Scope and Out of Scope:
- It’s a PoC so the scope may only include functional testing
- Only positive scenarios may need to be tested. No need to test negative or
edge cases
- Formal test case writing may not be in Scope.
Exercises
- For Scenario 2: Most of the tooling, environments, skills, test cases, etc will already be
their. May only need to check for schedule, resource availability from the existing
team, risk-based and change-based testing to identify suitable test cases to execute,
risk in delay of availability of new code, etc.
- In Scope and Out of Scope:
- Confirmation test suite, smoke test suite and regression test suite
- No need to test unrelated functionalities
- For Scenario 3: In this case, we may only require ATDD/BDD test cases, required
regression testing and adjusting story point estimation respectively
Exercises
- Following are some tasks teams need to do:
- Product Vision Statement
- list of product components, their design/features
- Complete Project schedule
- Product Architecture and design
- Product Code
- Unit testing
- Test Planning
- Test Plan review by stakeholders
- General Testing
- Considering following teams
- Program Management
- Developers
- Tester
- Marketing
Identify which team is mainly responsible for each task above and identify each tasks inter dependencies to highlight associate risks
Exercises
- Following are some tasks teams need to do:
- 1. Product Vision Statement (PM and Marketing)
- 2. List of product components, their design/features (PM) - Depends on 1
- 3. Complete Project schedule (PM) - Depends on 2
- 4. Product Architecture and design (Developers) - Depends on 2
- 5. Product Code (Developers) - Depends on 4
- 6. Unit testing (Developers) - Depends on 5
- 7. Test Planning (Testers) - Depends on 2 n 3
- 8. Test Plan review by stakeholders (PM, Developers) Depends on 8
- 9. General Testing (Testers) - Depends on 5 n 8
Exercises
- Your company is building a software that has following timelines for different deliverables
- Product High level requirements - 1 weeks from now
- Product detailed requirements - 3 weeks from now
- First set of features developed - 5 weeks from now
- 2nd set of features developed - 7 weeks from now
- Complete Product - 9 weeks from now
- You need to identify schedule for following
- Finalized Test Plan
- Test Case writing
- Testing
- Also identify what resources will be required and and for what will be their responsibilities
- QA Lead
- QA Tester(s) - for test designing and test execution
Exercises
- High Level Schedule with sample values
- Update Test Plan Start 1 week from now require 2 days QA Lead
- Finalize Test Plan Start 3 weeks from now require 2 days QA Lead
- Test case writing for high level requirements Start 1 week from now require 1 week Tester 50% + Lead 20%
- Test case writing for Phase 1 requirements Start 3 week from now require 1 week Tester 100% + Lead 20 %
- Test case writing for Phase 2 requirements Start 4 week from now require 1 week Tester 100% + Lead 20 %
- Test case writing for Phase 3 requirements Start 5 week from now require 1 week Tester 100% + Lead 20 %
- Testing for Phase 1 requirements Start 5 week from now require 1 week Tester 100% + Lead 20 %
- Testing for Phase 2 requirements Start 7 week from now require 1 week Tester 100% + Lead 20 %
- Testing for Phase 3 requirements Start 9 week from now require 1 week Tester 100% + Lead 20 %
- Notes:
- For week 5 we need to allocate 2 testers and more total of 40% time from lead based on above schedule
- As testing is only taking 1 week for each phase and development of next phase is taking two weeks so we may have free time for a tester ( they
might have to test for some bug fixes for previous phases or test case writing task can be divided so that we don’t have to involve the second
tester
- We may need to assign a redundant tester to stay involved in the project to avoid any delays if the current tester/lead needs to take a few days
off
Test Strategy
Test Strategy
Test Implementation
- Testing Process that we saw and Execution
in first lecture
Evaluating Exit
Criteria and Reporting