0% found this document useful (0 votes)
44 views

IES Notes

The document discusses embedded system testing and techniques. It covers topics like embedded software testing, challenges in embedded testing, types of testing for product development including unit, integration and system testing, and techniques for PCB fabrication and the embedded development life cycle.

Uploaded by

gayatri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views

IES Notes

The document discusses embedded system testing and techniques. It covers topics like embedded software testing, challenges in embedded testing, types of testing for product development including unit, integration and system testing, and techniques for PCB fabrication and the embedded development life cycle.

Uploaded by

gayatri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Unit -6: Embedded System Integration And Testing

What is Embedded Testing?


Embedded testing is checking the functional and non-functional attributes of both software and
hardware in an embedded system. The purpose of Embedded test is to verify and validate the
Embedded software as well as hardware against client requirement.

Embedded Software testing checks and ensure the concerned software is of good quality and
complies with all the requirements it should meet. Embedded software testing is an excellent
approach to guarantee security in critical applications like medical equipment, railways, aviation,
vehicle industry, etc. Strict and careful testing is crucial to grant software certification.

How to perform Embedded Software Testing


In general, you test for four reasons:

 To find bugs in software


 Helps to reduce risk to both users and the company
 Cut down development and maintenance costs
 To improve performance

In Embedded Testing, the following activities are performed:

1. The software is provided with some inputs.


2. A Piece of the software is executed.
3. The software state is observed, and the outputs are checked for expected properties like
whether the output matches the expected outcome, conformance to the requirements and
absence of system crashes.

Embedded testing and Software Testing

Software Testing Embedded Testing


Embedded testing is related to both software as
Software testing is related to software only.
well as hardware.
Embedded testing is done on embedded systems
On average 90% testing done in the world is
or chips it can be a black box or white box
purely manual black box testing.
testing.
Primary areas of testing are GUI checks,
Primary areas of testing are the behavior of the
functionality, validation and some level of
hardware for the no. of inputs given to it.
database testing.
Software testing is majorly performed on client- Embedded testing generally performed on the
server, web and mobile based applications. Hardware.
e.g., Google Mail, Yahoo Mail, Android e.g., Machines of healthcare domain,
applications. Microcontrollers used in computers.
Challenges: Embedded Software Testing

Some of the challenges that one can face during Embedded software testing:

1. Hardware Dependency: Hardware dependency is among the main difficulties faced


during embedded software testing because of limited access to hardware. However,
Emulators and Simulators may not precisely represent the behavior of the actual device and
could give a wrong sense of system performance and application's usability.
2. Open Source Software: The majority of the embedded software components are open
source in nature, not created in-house and absence of complete test available for it. There is
a wide range of test combinations and resulting scenarios.
3. Software vs. Hardware Defects: Another aspect is when software is being developed
for a freshly created hardware, during this process high ratio of hardware defects can be
identified. The found defect is just not limited to software. It may be related to hardware
also.
4. Reproducible Defects: Defects are harder to reproduce/recreate in the case of the
embedded system. That enforces the embedded testing procedure to value every defect
occurrence substantially higher than in a standard case, other than to gather as much data
as could sensibly be required to alter the system to find the foundation of the defect.
5. Continuous Software Updates: Embedded systems require regular software updates
like the kernel upgrade, security fixes, different device drivers, etc. Constraints identified
with the software updates influence makes bug identification difficult. Additionally, it
increases the significance of build and deployment procedure.

*******************************************************************************************

Testing methods useful for Product development in embedded systems


Types of testing performed in product development

1. Unit Testing: Testing each unit or module of the product independently for required
functionality and quality aspects. The unit module is either a function or class. Unit Testing is
performed by the development team, primarily the developer and is usually carried out in a peer-
review model. Based on the specification of the module test cases are developed.

2. Integration Testing: Integrating each module and testing the integrated unit for required
functionality. Integration testing can be classified into two segments:

1. Software integration testing


2. Software/hardware integration testing.

In the end, the interaction of the hardware domain and software components is tested. This can
incorporate examining the interaction between built-in peripheral devices and software.

Embedded software development has a unique characteristic which focuses on the actual
environment, in which the software is run, is generally created in parallel with the software. This
causes inconvenience for testing since comprehensive testing cannot be performed in a simulated
condition.
3. System Testing: Testing the functional aspects or product requirements of the product after
integration.

The module to be tested is a full framework that consists of complete software code additionally all
real-time operating system (RTOS) and platform-related pieces such as interrupts, tasking
mechanisms, communications and so on. The Point of Control protocol is not anymore a call to a
function or a method invocation, but rather a message sent/got utilizing the RTOS message queues.

System resources are observed to evaluate the system's ability to support embedded system
execution. For this aspect, gray-box testing is the favored testing method. Depending on the
organization, system unit testing is either the duty of the developer or a dedicated system
integration team.

Types of System Testing

a) Usability testing: Tests the usability of the product.


b) Load testing: Tests the behavior of the product under different loading conditions
c) Security testing: Testing the security aspects of the product.
d) Scalability testing: Testing for scalability aspects of the product
e) Sanity testing: Superficial Testing performed to ensure that the product is functioning
properly.
f) Smoke testing: Non exhaustive test to ensure that the critical requirements for the product
are functioning properly.
g) Performance testing: Testing the performance aspects of the product after integration.
h) Endurance testing: Durability test of the product

4. User Acceptance Testing: Testing the product to ensure it is meeting all requirements of the
end user.

******************************************************************************************

Techniques involved in PCB fabrication

PCB fabrication involves three techniques to develop a PCB from the Gerber file

– PCB etching (PCB engraving)


– PCB milling
– PCB printing

Gerber file: The Gerber format is an open 2D binary vector image file format from Layout tool of
PCB. It is the standard file used by printed circuit board (PCB) industry software to describe the
printed circuit board images: copper layers, solder mask, legend, etc. Gerber file must be RS-274X
format.

PCB etching (PCB engraving)

• A subtractive method for fabricating the PCB


• Acid is used to remove unwanted copper from a prefabricated laminate. This is done by
applying a temporary mask that protects parts of the laminate from the acid and leaves the
desired copper layer untouched.

PCB milling

• A subtractive method for fabricating the PCB


• The process of removing areas of copper from a sheet of printed circuit board material to
recreate the pads, signal traces and structures according to patterns from a digital circuit
board plan known as a layout file.

PCB printing

• An additive method for fabrication the PCB


• Solder Mask is a plastic layer deposited on the copper tracks of the PCB to protect it from
corrosion and scratches
• Silkscreen is a layer of ink traces used to identify components, test points, parts of the PCB,
warning symbols, logos and marks etc.

****************************************************************************************

EDLC (Embedded Development Life Cycle)?


• EDLC is an Analysis-Design-Implementation based standard problem solving approach for
embedded product development. EDLC is essential for understanding the scope and
complexity of the work involved in any embedded product development.
• EDLC defines the interaction and activities among various groups of product development
sector including Project management, system design, development, testing, release
management and quality assurance.

Steps involved in Embedded Development Life Cycle (EDLC)

1. Need
2. Conceptualization
3. Analysis
4. Design
5. Development and Testing
6. Deployment
7. Support
8. Upgrade
9. Retirement

The Need: The need come from an individual or from public or from a company. Statement of need
(Concept Proposal) is prepared. The product development need can be one of the following

1. New or Custom product development


2. Product Re-engineering
a) Change in Business requirements
b) User Interface Enhancements
c) Technology Upgrades
3. Product maintenance

Conceptualization: Conceptualization phase is the phase dealing with product concept


development. Conceptualization phase includes activities like
1. Product feasibility Analysis
2. Cost Benefit Analysis
3. Product Scoping
4. Planning for next phases

Analysis: Analysis is called as Requirement Analysis phase defines the inputs, outputs, process and
interfaces of the product at the functional level

Analysis phase activities

1. Analysis and documentation


2. Interface definition and documentation
3. High level test plan
4. Procedure definitions

Design phase: Design phase deals with the implementation aspects of the required functionalities
for the product. Design phase may be of two steps

a) Preliminary design
b) Detailed Design

The preliminary design establishes the top-level architecture for the product. The detailed design
deals with the various components of each block, interconnection among various functional blocks,
the control algorithm requirements etc

Development phase: The Development phase transforms the design into implementation
(reasonable product). The detailed specifications during the design phase are translated into
hardware and firmware during the development phase. Testing phase deals with the execution of
various tests like

1. Integration Testing
2. System Testing
3. User Testing
4. Acceptance Testing

Deployment phase: The deployment phase deals with the launching of the product. The
Deployment activities includes
1. Product Deployment Notification
2. Training plan execution
3. Product installation
4. Product post implementation review
Support Phase: The support phase deals with the operations and maintenance of the product
environment

Upgrade Phase: Upgrade test deals with the development of upgrades (New versions) for the
product which is already present in the market. Product upgrades results as an output of major bug
fixes or from feature enhancement requirements from the end user.

Retirement Phase: Retirement phase some times called as disposal phase. Retirement phase deals
with the gradual disposal of the product from the market.

***************************************************************************************************

Objectives of EDLC:
There are three primary objectives
1. Ensure that high quality products are delivered to end user
2. Risk minimization and defect prevention through project management
3. Maximize the productivity

Ensure that high quality products


1. In order to survive in market, quality is very important factor to be taken care of while
developing the product.
2. Qualitative attributes depends on the budget of the product so budget allocation is very
important.
3. Budget allocation might have done after studying the market, trends and requirements of
product, competition etc.

Risk Minimization And Project Management (PM)

1. Adds an extra cost on budget.


2. But essential for ensuring the development process is going in right direction.

Project Management is required for

1. Predictability: Analyze the time to finish the product


2. Co-ordination: Resource needed to do the job
3. Risk Management: Back up of recourses to overcome critical situation. Ensuring defective
product is not developed

Maximize the productivity

1. Saving the man power


2. Use the automated tools where ever is required
3. Re- usable effort
4. Use the resources with specific set of skills (reduces the time in training the resources)

****************************************************************************************
EDLC Approaches:
1. Linear or waterfall Model
2. Iterative / Incremental or Fountain Model
3. Prototyping/ Evolutionary Model
4. Spiral Model

Linear or waterfall Model

• Linear or waterfall model executes all phases of EDLC in sequence, one after another.
• It is the best suited method for product development where the requirements are fixed.

Waterfall model can be used when

 Requirements are not changing frequently


 Application is not complicated and big
 Project is short
 Requirement is clear
 Environment is stable
 Technology and tools used are not dynamic and is stable
 Resources are available and trained

Advantages

1. Before the next phase of development, each phase must be completed


2. Suited for smaller projects where requirements are well defined
3. They should perform quality assurance test (Verification and Validation) before completing
each stage
4. Elaborate documentation is done at every phase of the software's development cycle
5. Project is completely dependent on project team with minimum client intervention
6. Any changes in software is made during the process of the development
Disadvantages

1. Error can be fixed only during the phase


2. It is not desirable for complex project where requirement changes frequently
3. Testing period comes quite late in the developmental process
4. Documentation occupies a lot of time of developers and testers
5. Clients valuable feedback cannot be included with ongoing development phase
6. Small changes or errors that arise in the completed software may cause a lot of problems

***********************************************************************************

Iterative / Incremental or Fountain Model

 Do some Analysis, Follow some design, the implementation.


 Evaluate it and based on the short comings, cycle back through and conduct more analysis,
opt for new design and implementation and repeat the cycle till the requirements are meet
completely.

Advantages

 Provides good development cycle feedback at each function/ feature implementation and
data can be used as reference for similar product development in future.
 More responsive to changing user needs.
 Provides a working model with minimum features at first cycle itself.
 Less manufacturing risk.
 Product development can be stopped at any stage.

Drawbacks

 Extensive review requirement impact on operations due to new releases.


 Training for each new deployment.
********************************************************************
Prototyping/ Evolutionary Model
1. Here, product is developed in multiple cycles. It produces refined prototype of the product
at the end of each cycle.
2. There is no commercial deployment at each cycle’s end.
3. After requirement analysis, design for first prototype is made, development is started.
4. On finishing the prototype, it is sent to customer for evaluation. The customer evaluates and
gives the feedback to developer in terms of shortcomings and improvements needed.
5. The developer refines the product according to customer’s expectation and repeats
prototype development process.
6. After multiple iterations product is delivered to the customers and launched.
Advantages –

 Easy to incorporate new requirements and technology changes.


 Fine tuning of final requirements is possible.
 Risk is under control.

Drawbacks –

 Deviation from expected cost and schedule due to requirement refinement.


 Increased project management.
 Minimal documentation on each prototype may create problem in backward prototype
traceability.
 Increased configuration management activities.
Spiral model
1. This model combines the elements of linear and prototyping models to give risk minimized
EDLC model.
2. It is developed by Barry Boehm in 1988. It starts with project definition and traverse
through all phases.
3. This model is suited for the development of complex products and situations where
requirements and technology changes.
4. The prototype model is evaluated by customers against various parameters. The final
product is built based on final prototype on agreement with client.
5. The activities are as follows –

 Determine objectives, alternatives, constraints.


 Evaluate alternatives. Identify and resolve risks.
 Develop and test.
 Plan.

**************************************************************************************

Product Enclosure Development Techniques


1. Handmade Enclosures
2. Rapid Prototyping development
a. Stereo lithography prototyping
b. Selective Laser Sintering Prototyping
c. Fused Deposition Modeling
3. Tooling and Molding
a. Room Temperature Vulcanized Tooling
b. Computer Numeric Control Tooling
c. Injection Molding
4. Sheet Metal Work Enclosures
5. Commercial off the self Enclosures

1.Handmade enclosure
Handmade enclosure is typical example for manual development product enclosure. It uses
plastics like ABS or PVC and Sheet metal for enclosure design.

2. Rapid Prototyping development


Rapid prototyping technology employs various computer control and software techniques.
It includes laser, optical scanning, material extrusion and deposition, photosensitive
polymers, powder metallurgy etc to directly produce a physical model layer by layer in
accordance with the geometrical data delivered from a 3D CAD model

Rapid Prototyping development can one the following methods


1. Stereo lithography prototyping
2. Selective Laser Sintering Prototyping
3. Fused Deposition Modeling

Stereo lithography (SLA) is a process in which the liquid plastic is solidified in precise
patterns by a UV laser beam, resulting in a solid epoxy realization of a 3D design of the
enclosure.

Selective Laser Sintering is similar to SLA, except that the 3D prototypes are created from
the drawing by fusing or sintering powdered thermo plastics materials layer by layer

Fused Deposition Modeling is a solid based rapid prototyping method, which uses melted
thermo plastic polymer in the form of paste for building layers

3. Tooling and molding techniques


The tooling and molding techniques are mainly used for developing plastic and metal
housing for high volume production. Here a tool or mould is developed first and the
enclosure is developed from this mould.

Tooling and Molding techniques will be one the following techniques

1. Room Temperature Vulcanized Tooling


2. Computer Numeric Control Tooling
3. Injection Molding
Room Temperature Vulcanized Tooling is a technique used for polyurethane housings.
First the RTV rubber tool is created by pouring liquid silicone rubber around a master
pattern. The resulting model is taken out of the master pattern and finished well, then used
for casting polyurethane housing.

Computer Numeric Control tooling uses CNC machines for milling the block of plastic or
metal according to the input from a design file generated by the 3D modeling tool to
develop desired tool.

Injection Molding system consists of a molding machine and mould plates (Dummy shape
of the product). Plastic or resin is injected into the space between the mould plates through
a nozzle.

4. Sheet Metal Work


Sheet metal work is the process of metalworking that forms new products from various
types of sheet metal. Sheet Metal Work Sheet metal work includes the various processes
involved in heating and shaping metal sheets. In general, sheet metal is created by
compressing the metal materials between rollers. Sheet Metal May be a foil or thin form of
metal sheets, which can be cut or bent into different shapes.

You might also like