P. 1
Software Quality Engineering & Testing Basics

Software Quality Engineering & Testing Basics

|Views: 489|Likes:
Published by Karthik Tantri

More info:

Published by: Karthik Tantri on Mar 09, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

08/08/2012

pdf

text

original

Software Quality Engineering & Testing Basics

Contents

• Part 1: Classic SDLC Models .. • Part 2: Software Testing .. • Part 3: Software Quality Engineering ..

Software Quality Engineering & Testing Basics

Part 1 Classic SDLC Models

Part 1 : Classic SDLC Models
The classic SDLC Models: 4. 5. 6. 7. Big Bang Code and fix Waterfall Spiral

Software Quality Engineering & Testing Basics

Part 1 : Classic SDLC Models
Big-Bang Model : • The Approach
People+Money+Energy=Perfect Software or Nothing!

• Advantages
Simple, needs less planning, less formal development process

• Disadvantages
No formal testing activities, can’t monitor, high risk

Software Quality Engineering & Testing Basics

Part 1 : Classic SDLC Models
Code and Fix Model : • The Approach
Informal specification→ loop of code and fix till enough-is-enough decision→Release

• Advantages
Little planning and documentation work.

• Disadvantages
Hard to manage the testing

Software Quality Engineering & Testing Basics

Part 1 : Classic SDLC Models
Waterfall Model : • The Approach
Discrete phases, a review after each phase will decide to move next or stay at this phase till it’s ready.

•Advantages
Easy to test (clear requirements)

• Disadvantages
High bugs fixing cost (bugs creep), customer is far from this till the end
Software Quality Engineering & Testing Basics

Part 1 : Classic SDLC Models
Spiral Model : • The Approach
Round1 (Waterfall → Prototype) Evaluate Round1 Round2 (Waterfall → Prototype) Loop

•Advantages
Easy to test, the customer is tightly involved

• Disadvantages
Need risk-assessments expertise
Software Quality Engineering & Testing Basics

Part 2 Software Testing

Part 2 : Software Testing
What is software testing?
A quality control activity aimed at evaluating a software item against the given system requirements.

Software Quality Engineering & Testing Basics

Part 2 : Software Testing
What is software testing?
A quality control C activity aimed at evaluating aa Q software item against the given system requirements. is

ng sti ity Te tiv ac

Software Quality Engineering & Testing Basics

Part 2 : Software Testing
What is the V&V?
Verification: Confirming that something (software) meets its specification.

Validation: Confirming that it meets the user’s requirements.

The two major V&V activities are reviews, and testing. *

Software Quality Engineering & Testing Basics

Part 2 : Software Testing
What is the V&V?
Verification: Confirming that something V (software) meets its specification

ng s sti Thee major V&V activities are iti two Te tivreviews, and testing. ac

Validation: Confirming that it meets s a requirements. the i user’s

V& of t ar p

Software Quality Engineering & Testing Basics

Part 2 : Software Testing
What should the tester do?
• • • Find the bugs Find them early Make sure that they have been fixed

Software Quality Engineering & Testing Basics

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

Part 2 : Software Testing
What are the testing types?
1. Static Testing Testing a software that is not running. 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

Part 2 : Software Testing
2. Dynamic Testing (Cont’d)
• Unit Test: A test of one component of the system. • White Box Test: Testing software with complete knowledge of its internal code and logic. • Black Box Test: Testing software based on output only without any knowledge of its internal code or logic. • Gray Box Test: Testing software with some knowledge of its internal 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

Part 2 : Software Testing
2. Dynamic Testing (Cont’d)
• Acceptance Test: The test performed by end users to approve the system. • 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 data volume.* • Load testing: creating demand on a system or device and measuring its response. • Stress testing: determine the stability of a given system or entity. • Compatibility testing: measures how well the system operates on Software Quality Engineering & Testing Basics different operating environment. *

Part 2 : Software Testing
2. Dynamic Testing (Cont’d)
• Recovery Test: Testing a system's ability to recover from a hardware 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 error handling. • 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

Part 2 : Software Testing
What is the ‘bug’ ?
Things the software does that while it is not supposed to do, OR something the software doesn't while it is supposed to.

Software Quality Engineering & Testing Basics

Part 2 : Software Testing
What are the difference between the bug severity and priority?
Priority means how urgently bug is needed to fix.   Severity means how badly it harms the system.

Software Quality Engineering & Testing Basics

Part 2 : Software Testing
How to report a bug? Report the pattern not an example. Don’t describe what's wrong, only! Be direct to the point (don’t tell a story!). Report the bug, but not how to solve it. Don’t mix between priority and Software Quality Engineering & Testing Basics severity.

Part 2 : Software Testing
How to report a bug? (Cont’d) • Don’t use: CAPS, red letters, red circles, ‘!’ , ‘?’. • Don’t use your personal judgment. • Write with the fixer language, not with yours. • Minimize the options. • Don’t use the word ‘Sometimes’.
Software Quality Engineering & Testing Basics

Part 2 : Software Testing
How to report a bug? (Cont’d) Don’t group the bugs. Don’t update the bug description. Don’t update the bug severity.

Software Quality Engineering & Testing Basics

Part 2 : Software Testing
When not to fix a bug? It’s too risky to fix it. It’s not worth fixing. There is no enough time. Its not really a bug.

Software Quality Engineering & Testing Basics

Part 2 : Software Testing
What are the testing activities? 1. Test Plan. 2. 3. 4. 5. 6. 7. 8. Test Analysis. Test Design. Test Cases Development. Test Cases Execution. Test Reporting. Bugs Reporting. Releasing reporting.

9. User Acceptance Testing.
Software Quality Engineering & Testing Basics

Part 2 : Software Testing
When to stop testing? 1. Deadline has be been reached. 2. Test cases completed with passed percentage. 3. End of test budget.

Software Quality Engineering & Testing Basics

Part 3 Software Quality

Part 3 : Software Quality
What is 'Software Quality Assurance’? Software QA involves the entire software development PROCESS - monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with. It is oriented to 'prevention'.

Software Quality Engineering & Testing Basics

Part 3 : Software Quality
What is the ‘Quality Software’? Quality software is fairly bugfree, delivered on time and within budget, meets requirements and/or expectations, and is maintainable. However, quality is obviously a subjective term.

Software Quality Engineering & Testing Basics

Part 3 : Software Quality
What are the main quality attributes? •Availability: Is it available when and where I need to use it? •Efficiency: How few system resources does it consume? •Flexibility: How easy is it to add new features? •Installability: How easy is it to correctly install the product. •Interoperability: How easily does it interconnect with other systems? •Maintainability: How easy it is to correct defects or Software Quality Engineering & Testing Basics make changes?

Part 3 : Software Quality
What are the main quality attributes? •Reliability: How long does it run before causing a failure? •Reusability: How easily can we use components in other systems? •Testability: Can I verify that it was implemented correctly? •Usability: How easy is it for people to learn or to use? •Performance: the response time, utilization, and throughput behavior of the system.
Software Quality Engineering & Testing Basics

Part 3 : Software Quality
What are the main quality attributes? •Security: system’s ability to resist unauthorized attempts at usage or behavior modification, while still providing service to authorized users.

Software Quality Engineering & Testing Basics

Part 3 : Software Quality
What are the types of software ‘reviews’? 1. Peer Review More formal 2. Walkthrough 3. Inspection

Software Quality Engineering & Testing Basics

Part 3 : Software Quality
What is the characteristics of ‘Peer reviews’?
Informal. Audience: Owner(author) and peer(s) of similar expertise (no managers). It require guidelines and checklist.

Software Quality Engineering & Testing Basics

Part 3 : Software Quality
What is the characteristics of the ‘walkthrough’?
•More formal. •Audience: 3-5 , at least 1 senior, the owner act as a reader and recorder. •The owner should send a copy of things that need review prior to the meeting. •Reader should write a report with the feedback and how to address it. •2nd meeting can be conducted to follow up.
Software Quality Engineering & Testing Basics

Part 3 : Software Quality
What is the characteristics of the ‘Inspection’?
•The most formal. •Audience: typically 3-8 people including a moderator, reader, and a recorder to take notes. •The reader should not be the owner. •The owner should send a copy of things that need review prior to the meeting.
•Each Inspectors should review the code for a different perspective.
Software Quality Engineering & Testing Basics

Part 3 : Software Quality
What is the characteristics of the ‘Inspection’? (Cont’d)
•After the inspection meeting the moderator call for another meeting to discuss the feedback and how the owner will address them. •Require training.

Software Quality Engineering & Testing Basics

Part 3 : Software Quality
Quality standards and auditing organizations
ISO (International Organization for Standardization). CMMI (Capability Maturity Model Integration). IEEE (Institute of Electrical and Electronics Engineers).

Software Quality Engineering & Testing Basics

Part 3 : Software Quality
ISO 9001:2000
ISO 9001 is a series of documents that define requirements for the Quality Management System Standard. ISO 9001 is one of the documents in this set; it contains the actual requirements an organization must be in compliance with to become ISO 9001 Registered.

Software Quality Engineering & Testing Basics

Part 3 : Software Quality

Why do companies want ISO 9001:2000
Many organizations decide to Implement ISO 9001 and obtain registration because it assures customers that the company has a good Quality Management System (QMS) in place. An organization with an effective QMS will typically meet customer expectations better than an organization that does not have an effective QMS. Many organizations require their suppliers to have ISO 9001 Registration.

Software Quality Engineering & Testing Basics

Part 3 : Software Quality
What is CMMI ?
Capability Maturity Model® Integration (CMMI) is a process improvement approach that provides organizations with the essential elements of effective processes. It can be used to guide process improvement across a project, a division, or an entire organization. CMMI provide guidance for quality processes, and provide a point of reference for appraising current processes.

Software Quality Engineering & Testing Basics

Part 3 : Software Quality

What are the 5 levels of CMMI ? (Cont’d)
Level One – Initial Company has no standard process for software development. Nor does it have a project-tracking system that enables developers to predict costs or finish dates with any accuracy. Level Two - Managed Company has installed basic software management processes and controls. But there is no consistency or coordination among different groups.

Software Quality Engineering & Testing Basics

Part 3 : Software Quality

What are the 5 levels of CMMI ? (Cont’d)
Level Three – Defined Company has pulled together a standard set of processes and controls for the entire organization so that developers can move between projects more easily and customers can begin to get consistency from different groups. Level Four – Quantitively Managed In addition to implementing standard processes, company has installed systems to measure the quality of those processes across all projects.  
Software Quality Engineering & Testing Basics

Part 3 : Software Quality

What are the 5 levels of CMMI ? (Cont’d)
•Level Five - Optimized Company has accomplished all of the above and can now begin to see patterns in performance over time, so it can tweak its processes in order to improve productivity and reduce defects in software development across the entire organization.  

Software Quality Engineering & Testing Basics

Part 3 : Software Quality
What is the IEEE ?
The Institute of Electrical and Electronics Engineers" (IEEE) is a non-profit organization that develops, defines, and reviews electronics and computer science standards.  

Software Quality Engineering & Testing Basics

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->