+ All Categories
Home > Software > Software testing fundamentals

Software testing fundamentals

Date post: 16-Jul-2015
Category:
Upload: mona-m-abd-el-rahman
View: 293 times
Download: 4 times
Share this document with a friend
44
Prepared by: Asmaa F. Matar. Mona M. Abd El-Rahman.
Transcript

Software testing fundamentals

Software testing fundamentalsPrepared by:

Asmaa F. Matar.Mona M. Abd El-Rahman.

Agenda Why testing is necessary ?What is testing ?Testing principals.Testing process.Why testers ? Testing in development life cycle.Configuration management.QC vs QA.

Why testing is necessary ?!

.Mission CriticalBusinessOthersHealth equipment.Transportations.

BankingInsuranceEducationScientific ResearchRisks(Poor Quality)Humans(Death, Injury)Economy(Money, Time)Business(Revenue, Reputation)Cost of SW quality:Msnbc published the news of 2010 bug hits millions of German bank cards. Guardin.co.uk said they paid about (300m).

Apple Maps gives us directions to nowhere (2012).6Testing goals:

Find defects. Measure quality. Provide confidence.

Errors &MistakesDocuments.CodeSoftware system

Defect or FaultFailureCauses of software defectsHumans do mistakes.Mistakes may lead to defects in source code or system specifications.Defects are detected only when they leads to failures (code is executed), not all defects do so.Failures are considered problems when they occurred in live systems.An observed failure is an incident.8DefectInjectionDetectionPrevention- A defect injected at the time the causing error is made.

- A defect is detected atThe time when failure occurs.

- Finding defects in requirements docs or static code can prevent detecting them in running systems.

What is TESTING ?

The process consisting of all life cycle activities, both static and dynamic concerned with planning , preparation and evaluation of software products and related work products to determine that they satisfy specified requirements , to demonstrate that they are fit for purpose and to detect defects.It can be defined as:- Executing SW is only part of testing ,other activities exist before and after execution.

- Testing activities include: planning and control ,choosing test conditions , designing test cases and checking results , evaluating exit criteria , reporting and closure

11

Suppose You are given Pen with instructions to test it . What will you do ?

Testing Principals:Testing Shows Presence of defects.Exhaustive testing is impossible.Early Testing.Defect Clustering.Pesticide Paradox .Testing is context dependent.Absence of errors fallacy.

15Testing Process

Planning and ControlAnalysis and designImplementation and executionEvaluating Exit criteria And reportingClosurePlanning and control:Ongoing comparison of actual progress against plan.

Reporting status.

Takes into account feedback of monitoring and control.

18Analysis and Design:Reviewing the test basis.Evaluating testability of test basis and test objects.Identifying and prioritizing test conditions Designing and prioritizing test cases.Identifying necessary test dataDesigning the test environment set-up and identifying any required infrastructure and tools.Implementation and Execution:Creating test cases , writing test procedures.

Creating test suits.

Prepare test execution plans.

Implementation and Execution:Execute test cases.

Logging test outcomes and related details.

Checking results and reporting.

Running confirmation and regression testing.

Evaluating exit criteria & Reporting:Checking test logs against the exit criteria specified in the planning.

Assessing if more tests are needed.

Writing a test summary report for stake holders.

Test closure:Checking that deliverables have been delivered as planned.

Archiving the test environment and the test infrastructure for later reuse.

Analyzing lessons learned for future releases and projects .

How much TESTING is enough ?!

The amount of testing needed is proportionate with:

Risk.Defect cost.Information needed.Project constraints.Test infrastructure.

Why testers ?!!

BreakdownBuildCharacteristics of tester:Curiosity.Clear thinking skills.Top flight reading speed and comprehension.Attention to details.Quick learner (outside of testing).

Testing Levels Component TestIntegration testSystem testAcceptanceTestTesting in development lifecycle

Waterfall (Sequential development model)RequirementsAnalysisDesignCodeTestRequirementsAnalysisDesignCodeComponent testIntegration testSystem testAcceptance testV-Model

W-Model - Verification (Reviews) Are we build the right system ?- Validation (Testing running system) Are we building the system right ?33

Iterative incremental

Configuration Management

The purpose of configuration management is to establish and maintain the integrity of the products (components, data and documentation) of the software system through the project and product lifecycle. Configuration Management will ensure the follow:- All items of testware are identified, version controlled, tracked for changes related to each others and related to development items (test objects) so that traceability can be maintained throughout the test process.- All identified documents and software items are referenced unambiguously in the test documentation for the tester, configuration management helps to uniquely identify and reproduce the test item, test documents, the tests and test harness.Benefits ToTestingTraceabilityClear DocumentationUnique Identification38Incident Management How to report an incidents ?!Incident Id.Clear title.Link to a test case and a user story.Tester name.Detected in: Build No.Solved in: Build No.Assigned to: Test environment.Scenario to reproduce the bug.Actual results.Attach screenshots or videos.Expected Results.

QC vs. QA

Quality Assurance (QA)Quality Control (QC)Definition Set of activities for ensuring quality in the processes by which products are developed. Set of activities for ensuring quality in products. The activities focus on identifying defects in the actual products producedAims toPrevent defects with a focus on the process used to make the product. It is a proactive quality process.Identify (and correct) defects in the finished product. Quality control, therefore, is a reactive processGoalImprove development and test processes so that defects do not arise when the product is being developed.Identify defects after a product is developed and before it's released.

Feel free to contact us

[email protected]@gmail.com


Recommended