100% found this document useful (3 votes)
4K views

Common Interview Questions

The document discusses various topics related to CAN protocol including voltage levels, arbitration, bit stuffing, standard vs extended CAN frames, CAN database files, frame formats, dominant and recessive bits, error types, error states, differences between CAN and CAN FD, diagnostic session control service and security access service.
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
100% found this document useful (3 votes)
4K views

Common Interview Questions

The document discusses various topics related to CAN protocol including voltage levels, arbitration, bit stuffing, standard vs extended CAN frames, CAN database files, frame formats, dominant and recessive bits, error types, error states, differences between CAN and CAN FD, diagnostic session control service and security access service.
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/ 34

CAN

1. What are the voltage levels in CAN Protocol?

0 is represented by (3.75-1.25) =2.5V

1 is represented by (2.5-2.5) =0V

2. What is CAN Arbitration?


If 2 or more units start transmitting messages at the same time, the bus access
conflict is resolved by bitwise arbitration using the IDENTIFIER. The mechanism of
arbitration guarantees that neither information nor time is lost.

CAN Arbitration is nothing but the node trying to take control of the CAN bus. Let us
take an example to understand the arbitration in CAN.

Suppose there are two nodes and they start transmitting at the same time both will
transmit SOF bit at the same time this will have no effect on arbitration. After that, they start
transmitting identifier.

Each node transmits a bit and then observes the bus if the sent data sensed on the
bus, then it continues to transmit the identifier. When the nodes observes that the bit it
transmitted and the bit it sensed back are not same it knows that a higher priority message is
being transmitted on the bus and it starts listening and stops transmitting.

It happens because in case of different bits the node with lower identifier will continue
transmitting as it will drive the bus to dominant state (logical 0) while the other node that
intends to keep it in default state (recessive state, logical 1), will read back the dominant state
on the bus and stop transmitting. This mechanism thus preserves the data as the frame with
lower priority is not corrupted due to simultaneous transmissions.
3. What is Bit stuffing?
Bit stuffing is the insertion of non information bits into data.

• synchronize several channels before multiplexing


• rate-match two single channels to each other
• run length limited coding

CAN use a Non-Return-to-Zero protocol, NRZ-5, with bit stuffing. The idea behind bit
stuffing is to provide a guaranteed edge on the signal so the receiver can resynchronize with
the transmitter before minor clock discrepancies between the two nodes can cause a
problem. With NRZ-5 the transmitter transmits at most five consecutive bits with the same
value. After five bits with the same value (zero or one), the transmitter inserts a stuff bit with
the opposite state.

4. Can Standard CAN & Extended CAN coexist in the same network? Who will win
the arbitration if first arbitration field is same?
Yes CAN standard and Extended may co-exist in the same network. CAN only Arbitration
field in the extended frame format only differ from the standard CAN means extended CAN
architecture designed in such a way that standard and extended CAN coexist on the same
network. In extended frame format, the IDE bit distinguish between the standard and
extended CAN. IDE bit is dominant(1) for the Standard frame and recessive for the extended
frame.so standard frame will win arbitration if both have the same 1st identifier field(11-bit).

5. What happens when 2 CAN Nodes are sending the same identifier at the same
time?
The CAN Frame identifier should be unique across the entire network. Assigning the
same identifier to two CAN nodes should lead to a configuration error.

6. What is the difference between Standard CAN & Extended CAN Frames?

Standard CAN frame


Extended CAN Frame

• The identifier bit length of standard CAN is 11 and for extended CAN 29.
• IDE bit for standard CAN 0 and for extended CAN 1.

7. What is a CAN dbc file?


DBC files contains Communication description of networks. It serves as the foundation
for all other development steps such as

• simulation and analysis of bus communications,


• configuration of the ECU software and detailed ECU tests.

8. What is the content of CAN dbc Files?


The DBC databases describe the properties of the CAN/CAN FD network, the ECUs
connected to the bus and the messages and signals.

9. What are different frame formats in CAN?


CAN Data Frame

CAN Remote Frame

CAN Error Frame

Error Flag Error Delimiter

6 (0’s or 1’s) 8 (1’s)


CAN Overload Frame

IFS Overload Flag Overload Delimiter

6 (0’s) 8 (1’s)

Interframe Space

This is a form of separation between 2 frames for Data and Remote Frames. There are
two types of Interframe spaces.

• The normal Interframe space consists of Intermission and Bus idle. Intermission has 3
recessive bits and Bus Idle is also a recessive bit that signals that nodes can compete
for the bus now
• For error passive node, after the Intermission field, 8 recessive bits of Suspend
Transmission is sent before Bus idle is sent.

10. What is the similarity between UDS and CAN?


CAN and UDS are two different protocols which uses different layers and different
frame structures to communicate. There is no similarity between them

11. What is the difference between CAN & UDS?


CAN uses Physical and Data Link layer of OSI model but UDS uses only Application
layer of the OSI model.

12. What is Data Frame and Remote Frame?


Data Frame - data from a transmitter to receivers

Remote Frame - data request from a node of a particular message ID

13. What is difference between "dominant" bits and "recessive" bits?


Dominant bit in CAN is represented with voltage difference(0) = 2.5V

Recessive bit in CAN is represented with voltage difference(1) = 0V

14. What is Bit Stuff Error?


A Stuff Error occurs whenever 6 consecutive bits of equal value are detected on the
bus inside data frames. Which means bit stuffing is not followed.

15. What is Active error, Passive error and Bus Off ?


Error counter is below 127 it is Active error. Error Counter raises above 127 node A
goes Error Passive. When it is above 255 node itself will disconnect from network. ECU will
run internally. When error healed, itself will connect back.

16. What is Transmit Error Count and Receiver Error Count?


Transmitter can detect some errors for that errors the transmitter error count is
incremented(Acknowledgement error). The error which can be sensed by the receiver, the
receiver will increase the error count(CRC error).
17. What is bit error in CAN?
BIT ERROR

The sender monitors the bus. If the value found on the bus is different from the one
that is sent, then a BIT ERROR is detected

18. Why SOF is always a dominant bit?


Dominant bit has only different voltage levels in CAN HI and CAN LOW(Asychronous bus)

19. Maximum Speed in Standard CAN and Extended CAN frame?


1MBps for 40m

20. What happens if we send more than 8 bytes of data?


Will invoke ISO-TP

21. What is Bus-off state?


When error count is above 255 node itself will disconnect from network. ECU will run
internally. When error healed, itself will connect back.

22. Difference between CAN & CAN FD?


Criteria CAN CAN FD
Data 8 bytes 64 bytes
Speed 1MBps 12MBps
CRC 15 bits 17 bits
Reliable More More than CAN

23. Explain Active error, Passive error and Bus OFF?


Error counter is below 127 it is Active error. Error Counter raises above 127 node A
goes Error Passive. When it is above 255 node itself will disconnect from network. ECU will
run internally. When error healed, itself will connect back.

24. Different Types of Error Flag ?


Active error flag, Passive Error Flag

25. What is Bit Rate & Baud Rate?


10 micro seconds bitrate, 1 MBps Baud rate

26. What are the different types of errors in CAN?


BIT ERROR

The sender monitors the bus. If the value found on the bus is different from the one
that is sent, then a BIT ERROR is detected

STUFF ERROR

Detected if 6 consecutive bits of the same type are found

CRC ERROR

Detected by the receiver if the received CRC field does not match the computed value

FORM ERROR
Detected when a fixed format field contains unexpected values

ACKNOWLEDGEMENT ERROR

Detected by the transmitter if a dominant value is not found in the ack slot

Diagnostics
1. What are the Service ID's used in your project?
0x10,0x11,0x27,0x3E,0x22,0x2E

2. Which Service is used to enter into different Session and explain about the sub
functions?
Diagnostic Session Control service is used.

There are many services but not all are accessible until ECU is not running in its
compatible session like some services are accessible in default session and some required ECU
extended session and some for programming. It is decided by the vehicle manufacturer. On
ECU start, ECU runs in default session and that time Client can access only that services of the
server those are allowed by the Manufacturer UDS specification.

01-Default Session

02-Programming session

03-Extended Diagnostic session

3. Purpose of Security Acess service ID and sub functions?


In order to ensure the secured memory locations inside the ECU is not accessed
unauthorized, we have security access service.

27 01- Request for seed

27 02- Unlock with key

4. Explain about Service ID 19 and its Sub Function?


This service allows a diagnostic tool to read the status of ECU resident Diagnostic
Trouble Code (DTC) information from any ECU, or group of ECU’s within a vehicle.

Requesting the ECU to report Most Recent Confirmed DTC or all Supported DTCs the
diagnostic tool shall use the format defined in the Table below.
5. How to create NRC12,13 etc?
NRC 12- Sub function not supported (Requesting for a wrong sub function)

Request: 0x02 0x10 0x41 (41 must be an invalid subfunction)

NRC 13- Incorrect message length or invalid format (Requesting with the wrong PCI)

Request: 0x03 0x10 0x01 0x10 (PCI must be 02 for SID 0x10)

6. Explain about Service ID 31 and its Sub Function?


Routine control service is used to start a routine, stop a routine and request for a
routine inside ECU. This service is used by the client to perform various project specific
functions through OEM-specific routine Identifier.

There are Basically three SUB-function under this service –

• Start routine – Initiate any service and used to indicate start/completion of any service
• Stop routine – Through this sub-function Client can interrupt running service at any
time inside server.
• Requestroutineresult– It is basically a request message by client to get the result of
service from server.

So Basically this service is used for –

• To notify the start/stop execution of any task.


• To erase memory or perform a checksum of integrity after download etc.

Example:
Suppose you want to erase data of flash memory prior to download.let as per OEM
specification

Routine Identifier for Erase memory Function = 0xAABB then

Request(Client—>Server) = 0x31 01 0xAA 0xBB

if memory erase successfully then

Pos. Response(client<——-Server)= 0x71 01 0xAA 0xBB

7. What are the different NRC in diagnostic?


0x10 - General Reject

0x11 - service not supported

0x12 - Sub function not supported

0x13 - Incorrect message length or invalid format

0x14 - Response too long

0x21 - Busy repeat request

0x22 - Conditions are not correct

0x24 - Request sequence error

0x25 - No response from sub-net component

0x26 - Failure prevents execution of requested action

0x31 - Request out of range

0x33 - Security access Denied

0x35 - Invalid Key

0x36 - Exceed number of attempts

0x37 - Required time delay not expired

0x70 - Upload Download not accepted

0x71 - Transfer data suspended

0x72 - General Programming failure

0x78 - Request correctly received- response pending

0x7E - Sub function not supported in active session

0x7F - Service not supported in Active session

8. Which Service ID is used to download and upload data bytes and explain about
the its sub functions?
Upload service(0x35)
The RequestUpload service is used by the client to initiate a data transfer from the
server to the client (upload). After the server has received the requestUpload request
message, the server shall take all necessary actions to send data before it sends a positive
response message.

Download service(0x34)

The requestDownload service is used by the client to initiate a data transfer from the
client to the server (download). After the server has received the requestDownload request
message, the server shall take all necessary actions to receive data before it sends a positive
response message.

9. What is difference between Data Identifiers and Input/Output Parameters?


Data Identifiers are 2 bytes of unique ID used to indicate the specific information
inside ECU. Input/Output parameter field is the data that is hold by the DID.

10. What is the difference between Physical & Functional Addressing?


Physical Addressing – 1 to 1 communication (Tester - ECU)

Functional Addressing – 1 to many communication (Tester - ECU’s)

11. Why plus 40 added on positive responses?


Service ID’s 6th bit 0 means it is a request 1 means it is a positive response, to make it
1 we should add 0x40.

12. What is the indication of negative response?


Negative response will have Service ID 7F.

13. What is P2 and P2* timing parameters?


P2- Minimum waiting time for a message

P2*- Maximum waiting time when NRC 78 is received

14. Difference between extended session and programming session?


Programming session

A session for handling the boot loader of the ECU for flashing and reprogramming
operations.

Extended session

"Extended Diagnostic Session" used to unlock additional diagnostic functions, such as


the adjustment of sensors. "Safety system diagnostic session" used to test all safety-critical
diagnostic functions, such as airbag tests.

15. Which conditions can perform hard reset and soft reset?
Software update, update on memory locations- soft reset

Hardware reconfiguration, change- hard reset

16. How can we relate diagnostic session control with Tester present?
Tester present is used to extend the timing of the sessions like programming and extended.
17. Differences between snapshot and extended data record by DTC number?
DTC Snapshot Data (FreezeFrames)

The retrieval of measured values is already possible without DTC via the ReadDataByIdentifier
UDS service. For a meaningful analysis, the measured values must also match the exact time
of the triggering event. If a monitor reports “Failed”, the relevant DIDs are temporarily stored
with their measured values. The data structure of a snapshot record corresponds to a
sequence of individual DIDs from the ReadDataByIdentifier service. There is a large overlap
with ODX. If the DID used for a DTC and their data structures are known, the ODX data for
readDataByIdentifier and readDTC can be generated from the DEXT information and vice
versa.

Extended Data

The Extended Data Block contains additional information about a DTC such as cycle
counters, aging counters, time of last occurrences, … and dynamic data of algorithms that
are not already contained in the FreezeFrame data. Similar to the DIDs, a 1-byte record
number specifies the data structure of the Extend-ed Data block.
Up to 255 stored ExtendedDataRecords can exist for a DTC. The interpretation of the data is
unambiguously determined by its RecordNumber.

18. When will get NRC security access denied?


Security access denied NRC will be received when we try to access secured data inside ECU
without the permission(security access service positive response for unlocking with key).

19. What are the types of routines ? what is the use?


Start routine – Initiate any service and used to indicate start/completion of any service

Stop routine – Through this sub-function Client can interrupt running service at any time
inside server.

Requestroutineresult– It is basically a request message by client to get the result of service


from server.

20. What is the use of write data by address?


Write Memory By Address” service is used to write information into the ECU at one or more
contiguous memory locations.

21. When do you get NRC78?


It indicates request correctly received by the server and request parameters also valid but the
server is busy or taking more time to process request so it sends the NRC 78 to ask the client
to wait till P2* time.

22. Why 7F has considered for -“ve response why not other than 7F?
Standard

23. Define access timing parameters


Access timing parameters are P2 and P2 extended timings that specify the maximum
time the server (ECU) or client (tester) has to wait or respond to the UDS-request.

24. What are subfunctions of communication control?


0x00 – Enable Rx and Tx

0x01- Enable Rx and Disable Tx

0x02 – Disable Rx and Enable Tx

0x03 – Disable Tx and Rx

25. What are subfuctions of DTC? Explain?


Refer Question number 19

26. Pre-requisite to enter into Programming Session?


From default session only we can enter into the programming session. This session is
valid when we have the hardware.
LIN
1. How many Master and Slave unit in LIN system?
LIN is a broadcast serial network comprising 16 nodes (one master and typically up to 15
slaves).

CAPL
1. What is System & environmental variables in CAPL script?
Variable in CANoe kernal level are called System variable(global) and configuration level are
called Environment variable(fast, local).

2. Syntax for sending CAN message?


Message identifier msg={parameters};

Output(msg)

3. What is OnMessage and OnTimer functions?


onMessage() and onTimer() are event procedures

4. Purpose of Diagnostic Console?


Diagnostic Console fetches its information from the Diagnostic Description and presents an
easy way to select a diagnostic request, manipulate its parameters and to send the request.
The response received is presented together with its parameters.

5. How to create Ignition Cycle and Battery Cycle?


KL15(CAN signal), KL30()

6. How to clear history DTC without sending Service ID $14?


Do maximum number of ignition cycles and decrease aging counter count to 0 now history
DTC will get removed
7. How to Set/change the voltage of power supply?
Take Remote control of power supply by RS232 or GPIO or USB or Ethernet then change
set/change power supply voltage

8. What are data types and keywords in CAPL?


Key words are words belonging to CAPL. These words have predefined meaning. Data types
can be the type of information stored in a variable. Data types available for variables include
integers (dword, long, word, int, byte, char), floating point numbers (float and double), CAN
messages (message) and timers (timer or msTimer).

9. What are types of events?


Message events

Key events

Error events

Timer events

System events

10. What are CAN event handlers?


Event handlers are scripts that will get executed when an event is occurred(Event procedures).

Examples are:

onMessage{}

on key {}

on error {}

on busOff {}

11. How to reset can bus on bus off condition in capl?


resetCan() can be called to reset the can bus.

12. What is the difference between system and environment variables?


Refer Question number 1

13. How to create environment variables?


Environment variables can be created inside the database.

14. What is function to get environment variable?


on envVar{}

15. How to set a cyclic Timer by using capl?


Using setTimer() and setTimerCyclic() functions

16. How to initialize diagnostic services?


Refer diagnostic qualifier inside the Diagnostic tab.

17. What are the following rules when inserting an include files?
#include<filename.cin>
18. How to access signal from message in CAPL?
• messasevariable.signalName
• $signalName

19. Write a capl script to send a frame periodically in network?


variables

message 0x555 msg1 = {dlc=1};

mstimer timer1; // define timer1

on start

setTimer(timer1,100); // initialize timer to 100 msec

on timer timer1

setTimer(timer1,100); // reset timer

msg1.byte(0)=msg1.byte(0)+1; // change the data

output(msg1); // output message

20. Delay function in CAPL script?


testWaitForTimeout()

21. How to test diagnostics by using CAPL test module?


diagRequest, diagResponse are used.

22. Types of system events? What happens when a system event occurs?
CAPL provides event procedures to execute actions before, at the start of, and after
CANalyzer or CANoe measurements. Their names correspond to when they are used, and they
only execute once in each measurement.

When a measurement is started in CANalyzer or CANoe, the on preStart event


procedure will be executed first (if one exists). This procedure is typically used to read data
from files, initialize variables, or to print characters in the Write window. Other actions, such
as outputting a message onto the bus, are not available in the on preStart event procedure.
Most of the time, actions or processes that cannot be executed in the on preStart event
procedure can be placed into the on start event procedure. Once the on preStart event
procedure has finished executing, the on start event procedure immediately follows (if one
exists). The on start event procedure can be used to set timers, output messages onto the
CAN network, or initialize environment variables in CANoe. When the on start event
procedure finishes executing the measurement is then started, and other defined event
procedures are enabled.

When the measurement stops in CANalyzer or CANoe, the on stopMeasurement


event procedure(if one exists) is the last to execute. Applications of this procedure might
include:

• printing statistics in the Write window

• sending final messages onto the CAN communication network

• writing to a log file

After the on stopMeasurement event procedure has finished executing, the


measurement is terminated.

23. Explain CAN controller states?


Idle,Busy,error

24. Use of "this" keyword?


The this keyword is used to reference the object that triggered the event. The this
keyword is used to reference data from the object or the object value itself, such as a message
or an environment variable within the corresponding event procedure. The only event
procedures that can use the this keyword are on message, on envVar, on key, on errorframe
(only to get the CAN channel number), and the four CAN Controller events: on busOff, on
errorPassive, on errorActive, and on warningLimit. The only time the this keyword is used in
CAN Controller events is to access the transmitted and received error counts.
25. How to debug run time error?
A number of CAPL run-time errors are monitored. Some of these run-time errors are
as follows:

• Division by zero

• Exceeding the upper or lower limits of the array

• Exceeding the upper or lower limits of the offset in the data range of messages

• Stack overflow when CAPL subroutines are called

If a run-time error is detected, the intrinsic (built-in) function runError() is called. This
stops the measurement and outputs information to the Write window with the name of the
CAPL program, the type of error and an error number. The output in the Write window might
look like the following:

Start of measurement 04:02:33 pm

Bus with 500000 BPS.

PRG (CAPL): < MYPROG > generated an error at CAPL pos: 1.

Locate with CAPL browser option: Find runError - err number -> 1.

Unknown error

measurement stopped

End of measurement 04:03:56 pm

The error number helps to find the place in the CAPL source code that generated the
error.

The line that begins with Locate… reports the error number (in this example, the error
number, is 1). Using the Compiler menu, select the Find runtime error command and enter
the error number.

The CAPL Browser will then show you where this run-time error occurred. The user
can also manually invoke the CAPL function runError() in the code to generate meaningful
outputs. When using the runError() function in your CAPL programs or when an internal run-
time error is generated, a message is displayed in the Write window with an error number.
Different errors generate different messages.

26. How you declare message in CAPL?


message 0x100 msg_var={dlc=8,byte(0)=value,………,byte(7)=value};

CANoe
1. Where do need to configure and measure CAN log?
Measurement setup -> Logging window
2. Advantage of CANoe?
CANoe tool is used to simulate, analyse and test ECU’s and networks.

3. What is a Panel in CANoe and its use?


• Reduces application development time and improves the quality of the program.
• Increase your ability to interpret input and output bus data, such as on a dashboard.

4. How to change the CAN channel configuration?


Hardware ->Channel mapping
5. Difference between Normal channel configuration and virtual configuration?
Normal channels will transmit the can messages to networks/ ECU which is connected
to that channel in the Can case but the Virtual Channel loops back the message to the PC itself
and the other applications on the system can gather these data.

6. What is purpose of Test Setup and how to perform more than one test cases?
In principle, test modules can be used both in the simulation setup and in the test
setup. However, the test setup, as the name implies, is the preferred location for tests. In the
test setup the test modules are not assigned to specific buses, because it may be assumed
that tests relate to the total system. To make it easy to reuse prepared tests even after the
simulation model is changed (e.g. a new version of the simulation model is introduced), the
test setup may be saved and reloaded separately.

Similarly, the test setup offers a few advanced options such as consecutive execution
of multiple test modules and merging of test reports from different test modules. These
functions do indeed simplify working with multiple test modules, but they do not represent a
modularization concept for testing (distribution of tests among individual test modules). Test
cases that belong together and are always executed together should reside within a single test
module.

7. How to configure the CAN Database?


Adding the data base to simulation setup.

• In the simulation setup go to networks select the database, right click on it, select add.
• select particular database and click open.

8. Difference between CANalyser and CANoe?


Feature CANalyzer CAnoe
Node Capability 1 More than one
Simulation Yes Yes
Analysis Yes Yes
Test Yes Yes

9. Is it possible to simulate other ECU's Except Test ECU without CAPL Scripting in
CANoe tool?
Yes we can through IG block we can give manually the other ECU’s messages and we
can make the test ECU to work manually using IG block.

10. How to configure diagnostic files in canoe and CDD files means?
Diagnostic files can be configured

11. How many can database files are required for CAN Network simulation in CANoe
tool?
Minimum it requires one and there is no limitation on maximum number of DBC.

12. What is replay block? How to use replay block?


It is a function block that is capable of transmitting message onto the CAN bus is the Replay
block (R) . The Replay block offers the ability to replay onto the CAN bus or analysis windows
a sequence of messages that have been recorded by the Logging block. There are many
settings in the Replay block for message transmission, but among the most useful is to allow
a CAPL program to have full control of the block activities. Inside a CAPL program, you can
start, stop, pause, and resume a Replay block from replaying.
13. How to configure message using IG block?
14. Difference between IG block and G block?
S.No Interactive Generator Generator
1 In IG block we can configure messages at In G block we cannot configure messages at
runtime runtime

15. How to change the baud rate in CANoe without changing the code?
CANoe -> Hardware -> Network hardware
16. How to automate test sequence using test module?
In CANoe the test module is the execution unit for tests. A test module is always
started for test execution, and the results of this execution are represented by exactly one
test report. The test module contains the test cases. The test case is the central concept, in
which the actual testing actions are collected. These in turn are organized by test steps. A test
step is simply a piece of information indicating that the test sequence has reached a specific
point.

The test case contains the actual instructions for test execution. If at all possible, test
cases should be set up so that they work independently of all other test cases. Test cases are
executed as part of a test module that includes other test cases as well, but they are developed
and maintained independently of one another (see chapter 3.0 on Test Management
Systems). The testing actions that serve to test a property or capability of the ECU under test
are formulated in a test case.

For example, the entire network management of an ECU consists of a large number
of properties and functions. Each of these properties and functions should be checked in a
separate test case. E.g. the tester would formulate a separate test case for regular startup of
the system, for handling a specific fault situation and so on. one would not test the entire
Network Management of an ECU in a test case, since it consists of a large number of properties
and functions. Instead one would handle each of these properties in a separate test case, e.g.
by formulating a separate test case for regular startup of the system or for handling a specific
fault situation.

In the test report the executed test cases are listed with their results. These executed
test cases may be structured in the test report according to test groups. Test groups are mainly
an organizational category for the executed test cases. Like the titles of chapters in a book,
the test groups may be created hierarchically, whereby the executed test cases would be the
leaves on the tree of test groups. Test groups are dynamically defined in CAPL and .NET test
modules. A test case is assigned to a test group by the CAPL/.NET program at run time. In
CAPL/.NET test modules, test cases may be executed a number of times during a test run. A
test case might therefore be documented multiple times in a test report and in various test
groups.

17. What is Real time branch and Evaluation branch in measurement setup?
In real time branch the real ECU is connected and the configuration is executes and the
network has been evaluated. In evaluation branch the Log of the ECU or the partner ECU is
used for the analysis of the network.

18. Explain CAN Statistics?


The CAN Statistics Window displays statistics about CAN bus activities during measurement.
This Statistics Window can be inserted into the Measurement Setup via the context menus of
the relevant function blocks.

19. What is the use of trigger block in logging data?


We can configure the trigger conditions for logging measurement data to logging files. The
Trigger block allows filtering based on signal values. The best aspect of using the Trigger block
is you do not have to manually pause or stop the Trace window from updating once the desire
condition has occurred. The Trigger block has a built-in timer that allows messages to be
displayed in the Trace window within a time interval. Messages received outside the specified
time interval will not be shown. The same idea is also used for logging bus traffic into a file.
You need to know when to start logging, and when to stop logging based a message or signal
condition.

20. Explain Fault memory window?


The Fault Memory window presents a possibility to read out the fault memory list of an ECU
once or cyclically.
21. What is CANCaseXL (if you have used it)? Explain with types?
The CANcaseXL is a USB interface with a powerful 32-bit 64MHz microcontroller from ATMEL
with ARM7 Core and two SJA1000 CAN controllers from Philips. It can process CAN messages
with either 11-bit or 29-bit identifiers. Moreover, it is possible to receive and analyze Remote
Frames without any limitations. The CANcaseXL is also capable of generating and detecting
Error frames on the bus.

22. Explain about different windows in measurement setup such as graphic, trace,
etc?
Trace Window

The Trace window shows the data content of the messages detected on the bus and
other information about them. Each message is time-stamped, and the identifier, message
type, data length, and any associated data bytes are shown. Several CANoe toolbar buttons
are associated with this window. Experiment with the toolbar buttons to see the effects. You
may notice that identifiers can be shown either as decimal or hex or symbolic. Notice that this
use of the CAN message identifier names, rather than using numbers, can be accomplished by
using an associated database file.

CAN Statistics

The CAN Statistics Window displays statistics about CAN bus activities during
measurement. This Statistics Window can be inserted into the Measurement Setup via the
context menus of the relevant function blocks.

Data Window

The Data window shows the current content of message data and is configurable. The
user selects which data items are to be shown, their respective positions in the window, and
how the data content will be represented.

Graphics Window

The Graphics window is similar to the Data window. They both display message data,
but instead of displaying numeric data, the Graphics window actually plot those numeric
message data into a graph. This window is also configurable and has a wide assortment of
associated toolbar controls for graph evaluation. Multiple signals can be graphed with
independent time axis, signal position, signal unit, and signal color.

Logging Window

It helps to configure the log file and it’s properties. Logging helps to store the data
which is being transmitted.

V&V Lifecycle
1. What is smoke testing, sanity testing, regression testing?
Smoke Testing

Smoke testing is an approach which is usually carried out during the initial
development stages of the Software Development Life Cycle(SDLC) to make sure that the core
functionalities of a program are working fine without any issues. It is executed before any
detailed functional tests are done on the software.

The main intent of smoke testing is not to perform deep testing but to verify that the
core or main functionalities of the program or the software are working fine. Smoke testing
aims to reject a badly broken build in the initial stage so that the testing team does not waste
time in installing & testing the software application.

Smoke testing is also called as Build Verification Test.

The main focus of smoke testing is to test the critical areas and not the complete application.

When to perform Smoke Testing

• When developers provide a fresh build to the QA team. A fresh build here means
when the build has new changes made by the developers.
• When a new module is added to the existing functionality.

Sanity Testing

Sanity testing is a kind of testing performed to check whether a software product is working
correctly when a new module or functionality gets implemented to an existing product. Sanity
testing is a software testing technique which does a quick evaluation of the quality of the software
release to determine whether it is eligible for further rounds of testing or not.

Sanity testing is usually performed after receiving a fairly stable software build or sometimes
when a software build might have undergone minor changes in the code or functionality. It
decides if end to end testing of a software product shall be carried out further or not.

Sanity testing is also a Surface Level Testing which helps in deciding if the software build is
good enough to pass it to the next level of testing.
Why perform Sanity Testing

• To verify and validate the conformity of newly added functionalities and features in
existing code.
• To ensure that the introduced changes do not affect other existing functionalities of the
product.
• To decide further testing can be carried forward or not.

When to perform Sanity Testing

• Build is received after many regressions or if there is a minor change in the code.
• The build is received after bug fixing.
• Just before the deployment on production.

Regression Testing

Regression testing is the verification of “bug fixes or any changes in the requirement” and
making sure they are not affecting other functionalities of the application. Regression testing is
effective on automation and usually performed after some modifications have been made in the
software build after requirement changes or bug fixes.

Once Sanity testing of the changed functionality is completed, all the impacted features of the
application require complete testing. This is called regression testing.

Whenever bug fixes are done in the existing software, some test scenarios need to be
executed, to verify the bug fixes. In addition to these, the QA team also has to check the impacted
areas, based on the code changes. In regression testing, all those test scenarios will have to be
executed, to take care of related functionalities.

When to perform Regression Testing

• After Code modification according to the required changes


• After some new features are added to the application
• After some bug fixes are incorporated into the build

2. What are the different testing phases as per V&V lifecycle?


• UNIT Testing
• INTEGRATION Testing
• SYSTEM Testing
• ACCEPTANCE Testing
3. What are the different techniques used to write test cases?
Specification-Based or Black-Box techniques
This technique leverages the external description of the software such as technical
specifications, design, and client’s requirements to design test cases. The technique enables
testers to develop test cases that provide full test coverage. The Specification-based or black
box test case design techniques are divided further into 5 categories. These categories are as
follows:
Boundary Value Analysis (BVA)
This technique is applied to explore errors at the boundary of the input domain. BVA
catches any input errors that might interrupt with the proper functioning of the program.
Equivalence Partitioning (EP)
In Equivalence Partitioning, the test input data is partitioned into a number of classes
having an equivalent number of data. The test cases are then designed for each class or
partition. This helps to reduce the number of test cases.
Decision Table Testing
In this technique, test cases are designed on the basis of the decision tables that are
formulated using different combinations of inputs and their corresponding outputs based on
various conditions and scenarios adhering to different business rules.
State Transition Diagrams
In this technique, the software under test is perceived as a system having a finite
number of states of different types. The transition from one state to another is guided by a
set of rules. The rules define the response to different inputs. This technique can be
implemented on the systems which have certain workflows within them.
Use Case Testing
A use case is a description of a particular use of the software by a user. In this
technique, the test cases are designed to execute different business scenarios and end-user
functionalities. Use case testing helps to identify test cases that cover the entire system.

Structure-Based or White-Box techniques


The structure-based or white-box technique design test cases based on the internal
structure of the software. This technique exhaustively tests the developed code. Developers
who have complete information of the software code, its internal structure, and design help
to design the test cases. This technique is further divided into five categories.
Statement Testing & Coverage
This technique involves execution of all the executable statements in the source code
at least once. The percentage of the executable statements is calculated as per the given
requirement. This is the least preferred metric for checking test coverage.
Decision Testing Coverage
This technique is also known as branch coverage is a testing method in which each
one of the possible branches from each decision point is executed at least once to ensure all
reachable code is executed. This helps to validate all the branches in the code. This helps to
ensure that no branch leads to unexpected behaviour of the application.
Condition Testing
Condition testing also is known as Predicate coverage testing, each Boolean
expression is predicted as TRUE or FALSE. All the testing outcomes are at least tested once.
This type of testing involves 100% coverage of the code. The test cases are designed as such
that the condition outcomes are easily executed.
Multiple Condition Testing
The purpose of Multiple condition testing is to test the different combination of
conditions to get 100% coverage. To ensure complete coverage, two or more test scripts are
required which requires more efforts.
All Path Testing
In this technique, the source code of a program is leveraged to find every executable
path. This helps to determine all the faults within a particular code.

Experience-Based techniques
These techniques are highly dependent on tester’s experience to understand the most
important areas of the software. The outcomes of these techniques are based on the skills,
knowledge, and expertise of the people involved. The types of experience-based techniques
are as follows:
Error Guessing
In this technique, the testers anticipate errors based on their experience, availability
of data and their knowledge of product failure. Error guessing is dependent on the skills,
intuition, and experience of the testers.
Exploratory Testing
This technique is used to test the application without any formal documentation.
There is minimum time available for testing and maximum for test execution. In exploratory
testing, the test design and test execution are performed concurrently.

4. Difference between Black box testing and White box testing?


Black Box Testing White Box Testing
It is a way of software testing in which the It is a way of testing the software in which
internal structure or the program or the the tester has knowledge about the internal
code is hidden and nothing is known about structure or the code or the program of the
it. software.
It is mostly done by software testers. It is mostly done by software developers.
No knowledge of implementation is Knowledge of implementation is required.
needed.
It can be referred as outer or external It is the inner or the internal software
software testing. testing.
It is functional test of the software. It is structural test of the software.
This testing can be initiated on the basis of This type of testing of software is started
requirement specifications document. after detail design document.
No knowledge of programming is required. It is mandatory to have knowledge of
programming.
It is the behaviour testing of the software. It is the logic testing of the software.
It is applicable to the higher levels of testing It is generally applicable to the lower levels
of software. of software testing.
It is also called closed testing. It is also called as clear box testing.
It is least time consuming. It is most time consuming.
It is not suitable or preferred for algorithm It is suitable for algorithm testing.
testing.
Can be done by trial and error ways and Data domains along with inner or internal
methods. boundaries can be better tested.

5. Difference between Verification and Validation?


Verification is requirements implemented or not, Validation is from user perspective
functionality is correctly working or not

6. What is test strategy and what does it cover?


Test Strategy

Test Strategy is a set of guidelines that explain the test design and determine how
testing needs to be done.

Example: A Test Strategy includes details like “Individual modules are to be tested by the test
team members”. In this case, who tests it does not matter – so it’s generic and the change in
the team member does not have to be updated, keeping it static.

Test Strategy Document

The purpose of the test strategy is to define the testing approach, the types of tests,
test environments, and tools to be used for testing and the high-level details of how the test
strategy will be aligned with other processes. The test strategy document is intended to be a
living document and will be updated** when we get more clarity on Requirements, SLA
parameters, Test environment and Build management approach, etc.

Test strategy is intended for the complete project team that comprises of Project
Sponsors, Business SMEs, Application/ Integration Development, System Integration partners,
Data Conversion Teams, Build/Release Management Teams such as technical leads,
architecture leads, and deployment and infrastructure teams.

7. What is test plan and what does it include?


Test Plan

A Test Plan can be defined as a document that defines the scope, objective, and
approach to test the software application. The Test Plan is a term and a deliverable.

The Test Plan is a document that lists all the activities in a QA project, schedules them,
defines the scope of the project, roles & responsibilities, risks, entry & exit criteria, test
objective, and anything else that you can think of.

The Test Plan is as I like to call a ‘super document’ that lists everything there is to
know and need.
The Test Plan will be designed based on the requirements. While assigning work to
the test engineers, due to some reasons one of the testers gets replaced by another one. Here,
the Test Plan gets updated.

The Test strategy outlines the testing approach and everything else that surrounds it.
It is different from the Test Plan, in the sense that a Test strategy is only a subset of the test
plan. It is a hardcore test document that is to an extent generic and static. There is also an
argument about at what levels test strategy or plan is used- but I really do not see any
discerning difference.

Example: The Test Plan gives information about who is going to test at what time. For Example,
Module 1 is going to be tested by “X tester”. If tester Y replaces X for some reason, the test
plan has to be updated.

Test Plan Document

Test Plan is a document that provides complete information about testing tasks
related to a Software Project. It provides details like Scope of the testing, Types of testing,
Objectives, Test Methodology, Testing Effort, Risks & Contingencies, Release Criteria, Test
Deliverables, etc. It keeps track of possible tests that will be run on the system after coding.

The test plan is obviously set to change. Initially, a draft test plan will be developed
based on project clarity at that time. This initial plan will get modified as the project
progresses. Test team Manager or Test Lead can prepare the test plan document. It describes
the Specifications and is subject to change based on the same.

What to test, when to test, who will test, and how to test will be defined in the test
plan. Test Plan will sort out a list of issues, dependencies, and the underlying risks.

8. How a test case different form test scenario?


TestCase

A TEST CASE is a set of actions executed to verify a particular feature or functionality


of your software application. A Test Case contains test steps, test data, precondition,
postcondition developed for specific test scenario to verify any requirement. The test case
includes specific variables or conditions, using which a testing engineer can compare expected
and actual results to determine whether a software product is functioning as per the
requirements of the customer.

TestScenario

A Test Scenario is defined as any functionality that can be tested. It is a


collective set of test cases which helps the testing team to determine the positive and negative
characteristics of the project. Test Scenario gives a high-level idea of what we need to test.

Example:

testScenario- follow control in ADAS

testcase- 1.get speed of lead vehicle

2.change speed of ego vehicle accordingly


9. Difference between functional and Non-Functional testing?
Parameters Functional Non-functional testing
Execution It is performed before non- It is performed after the
functional testing. functional testing.
Focus area It is based on customer's It focusses on customer's
requirements. expectation.
Requirement It is easy to define functional It is difficult to define the
requirements. requirements for non-
functional testing.
Usage Helps to validate the Helps to validate the
behaviour of the application. performance of the
application.
Objective Carried out to validate It is done to validate the
software actions. performance of the
software.
Requirements Functional testing is carried This kind of testing is carried
out using the functional out by performance
specification. specifications
Manual testing Functional testing is easy to It's very hard to perform
execute by manual testing. non-functional testing
manually.
Functionality It describes what the It describes how the product
product does. works.
Testing Types Examples of Functional Examples of Non Functional
Testing Types Testing Types
• Unit testing • Performance
• Smoke testing Testing
• User Acceptance • Volume Testing
• Integration Testing • Scalability
• Regression testing • Usability Testing
• Localization • Load Testing
• Globalization • Stress Testing
• Interoperability • Compliance Testing
• Portability Testing
• Disaster Recover
Testing
10. What is coverage and different types of coverage techniques?
Coverage is a measurement used in software testing to describe the degree to which
the source code is tested. There are three basic types of coverage techniques:
Statement coverage: This coverage ensures that each line of source code has been executed
and tested.
Decision coverage: This coverage ensures that every decision (true/false) in the source code
has been executed and tested.
Path coverage: In this coverage we ensure that every possible route through a given part of
code is executed and tested
11. How do you ensure 100% coverage in testing?
Test coverage is defined as a metric in Software Testing that measures the amount of
testing performed by a set of test. It will include gathering information about which parts of
a program are executed when running the test suite to determine which branches of
conditional statements have been taken.

In simple terms, it is a technique to ensure that your tests are testing your code or how
much of your code you exercised by running the test.

What Test Coverage does?

• Finding the area of a requirement not implemented by a set of test cases


• Helps to create additional test cases to increase coverage
• Identifying a quantitative measure of test coverage, which is an indirect method for
quality check
• Identifying meaningless test cases that do not increase coverage

How Test Coverage can be accomplished?

• Test coverage can be done by exercising the static review techniques like peer
reviews, inspections, and walkthrough
• By transforming the ad-hoc defects into executable test cases
• At code level or unit test level, test coverage can be achieved by availing the
automated code coverage or unit test coverage tools
• Functional test coverage can be done with the help of proper test management
tools

testcase 1, testcase 2, ……… testcase N → test Requirement 1

testcase 1, testcase 2, ……… testcase N → test Requirement 2

testcase 1, testcase 2, ……… testcase N → test Requirement N


12. Difference between integration testing & System testing?
System Testing Integration Testing
In system testing, we check the system as a In integration testing, we check the
whole. interfacing between the inter-connected
components.
It is performed after integration testing. It is performed after unit testing.
It is carried out for performing both It is generally limited to functional aspects of
functional and non-functional the integrated components.
testing(performance, usability, etc).
Since the testing is limited to the evaluation Since the interfacing logic is required to
of functional requirements, hence, it perform this testing, hence, it requires
includes black-box testing techniques only. white/grey box testing techniques along
with black-box techniques.
The different types of system testing are- The different approaches of performing
Functional testing, Performance testing, integration testing namely – Top-down,
Usability testing, Reliability testing, bottom-up, big-bang and hybrid integration.
Security testing, Scalability testing,
Installation testing, etc.

You might also like