You are on page 1of 53

Software testing for mobile apps

Introduction
AHMED A. QAZZAZ SEP 2021























Special Thanks

• Special Thanks to Prof. Alaa El-Halees for all the efforts he gave to create the content of the
original course of software testing and quality assurance in the software development
department.

• ‫شكر خاص ألستاذ الدكتور عالء الهليس على جهودة في تجميع وانشاء هذا المحتوى للمساق األساسي ” فحص البرمجيات‬
‫وتأكيد الجودة ” الخاص بقسم تطوير البرمجيات‬

AHMED A. QAZZAZ SEP 2021

























Index
• Quality Definition. • Activities of SQA
• Importance of Quality • Elements of SQA
• Software • Objectives of SQA
• Software Quality • Causes of low quality
• Software Quality Factors • Software Testing
• Software Quality Aspects • Testing Life cycle
• Software Quality Effects
• Software Quality Costs

AHMED A. QAZZAZ SEP 2021




















Definitions
Lecture #1
Quality Definition
• Any organization aims to achieve high quality products, or services. What does ‘quality` term
means?
• The quality can be defined as the degree of matching between the final product and the original
requirements or with the customer expectations.
• Quality of Service, can be the delivery of reliable service or product on time, under agreed
conditions within reasonable cost, and with the appropriate aftercare (maintenance).
• Reliable Service • Cost
• Time • AfterCare
• Agreed Conditions

AHMED A. QAZZAZ SEP 2021



Quality Definition
• The achievement of high quality is related directly to testing
• This testing process should be from the first day of the project cycle
• The Quality and Testing should not be checked on the end of the project or to be applied on a
final product.
• The high quality can not be achieved accidentally it is an on going process

AHMED A. QAZZAZ SEP 2021









Importance of Quality
• Service providers can easily provide any service or product without any attention to the quality
level, but the importance of the quality and the motives to achieve quality can be for one or
more of the following reasons.
• Morality motives.
• Legal commitments.
• Reputation, professionalism, and best practices.
• Profitability motives.

AHMED A. QAZZAZ SEP 2021
















Software
• IEEE definition of software
• It is the Computer Code that is produced in specific procedures and based on associated
documents, along with data passed to the system during development, testing, and
production phases

AHMED A. QAZZAZ SEP 2021

























Software Quality
• refers to the degree a system, component, or process conforms to specific requirements or
expectations.
• In many instances, end users know “quality” software when they see it.
• This software is easy to use and error free. It also enables users to perform tasks quickly and
effortlessly, on any device, and at any time.

AHMED A. QAZZAZ SEP 2021









Quality Factors
Lecture #1
Software Quality Factors
• Software quality factors are the non-functional requirements for the software.
• Operational Factors: How well it run
• Revision Factors: How well it can be changed, tested, redeployed
• Transition Factors: How well it can be moved to different platform or system

AHMED A. QAZZAZ SEP 2021













Software Quality Factors / Operational
• Correctness: The ability to perform the exact task
• Reliability: Allowed number of failures in software
• Efficiency(Performance): Use of hardware resources
• Integrity: Deals with security and authorization
• Usability: The efforts needed to learn the system, and perform a complete task.

AHMED A. QAZZAZ SEP 2021























Software Quality Factors / Revision
• Maintainability: The ability and correct it ,of identifying failure reasons
• Flexibility: The cost and efforts for requirement changes.
• Testability: The ability of testing the app/features
• Controllability: control over each module independently.
• Observability: Testing of visible items of the app.
• Availability: The existing of object or entity to carry out the testing.
• Simplicity: The simplest app structure .
• Stability: less changes better for testing.

AHMED A. QAZZAZ SEP 2021
















Software Quality Factors / Transition
• Portability: Adaptation of the system when moving to another environment.
• Reusability: Using pre implemented module for one project, in another different project.
• Interoperability: The ability of a software to exchange information with other softwares.

AHMED A. QAZZAZ SEP 2021






















Quality Effects and Cost


Lecture #2
Software Quality Effects
More Sales will increase the market share size more satisfaction will give more sales

MORE SALES CUSTOMER SATISFACTION

PROFITS

MARKET SHARE EMPLOYEE SATISFACTION

More Shares means more PROFITS more satisfaction will give more good quality

Good Quality
AHMED A. QAZZAZ SEP 2021























Software Quality Effects
MORE BUGS AND ERRORS MORE TIME FOR BUGS FIXING COST STRESS

MORE BAD QUALITY

REFUNDS

EMPLOYEES TURNOVER

BAD Quality
AHMED A. QAZZAZ SEP 2021























Software Quality Cost
Prevention Inspection Internal Failure External Failure

• Do not allow bugs • Searching inside • Fix the failures of • Give support and
to raise from the all parts of the the system while maintenance for
first place software looking it still inside the the client after the
for errors development release of the
company software

AHMED A. QAZZAZ SEP 2021

























Software Quality Cost
Prevention Inspection Internal Failure External Failure

• Bugs Fixing • Support and Help


• Staff training • Reviews
• Reworking • Return or
• Testing tools • Code inspection
replacement
• Restart
• Requirements • Testing
• warranty
• Late delivery
• Clear understanding
• Versions updates

AHMED A. QAZZAZ SEP 2021






















Software Quality Cost
Prevention Inspection Internal Failure External Failure

• Bugs Fixing • Support and Help


• Staff training • Reviews
• Reworking • Return or
• Testing tools • Code inspection
replacement
• Restart
• Requirements • Testing
• warranty
• Late delivery
• Clear understanding
• Versions updates

AHMED A. QAZZAZ SEP 2021






















Software Quality Cost
Prevention Inspection Internal Failure External Failure

• Bugs Fixing • Support and Help


• Staff training • Reviews
• Reworking • Return or
• Testing tools • Code inspection
replacement
• Restart
• Requirements • Testing
• warranty
• Late delivery
• Clear understanding
• Versions updates

AHMED A. QAZZAZ SEP 2021






















Software Quality Cost
Prevention Inspection Internal Failure External Failure

• Bugs Fixing
• Staff training • Reviews • Support and Help
• Reworking
• Testing tools • Code inspection • Return or
• Restart replacement
• Requirements • Testing
• Late delivery • warranty
• Clear understanding

AHMED A. QAZZAZ SEP 2021






















Software Quality Cost
• The greatest payback is with prevention. Increasing the emphasis on prevention costs reduces
the number of defects that go to the customer undetected, improves product quality, and
reduces the cost of production and maintenance.
• External failure can be devastating because they may damage the organization’s reputation or
result in the loss of future sales.

AHMED A. QAZZAZ SEP 2021

























Assurance
Lecture #2
Software Quality Assurance
• Software Quality Assurance (SQA) is the process of making sure that the software is in high
quality.
• The functionality of SQA is monitoring processes and products throughout the software
development lifecycle to ensure the quality of the delivered product(s).

AHMED A. QAZZAZ SEP 2021

























Activities of SQA (Monitoring)
• In SQA process we monitor several phases
• Requirement gathering and analysis.
• Design
• Coding
• Source Control
• Code Reviews
• Management
• Releases

AHMED A. QAZZAZ SEP 2021















Activities of SQA (Monitoring)
Requirements Analysis Software Design

Specifications Review Design Review

Implementation and Code

Code Review

Customer Feedback Testing

Maintenance Testing Review

AHMED A. QAZZAZ SEP 2021

























Objectives of SQA
Lecture #3
Objectives of SQA
SMALL DEFECTS NUMBER AFTER INSTALLATION

CUSTOMER SATISFACTION

WELL STRUCTURED

AHMED A. QAZZAZ SEP 2021

























Objectives of SQA
• Small to Zero Defects After Installation
• The biggest goals of SQA is to prevent any possible defects when the output is made.
prevention of defects will most likely yield a continuously working application.

AHMED A. QAZZAZ SEP 2021

























Objectives of SQA
• Customer Satisfaction
• Part of SQA is to ensure that software development was made according to their needs,
wants and exceeding their expectations. Even if the bugs and errors are minimized by the
system, customer satisfaction is more important and should be emphasized.

AHMED A. QAZZAZ SEP 2021

























Objectives of SQA
• Well Structured
• SQA ensures that each application are build in an understandable manner. Their applications
could easily be transferred from one developer to another.

AHMED A. QAZZAZ SEP 2021

























Elements of SQA
Lecture #3
Elements of SQA
STANDARDS ERROR ANALYSIS

REVIEWS MANAGEMENT CUSTOMER MANAGEMENT

TESTING SAFETY SECURITY MANAGEMENT

EDUCATION RISK MANAGEMENT

AHMED A. QAZZAZ SEP 2021

























Elements of SQA
• Software Quality Assurance contains the following Elements:
• Standards
• The job of SQA is to ensure that standards that have been adopted are followed and that all
work products conform to them.
• Reviews and audits
• Technical reviews are a quality control activity. Their intent is to uncover errors.
• Audits are a type of review performed by SQA personnel with the intent of ensuring that
quality guidelines are being followed for software engineering work.

AHMED A. QAZZAZ SEP 2021




Elements of SQA
• Testing
• The job of SQA is to ensure that testing is properly planned and efficiently conducted so
that it has the highest likelihood of achieving its primary goal.
• Error/defect collection and analysis
• SQA collects and analyzes error and defect data to better understand how errors are
introduced and what software engineering activities are best suited to eliminating them

AHMED A. QAZZAZ SEP 2021










Elements of SQA
• Management
• SQA ensures that management activities applied on the activities of software development
• Also SQA should follow up with the team members and manage tasks along with PM (Project Manager)
• Education
• The SQA team should have a proper education level about the business logic of the software being
developed
• Customer management
• SQA team should be involved with all customer meetings from the first meeting (Requirement
analysis, and contract), till the final delivery.

AHMED A. QAZZAZ SEP 2021


Elements of SQA
• Security management
• SQA ensures that appropriate process and technology are used to achieve software security.
• Safety
• SQA may be responsible for assessing the impact of software failure and for initiating those
steps required to reduce risk.
• Risk management
• Although the analysis and mitigation of risk is the concern of software engineers, the SQA
organization ensures that risk management activities are properly conducted and that risk-
related contingency plans have been established.

AHMED A. QAZZAZ SEP 2021


Low Quality
Lecture #4
Causes of low quality
• Human factor: 
• It is because human beings develop software. Human beings are not perfect. They make
mistakes.
• As human beings develop software, it would be foolish to expect the software to be perfect
and without any defects in it.

AHMED A. QAZZAZ SEP 2021























Causes of low quality
• Communication failure:
•  Another common reason for software defects can be miscommunication, lack of communication or
erroneous communication during software development.
• The communication failure can happen at different levels
• requirement gathering stage
• requirement interpretation
• documentation stage
• requirement-to-implementation translation stage
• etc…

AHMED A. QAZZAZ SEP 2021















Causes of low quality
• Unrealistic development timeframe: 
• More often than not software are developed under crazy release schedules, with limited/
insufficient resources and with unrealistic project deadlines.

AHMED A. QAZZAZ SEP 2021

























Causes of low quality
• Poor design logic:
•  In this era of complex software systems development, sometimes the software is so
complicated that it requires some level of Research and brainstorming to reach a reliable
solution.

AHMED A. QAZZAZ SEP 2021

























Causes of low quality
• Poor coding practices: 
• Sometimes errors are slipped into the code due to simply bad coding. Bad coding practices
such as inefficient or missing error/exception handling, lack of proper validations (datatypes,
field ranges, boundary conditions, memory overflows etc.) may lead to introduction of errors
in the code.

AHMED A. QAZZAZ SEP 2021

























Causes of low quality
• Lack of version control: 
• Concurrent version systems (e.g. Visual SourceSafe) help in keeping track of all work and all
changes in a set of code base.

AHMED A. QAZZAZ SEP 2021

























Causes of low quality
• Buggy third-party tools: 
• Quite often during software development we require many third-party tools, which in turn
are software and may contain some bugs in them. These tools could be tools that aid in the
programming (e.g. class libraries, shared DLLs, compilers, HTML editors, debuggers etc.)
• A bug in such tools may in turn cause bugs in the software that is being developed.

AHMED A. QAZZAZ SEP 2021







Causes of low quality


• Lack of skilled testing:
•  No tester would want to accept it but let’s face it; poor testing do take place across
organizations.

AHMED A. QAZZAZ SEP 2021

























Causes of low quality
• Last minute changes:
•  Changes that are made to requirement, infrastructure, tools, platform can be dangerous,
especially if are being made at the 11th hours of a project release.

AHMED A. QAZZAZ SEP 2021

























Software Testing Introduction
Lecture #4
Introduction to Software testing
• Software Testing is a method to check whether the actual software product matches expected
requirements and to ensure that software product is Defect free

• Software testing is an investigation conducted to provide stakeholders with information about


the quality of the product or service under test.

• Matching Actual with Expected Result

AHMED A. QAZZAZ SEP 2021




















AHMED A. QAZZAZ SEP 2021























Software testing life cycle
• Software testing life cycle identifies what test activities to carry out and when (what is the best
time) to accomplish those test activities.
• It takes a sequence of steps that are carried out in order to validate the software

AHMED A. QAZZAZ SEP 2021

























Software testing life cycle

AHMED A. QAZZAZ SEP 2021

You might also like