Software Quality Engineering & Testing Basics - Belal Raslan

  • Uploaded by: Karthik Tantri
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Software Quality Engineering & Testing Basics - Belal Raslan as PDF for free.

More details

  • Words: 2,184
  • Pages: 46
Software Quality Engineering & Testing Basics Belal Raslan Date: 25-11-2007

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 Q evaluating aasoftware item against the given system is requirements.

g n ti y s Te tivit 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

& V f o rt a p

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

g n s major V&V activities are ti Theietwo s it Te tivreviews, and testing. c a

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

2. Walkthrough 3. Inspection

More formal

What are the types of software ‘reviews’? 1. Peer Review

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

Related Documents


More Documents from "Adarsh"

Test Arch
December 2019 22
Java & C++
December 2019 34
Overview Of Load Test Tools
December 2019 27
Exploring Studio Mx
May 2020 18
Gui Regression Automation
December 2019 26
Fw Mx Getting Started
May 2020 11