software quality engineering & testing basics
TRANSCRIPT
-
8/14/2019 Software Quality Engineering & Testing Basics
1/46
Software Quality
Engineering & TestingBasics
-
8/14/2019 Software Quality Engineering & Testing Basics
2/46
Software Quality Engineering & Testing Basics
Contents
Part 1: Classic SDLC Models ..
Part 2: Software Testing ..
Part 3: Software Quality Engineering ..
-
8/14/2019 Software Quality Engineering & Testing Basics
3/46
Part 1
Classic SDLC Models
-
8/14/2019 Software Quality Engineering & Testing Basics
4/46
The classic SDLC Models:
4. Big Bang
5. Code and fix
6. Waterfall7. Spiral
Software Quality Engineering & Testing Basics
Part 1 : ass c DLModels
P 1 DL
-
8/14/2019 Software Quality Engineering & Testing Basics
5/46
Part 1 : ass c DLModels
Big-Bang Model :
The Approach
People+Money+Energy=PerfectSoftware or Nothing!
Advantages
Simple, needs less planning, lessformal development process
DisadvantagesNo formal testing activities, cantmonitor, high risk
Software Quality Engineering & Testing Basics
P 1 DL
-
8/14/2019 Software Quality Engineering & Testing Basics
6/46
Part 1 : ass c DLModels
Code and Fix Model :
The Approach
Informal specification loop ofcode and fix till enough-is-enough
decisionRelease
Advantages
Little planning and documentation
work.
Disadvantages
Hard to manage the testing
Software Quality Engineering & Testing Basics
P t 1 DL
-
8/14/2019 Software Quality Engineering & Testing Basics
7/46
Part 1 : ass c DLModels
Waterfall Model :
The Approach
Discrete phases, a review aftereach phase will decide to move
next or stay at this phase till itsready.
Advantages
Easy to test (clear requirements)
DisadvantagesHigh bugs fixing cost (bugscreep), customer is far from thistill the end
Software Quality Engineering & Testing Basics
P t 1 DL
-
8/14/2019 Software Quality Engineering & Testing Basics
8/46
Part 1 : ass c DLModels
Spiral Model :
The Approach
Round1 (Waterfall Prototype)
Evaluate Round1
Round2 (Waterfall Prototype)
Loop
Advantages
Easy to test, the customer is
tightlyinvolved
Disadvantages
Need risk-assessments expertise
Software Quality Engineering & Testing Basics
-
8/14/2019 Software Quality Engineering & Testing Basics
9/46
Part 2
Software Testing
-
8/14/2019 Software Quality Engineering & Testing Basics
10/46
Part 2 : Software Testing
What is software testing?
A quality control activity aimed atevaluating a software item against thegiven system requirements.
Software Quality Engineering & Testing Basics
-
8/14/2019 Software Quality Engineering & Testing Basics
11/46
Part 2 : Software Testing
What is software testing?
A quality control activity aimed atevaluating a software item against thegiven system requirements.
Software Quality Engineering & Testing Basics
Testing
isaQC
activity
-
8/14/2019 Software Quality Engineering & Testing Basics
12/46
Part 2 : Software Testing
What is the V&V?
Verification: Confirming that something(software) meets its specification.
Validation: Confirming that it meetsthe users requirements.
The two major V&V activities arereviews, and testing. *
Software Quality Engineering & Testing Basics
-
8/14/2019 Software Quality Engineering & Testing Basics
13/46
Part 2 : Software Testing
What is the V&V?
Verification: Confirming that something(software) meets its specification
Validation: Confirming that it meetsthe users requirements.
The two major V&V activities arereviews, and testing.
Software Quality Engineering & Testing Basics
Testi
ngis
aparto
fV&V
activ
ities
-
8/14/2019 Software Quality Engineering & Testing Basics
14/46
Part 2 : Software Testing
What should the tester do?
Find the bugs
Find them early
Make sure that they have beenfixed
Software Quality Engineering & Testing Basics
-
8/14/2019 Software Quality Engineering & Testing Basics
15/46
Part 2 : Software Testing
What should not the tester do?
Fix the bugs! *
Trust the others!
Test with no requirements! Not to report the obvious bugs!
Test with good faith!
Software Quality Engineering & Testing Basics
-
8/14/2019 Software Quality Engineering & Testing Basics
16/46
Part 2 : Software Testing
What are the testing types?
1. Static Testing
Testing a software that is notrunning.
2. Dynamic Testing
Test running software.
Unit (white box), Functional,
Integration, System, Regression,Volume, Load, Stress Integration,Usability, Localization, Live(Production), Compatibility, Smoke,Ad-hoc, User Acceptance
Software Quality Engineering & Testing Basics
-
8/14/2019 Software Quality Engineering & Testing Basics
17/46
Part 2 : Software Testing
2. Dynamic Testing (Contd)
Unit Test: A test of one component of the system.
White Box Test:Testing software with complete knowledge of itsinternal code and logic.
Black Box Test:Testing software based on output only withoutany knowledge of its internal code or logic.
Gray Box Test:Testing software with some knowledge of itsinternal code or logic.
Functional Test:Testing functional requirements of software,such as menus and key commands.
System Test: Overall testing in the user environment.
Software Quality Engineering & Testing Basics
-
8/14/2019 Software Quality Engineering & Testing Basics
18/46
Part 2 : Software Testing
2. Dynamic Testing (Contd)
Acceptance Test:The test performed by end users to approve thesystem.
Alpha Test:The first testing of a product in the production
environment before going live.Beta Test:Testing done by end users.
Volume testing: testing a software application for a certain datavolume.*
Load testing: creating demand on a system or device andmeasuring its response.
Stress testing: determine the stability of a given system or entity.
Compatibility testing: measures how well the system operates ondifferent operating environment. *Software Quality Engineering & Testing Basics
-
8/14/2019 Software Quality Engineering & Testing Basics
19/46
Part 2 : Software Testing
2. Dynamic Testing (Contd)
Recovery Test:Testing a system's ability to recover from ahardware or software failure.
Accessibility testing: measure how well the system interface
serve users with disabilities.*
Negative Test: Using invalid input to test a program's errorhandling.
Regression testing:Testing to make sure that the fix is working
as expected.
Ad Hoc Test: Informal testing without a test case.
Automated Test: Using software to test software.*
Software Quality Engineering & Testing Basics
-
8/14/2019 Software Quality Engineering & Testing Basics
20/46
Part 2 : Software Testing
What is the bug ?
Things the software does that while itis not supposed to do, OR somethingthe software doesn't while it issupposed to.
Software Quality Engineering & Testing Basics
-
8/14/2019 Software Quality Engineering & Testing Basics
21/46
Part 2 : Software Testing
What are the differencebetween the bug severity andpriority?Priority means how urgently bug isneeded to fix.
Severity means how badly it harmsthe system.
Software Quality Engineering & Testing Basics
-
8/14/2019 Software Quality Engineering & Testing Basics
22/46
Part 2 : Software Testing
How to report a bug?
Software Quality Engineering & Testing Basics
Report the pattern not anexample.
Dont describe what's wrong,only!
Be direct to the point (dont tell astory!).
Report the bug, but not how tosolve it.
Dont mix between priority and
severity.
-
8/14/2019 Software Quality Engineering & Testing Basics
23/46
Part 2 : Software Testing
How to report a bug? (Contd)
Software Quality Engineering & Testing Basics
Dont use: CAPS, red letters,red circles, ! , ?.
Dont use your personaljudgment.
Write with the fixer language, notwith yours.
Minimize the options.
Dont use the word Sometimes.
-
8/14/2019 Software Quality Engineering & Testing Basics
24/46
Part 2 : Software Testing
How to report a bug? (Contd)
Software Quality Engineering & Testing Basics
Dont group the bugs.
Dont update the bug
description.
Dont update the bug severity.
-
8/14/2019 Software Quality Engineering & Testing Basics
25/46
Part 2 : Software Testing
When not to fix a bug?
Software Quality Engineering & Testing Basics
Its too risky to fix it.
Its not worth fixing.
There is no enough time.
Its not really a bug.
-
8/14/2019 Software Quality Engineering & Testing Basics
26/46
Part 2 : Software Testing
What are the testing activities?
Software Quality Engineering & Testing Basics
1. Test Plan.
2. Test Analysis.
3. Test Design.4. Test Cases Development.5. Test Cases Execution.6. Test Reporting.
7. Bugs Reporting.8. Releasing reporting.
9. User Acceptance Testing.
-
8/14/2019 Software Quality Engineering & Testing Basics
27/46
Part 2 : Software Testing
When to stop testing?
Software Quality Engineering & Testing Basics
1. Deadline has be been reached.
2. Test cases completed with
passed percentage.
3. End of test budget.
-
8/14/2019 Software Quality Engineering & Testing Basics
28/46
Part 3
Software Quality
-
8/14/2019 Software Quality Engineering & Testing Basics
29/46
Part 3 : Software Quality
What is 'Software QualityAssurance?
Software Quality Engineering & Testing Basics
Software QA involves the entiresoftware development PROCESS- monitoring and improving theprocess, making sure that anyagreed-upon standards andprocedures are followed, andensuring that problems are
found and dealt with. It isoriented to 'prevention'.
f li
-
8/14/2019 Software Quality Engineering & Testing Basics
30/46
What is the Quality Software?
Software Quality Engineering & Testing Basics
Quality software is fairly bug-free, delivered on time andwithin budget, meetsrequirements and/orexpectations, and ismaintainable. However, qualityis obviously a subjective term.
Part 3 : Software Quality
P 3 S f Q li
-
8/14/2019 Software Quality Engineering & Testing Basics
31/46
What are the main qualityattributes?
Software Quality Engineering & Testing Basics
Availability: Is it available when and where I need touse it?
Efficiency: How few system resources does itconsume?
Flexibility: How easy is it to add new features?
Installability: How easy is it to correctly install theproduct.
Interoperability: How easily does it interconnect withother systems?
Maintainability: How easy it is to correct defects or
make changes?
Part 3 : Software Quality
P 3 S f Q li
-
8/14/2019 Software Quality Engineering & Testing Basics
32/46
What are the main qualityattributes?
Software Quality Engineering & Testing Basics
Reliability: How long does it run before causing afailure?
Reusability: How easily can we use components inother systems?
Testability: Can I verify that it was implementedcorrectly?
Usability: How easy is it for people to learn or to use?
Performance: the response time, utilization, andthroughput behavior of the system.
Part 3 : Software Quality
P t 3 S ft Q lit
-
8/14/2019 Software Quality Engineering & Testing Basics
33/46
What are the main qualityattributes?
Software Quality Engineering & Testing Basics
Security: systems ability to resist unauthorizedattempts at usage or behavior modification, while stillproviding service to authorized users.
Part 3 : Software Quality
P t 3 S ft Q lit
-
8/14/2019 Software Quality Engineering & Testing Basics
34/46
What are the types of softwarereviews?
Software Quality Engineering & Testing Basics
1. Peer Review
2. Walkthrough
3. Inspection
Moref
ormal
Part 3 : Software Quality
P t 3 S ft Q lit
-
8/14/2019 Software Quality Engineering & Testing Basics
35/46
What is the characteristics of Peerreviews?
Software Quality Engineering & Testing Basics
Informal.
Audience: Owner(author) and peer(s)of similar expertise (no managers).
It require guidelines and checklist.
Part 3 : Software Quality
P t 3 S ft Q lit
-
8/14/2019 Software Quality Engineering & Testing Basics
36/46
What is the characteristics of the
walkthrough?
Software Quality Engineering & Testing Basics
More formal.
Audience: 3-5 , at least 1 senior, the
owner act as a reader and recorder.
The owner should send a copy of thingsthat need review prior to the meeting.
Reader should write a report with thefeedback and how to address it.
2nd meeting can be conducted to followup.
Part 3 : Software Quality
P t 3 S ft Q lit
-
8/14/2019 Software Quality Engineering & Testing Basics
37/46
What is the characteristics of the
Inspection?
Software Quality Engineering & Testing Basics
The most formal.
Audience: typically 3-8 people including
a moderator, reader, and a recorder totake notes.
The reader should not be the owner.
The owner should send a copy of thingsthat need review prior to the meeting.
Each Inspectors should review the code fora different perspective.
Part 3 : Software Quality
P t 3 S ft Q lit
-
8/14/2019 Software Quality Engineering & Testing Basics
38/46
What is the characteristics of the
Inspection? (Contd)
Software Quality Engineering & Testing Basics
After the inspection meeting the moderatorcall for another meeting to discuss thefeedback and how the owner will address
them.
Require training.
Part 3 : Software Quality
P t 3 S ft Q lit
-
8/14/2019 Software Quality Engineering & Testing Basics
39/46
Quality standards and auditingorganizations
Software Quality Engineering & Testing Basics
ISO (International Organization forStandardization).
CMMI (Capability Maturity ModelIntegration).
IEEE (Institute of Electrical and ElectronicsEngineers).
Part 3 : Software Quality
Part 3 Software Quality
-
8/14/2019 Software Quality Engineering & Testing Basics
40/46
ISO 9001:2000
Software Quality Engineering & Testing Basics
ISO 9001 is a series of documents that definerequirements for the Quality ManagementSystem Standard. ISO 9001 is one of thedocuments in this set; it contains the actualrequirements an organization must be incompliance with to become ISO 9001Registered.
Part 3 : Software Quality
Part 3 : Software Quality
-
8/14/2019 Software Quality Engineering & Testing Basics
41/46
Why do companies want ISO 9001:200
Software Quality Engineering & Testing Basics
Many organizations decide to Implement ISO9001 and obtain registration because itassures customers that the company has a
good Quality Management System (QMS) inplace. An organization with an effective QMSwill typically meet customer expectationsbetter than an organization that does nothave an effective QMS. Many organizations
require their suppliers to have ISO 9001Registration.
Part 3 : Software Quality
Part 3 : Software Quality
-
8/14/2019 Software Quality Engineering & Testing Basics
42/46
What is CMMI ?
Software Quality Engineering & Testing Basics
Capability Maturity Model Integration (CMMI)is a process improvement approach thatprovides organizations with the essential
elements of effective processes. It can beused to guide process improvement across aproject, a division, or an entire organization.CMMI provide guidance for quality processes,and provide a point of reference for appraising
current processes.
Part 3 : Software Quality
Part 3 : Software Quality
-
8/14/2019 Software Quality Engineering & Testing Basics
43/46
What are the 5 levels of CMMI ? (Contd
Software Quality Engineering & Testing Basics
Level One Initial
Company has no standard process forsoftware development. Nor does it have aproject-tracking system that enables
developers to predict costs or finish dates withany accuracy.
Level Two - Managed
Company has installed basic software
management processes and controls. Butthere is no consistency or coordination amongdifferent groups.
Part 3 : Software Quality
Part 3 : Software Quality
-
8/14/2019 Software Quality Engineering & Testing Basics
44/46
What are the 5 levels of CMMI ? (Contd
Software Quality Engineering & Testing Basics
Level Three Defined
Company has pulled together a standard setof processes and controls for the entireorganization so that developers can move
between projects more easily and customerscan begin to get consistency from differentgroups.
Level Four Quantitively Managed
In addition to implementing standardprocesses, company has installed systems tomeasure the quality of those processes acrossall projects.
Part 3 : Software Quality
Part 3 : Software Quality
-
8/14/2019 Software Quality Engineering & Testing Basics
45/46
What are the 5 levels of CMMI ? (Contd
Software Quality Engineering & Testing Basics
Level Five - OptimizedCompany has accomplished all of the aboveand can now begin to see patterns inperformance over time, so it can tweak itsprocesses in order to improve productivityand reduce defects in software developmentacross the entire organization.
Part 3 : Software Quality
Part 3 : Software Quality
-
8/14/2019 Software Quality Engineering & Testing Basics
46/46
What is the IEEE ?
The Institute of Electrical and ElectronicsEngineers" (IEEE) is a non-profit organizationthat develops, defines, and reviewselectronics and computer science standards.
Part 3 : Software Quality