Valeo Exam Cafc

November 12, 2017 | Author: Mohammed El-Adawy | Category: Embedded System, C (Programming Language), Software Testing, Unit Testing, Microcontroller
Share Embed Donate


Short Description

Download Valeo Exam Cafc...

Description

SWE: v-cycle,SW Requirements Specification, Requirements analysis->Engineering,High level design->Implementation or detailed design->Static test->integration test->validation

Validation is to test the whole program and it is called black box test Verification white box, check each part in the program if it complies with the company aspects, optimized , can perform faster,……etc In the Requirements analysis phase, the requirements of the proposed system are collected by analyzing the needs of the user(s). This phase is concerned about establishing what the ideal system has to perform. However it does not determine how the software will be designed or built. Usually, the users are interviewed and a document called the user requirements document is generated. The user requirements document will typically describe the system’s functional, physical, interface, performance, data, security requirements etc as expected by the user. It is one which the business analysts use to communicate their understanding of the system back to the users. The users carefully review this document as this document would serve as the guideline for the system designers in the system design phase. The user acceptance tests are designed in this phase. See also Functional requirements. this is parallel processing [edit]System Design Systems design is the phase where system engineers analyze and understand the business of the proposed system by studying the user requirements document. They figure out possibilities and techniques by which the user requirements can be implemented. If any of the requirements are not feasible, the user is informed of the issue. A resolution is found and the user requirement document is edited accordingly. The software specification document which serves as a blueprint for the development phase is generated. This document contains the general system organization, menu structures, data structures etc. It may also hold example business scenarios, sample windows, reports for the better understanding. Other

technical documentation like entity diagrams, data dictionary will also be produced in this phase. The documents for system testing are prepared in this phase. [edit]Architecture Design The phase of the design of computer architecture and software architecture can also be referred to as high-level design. The baseline in selecting the architecture is that it should realize all which typically consists of the list of modules, brief functionality of each module, their interface relationships, dependencies, database tables, architecture diagrams, technology details etc. The integration testing design is carried out in the particular phase. [edit]Module Design The module design phase can also be referred to as low-level design. The designed system is broken up into smaller units or modules and each of them is explained so that the programmer can start coding directly. The low level design document or program specifications will contain a detailed functional logic of the module, in pseudocode: database tables, with all elements, including their type and size all interface details with complete API references all dependency issues error message listings complete input and outputs for a module. The unit test design is developed in this stage. [edit]Validation Phases [edit]Unit Testing In computer programming, unit testing is a method by which individual units of source code are tested to determine if they are fit for use. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual function or procedure. Unit tests are created by programmers or occasionally by white box testers. The purpose is to verify the internal logic code by testing every possible branch within the function, also known as test coverage. Static analysis tools are used to facilitate in this process, where variations of input data are passed to the function to test every possible case of execution. [edit]Integration Testing In integration testing the separate modules will be tested together to expose faults in the interfaces and in the interaction between integrated components. Testing is usually black box as the code is not directly checked for errors.

[edit]System Testing System testing will compare the system specifications against the actual system.After the integration test is completed, the next test level is the system test. System testing checks if the integrated product meets the specified requirements. Why is this still necessary after the component and integration tests? The reasons for this are as follows: Reasons for system test a) In the lower test levels, the testing was done against technical specifications, i.e., from the technical perspective of the software producer. The system test, though, looks at the system from the perspective of the customer and the future user. The testers validate whether the requirements are completely and appropriately met. Example The customer (who has ordered and paid for the system) and the user (who uses the system) can be different groups of people or organizations with their own specific interests and requirements of the system. b) Many functions and system characteristics result from the interaction of all system components, consequently, they are only visible on the level of the entire system and can only be observed and tested there. [edit]User Acceptance Testing Acceptance testing is the phase of testing used to determine whether a system satisfies the requirements specified in the requirements analysis phase. The acceptance test design is derived from the requirements document. The acceptance test phase is the phase used by the customer to determine whether to accept the system or not. The following description is unacceptable in and overview article Acceptance testing: - To determine whether a system satisfies its acceptance criteria or not. - To enable the customer to determine whether to accept the system or not. - To test the software in the "real world" by the intended audience. Purpose of acceptance testing: - To verify the system or changes according to the original needs. Procedures for conducting the acceptance testing: Define the acceptance criteria: - Functionality requirements. - Performance requirements. - Interface quality requirements. - Overall software quality requirements.

Develop an acceptance plan: - Project description. - User responsibilities. - Acceptance description. - Execute the acceptance test plan. - to develop

Customer Requirements saved in a document -> http://en.wikipedia.org/wiki/V-Model_(software_development) SW Design,& diff bet both static and dynamic architecture,testing categories, What is the difference between Static Testing and Dynamic Testing? Static Testing Static Testing is a White Box testing technique where the developers verify or test their code with the help of checklist to find errors in it, this type of testing is done without running the actually developed application or program. Code Reviews, Inspections, WaStatic Testing Static Testing is a White Box testing technique where the developers verify or test their code with the help of checklist to find errors in it, this type of testing is done without running the actually developed application or program. Code Reviews, Inspections, Walkthroughs are mostly done in this stage of testing.

Dynamic Testing Dynamic Testing is done by executing the actual application with valid inputs to check the expected output. Examples of Dynamic Testing methodologies are Unit Testing, Integration Testing, System Testing and Acceptance Testing. Some differences between Static Testing and Dynamic Testing are, · Static Testing is more cost effective than Dynamic Testing because Static Testing is done in the initial stage.

· In terms of Statement Coverage, the Static Testing covers more areas than Dynamic Testing in shorter time. · Static Testing is done before the code deployment where the Dynamic Testing is done after the code deployment. · Static Testing is done in the Verification stage where the Dynamic Testing is done in the Validation stage.lkthroughs are mostly done in this stage of testing Static and dynamic architecture tests Static: test memory usages, integration between functions, test the program before running it Dynamic: test the program while it is running configuration managements the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines. PVCS,SVN,CVS

http://en.wikipedia.org/wiki/Software_configuration_management is more cost effective than Dynamic Testing because Static Testing is done in the C & embedded C: Difference between Embedded C and C here are differences between C and embedded C, some of them are: C is for desktop computers, embedded C usually is for microcontroller based applications. C use the resources of desktop computers (memory, OS, etc) Embbeded C use only limited resources available in chip (limited RAM, ROM, ports, etc). Embbed C could be a subset of C.

embedded C is also same with some diffrent environment. Here u have to take care about memory. In embedded environment memory is available very less than desktop computers, where u can't bother about memory. In your program u have to see that in an instant of time your program is not using more than available memory of the microcontroller. If it is trying to use then the program 'll crash. An embedded system is an application that contains at least one programmable computer (typically in the form of a microcontroller, a microprocessor or digital signal processor chip) and which is used by individuals who are, in the main, unaware that the system is computer-based. Beside this, also timing constraint also a mesure though optinal but mostly wanted in embedded C. You have to check the code in real time environment with the help of emulators and debuggers. what makes embedded c so differnt from the regular c is *abscence of console *restriction on code size *and the compiler regular compilers create os dependent executable file where as embedded c compilers create a file which are downloaded to controllers to realize the required task regular compilers don't give abstraction for all the resources of the system where as in embedded c compiler give access to all the resources directly so code efficient code written in embedded c are though not cross compatible but they are series compatible http://www.edaboard.com/thread95626.html some functions to comment on it as: switch case(one of the cases without break) postincrement and preincrement(++i,i++)->Result

#define?? #define BIG 512 Similar to find and replace int arrayObjects[BIG]; #include??

#pragma?? '#pragma' is for compiler directives that are machine-specific or operatingsystem-specific, i.e. it tells the compiler to do something, set some option, take some action, override some default, etc. that may or may not apply to all machines and operating systems. see msdn for more info Changes some of compiler functions

#asm?? To write assembly code #ifdef. .#endif? Text inside an ifdef/endif or ifndef/endif pair will be left in or removed by the preprocessor depending on the condition. ifdef means "if the following is defined" while ifndef means "if the following is not defined". http://stackoverflow.com/questions/3744608/the-role-of-ifdef-and-ifndef const?? extern?? To make same parameters used in two different file have the same location in the memory

Is one of this parameters is static, extern can’t be used The "extern" declaration in C is to indicate the existence of, and the type of, a global variable or function. A global variable, or a global function, is one that is available to all C modules (a single C module is typically a single .c file). An extern is something that is defined externally to the current module. In many cases, you can leave off the extern qualifier and not notice any difference because the linker can collapse multiple definitions to one. But the intent is then unclear in the code, and the code is error prone in case of typos. It is much clearer to define the global in one place, and then declare extern references to it in all the other places. When refering to globals provided by a library, especially a shared library, this is even more important in order to ensure you are talking about the correct, common instance of the variable. Declaring a variable as extern will result in your program not reserving any memory for the variable in the scope that it was declared. For instance (as example) if a program's source code declared the variable var as a global volatile int in foo.c, to properly use it in bar.c you would declare it as extern volatile int var. It is also not uncommon to find function prototypes declared as extern. A good C manual will certainly answer this more completely. volatile?? Volatile variables, variables that can be changed by an external process static?? A variable that retains the same data throughout the execution of a program. In contrast, a dynamic variable can have different values during the course of a program. http://www.compeng.dit.ie/staff/tscarff/stack/stack.htm

register??

'int' type?? 'unsigned char' type?? (size) Int =16 bit Long int = 32 bit

Unsigned int=16 bit static and dynamic variables Static variables (should) remain the same e.g. temperature of a water bath, k constant of a particular spring. Dynamic variables change as the experiment progresses e.g. air temperature and pressure, amount of natural light. diff. bet function and Macros

A macro is a bunch of code that gets put inline in the code every time you put it in your program. A function is compiled once and can be called from anywhere that has visibility to the funciton. In other words, a macro takes up much more memory than does a function if it is to be used more than once. http://www.c4learn.com/2010/01/difference-between-macro-and-function.html some MISRA rules http://computing.unn.ac.uk/staff/cgam1/teaching/0703/misra%20rules.pdf specifications of embedded SW http://www.microtoolsinc.com/Howsrs.php embedded system: Real time?? operations is limited with a deadline. Input capture?? Input capture is a method of dealing with input signals in an embedded system. Embedded systems using input capture will record a timestamp in memory when an input signal is received. It will also set a flag indicating that an input has been captured. This allows the system to continue executing without interruption while an input is being received while still having the capability to trigger events based on the exact time when the input was received.

The corresponding capability to trigger an output at a specified time, based on a timestamp in memory, is called output compare. There are many programmable interrupt controllers that provide dedicated input capture pins and a programmable counter along with it. These pins generate interrupts to the controller, which then executes an interrupt service routine. The interrupts can be programmed to occur at the rising or falling edge of the input signal, depending on requirements. on activating an interrupt?? Hardware and Software There are two types of interrupts: Hardware and Software. Software interrupts are called from software, using a specified command. Hardware interrupts are triggered by peripheral devices outside the microcontroller. For instance, your embedded system may contain a timer that sends a pulse to the controller every second. Your microcontroller would wait until this pulse is received, and when the pulse comes, an interrupt would be triggered that would handle the signal. Interrupt Service Routines Interrupt Service Routines (ISR) are the portions of the program code that handle the interrupt requests. When an Interrupt is triggered (either a hardware or software interrupt), the processor breaks away from the current task, moves the instruction pointer to the ISR, and then continues operation. When the ISR has completed, the processor returns execution to the previous location. Many embedded systems are called interrupt driven systems, because most of the processing occurs in ISRs, and the embedded system spends most of it's time in a low-power mode. Sometimes ISR may be split into two parts: top-half (fast interrupt handler, FirstLevel Interrupt Handler (FLIH)) and bottom-half (slow interrupt handler, SecondLevel Interrupt Handlers (SLIH)). Top-half is a faster part of ISR which should quickly store minimal information about interrupt and schedule slower bottomhalf at a later time. Interrupt Vector Table

The "Interrupt Vector Table" is a list of every interrupt service routine. It is located at a fixed location in program memory. (Some processors expect the interrupt vector table to be a series of "call" instructions, each one followed by the address of the ISR. Other processors expect the interrupt vector table to hold just the ISR addresses alone.) You must make sure that every entry in the interrupt vector table is filled with the address of some actual ISR, even if it means making most of them point to the "do nothing and return from interrupt" ISR. http://en.wikibooks.org/wiki/Embedded_Systems/Interrupts synchronous and asynchronous?? certain freq->pll*4,divider by 2=?? http://en.wikipedia.org/wiki/Phase-locked_loop PWM?? (what parameters specify PWM?) difference between microprocessor and microcontroller?? http://www.allinterview.com/showanswers/1332.html CAN and LIN?? (CAN is multi-master and Lin is single master) http://en.wikipedia.org/wiki/Local_Interconnect_Network deadlock?? In computer science, Coffman deadlock refers to a specific condition when two or more processes are each waiting for each other to release a resource, or more than two processes are waiting for resources in a circular chain (see Necessary conditions). Deadlock is a common problem in multiprocessing where many processes share a specific type of mutually exclusive resource known as a software lock or soft lock. Computers intended for the time-sharing and/or realtime markets are often equipped with a hardware lock (or hard lock) which guarantees exclusive access to processes, forcing serialized access. Deadlocks are particularly troubling because there is no general solution to avoid (soft) deadlocks. http://en.wikipedia.org/wiki/Deadlock

simulator and emulator?? A simulator is a software that duplicates some processor in almost all the possible ways. An emulator is a hardware which duplicates the features and functions of a real system, so that it can behave like the actual system. Usually the emulators and simulators are used for the testing of new architectures and also to give training in some complex systems. A most famous example for a simulator is the flight simulator that simulates the functonalities of an aircraft. http://stackoverflow.com/questions/1584617/simulator-or-emulator-what-is-the-difference

CPU load?? Intuitively, the load average is an average over time of the number of processes in the run queue. uptime reports load averages over 1-, 5- and 15-minute intervals. Typically, load averages are divided by the number of CPU cores to find the load per CPU. Load averages above 1 per CPU indicate that the CPUs are fully utilized. Depending on the type of load and the I/O requirements, user-visible performance may not be affected until levels of 2 per CPU are reached. A general rule of thumb is that load averages that are persistently above 4 times the number of CPUs will result in sluggish performance. stack?? Stacks in computing architectures are regions of memory where data is added or removed in a last-in-first-out manner. In most modern computer systems, each thread has a reserved region of memory referred to as its stack. When a function executes, it may add some of its state data to the top of the stack; when the function exits it is responsible for removing that data from the stack. At a minimum, a thread's stack is used to store the location of function calls in order to allow return statements to return to the correct location, but programmers may further choose to explicitly use the stack. If a region of memory lies on the thread's stack, that memory is said to have been allocated on the stack.

Because the data is added and removed in a last-in-first-out manner, stack allocation is very simple and typically faster than heap-based memory allocation (also known as dynamic memory allocation). Another feature is that memory on the stack is automatically, and very efficiently, reclaimed when the function exits, which can be convenient for the programmer if the data is no longer required. If however, the data needs to be kept in some form, then it must be copied from the stack before the function exits. Therefore, stack based allocation is suitable for temporary data or data which is no longer required after the creating function exits. A disadvantage of stack-based memory allocation is that a thread's stack size can be as small as a few dozen kilobytes. Allocating more memory on the stack than is available can result in a crash due to stack overflow.

HR Interview(in Engilsh): introduce yourself an achievement in your life point of strength and weakness in you hard situation leader member situation do you see yourself a successful leader?

team member situation graduation projects why do you want to work in our company? what do you think you will add to our company?

http://www.c4learn.com/2010/01/switch-case-objective-interview-mcq.html

Difference between SIP and UART or UASRT. Is the Array can be passed by reference? Is the structure can be passed by reference? Array of pointers can be passed by value or by reference? Protocols used with EEPROM? Page size of EEPROM and Flash? Which one is larger? Software Quality Assurance! Software Quality Control! Software Development Plan! What are the measurements of Software? What is the role of Measurements team? Where do we save Local varaiables? You have to study all these topics well and focus on the pointers, you must read anything about it!

C / Embedded C: - A number of Multiple Choice Questions containing small programs to trace that test your knowledge of the C-language, for example: A small program that contains a switch case where one of the cases doesn't include a "break" instruction, in this question for example you have to be able to find out that the following case will also be executed .. etc .. A small program that tests your ability to differentiate between the post increment and the pre increment (i++ and ++i) - The usage of keywords like extern, static, volatile, const - The difference between macros and functions - The advantages of using static variables over global variables - The usage of operators like #ifdef, #endif, #pragma, #asm

Software Engineering: - Difference between white box testing and black box testing - Difference between Software Static and Dynamic architectures - What is meant by configuration management

Embedded Systems Concepts: - The difference between micro-controllers and micro-processors - The difference between synchronous operations and asynchronous operations - What's meant by PWM and its usage - What's meant by CPU load - Clock Frequency and PLL - Difference between Flash, RAM, EEPROM, Stack, etc .. HR Interview (In English):

- Introduce yourself - Talk about an achievement in your life - Points of strength and weakness in your character - Do you see yourself as a successful leader? prove with a situation - Mention a hard situation that you faced before and how did you solve it. - Are you a team player and you can work among a team ? Mention a situation that proves your answer. - why do you want to work in Valeo? - what do you think you will add to Valeo?

C / embedded C - Important You need to read a complete reference book for C. Skip the info which you already know , and concentrate on the points which you don't know. Ignore any chapters speaking about strings, reading or writing to files or C built-in libraries. Concentrate on: Different C Types and their sizes & Type casting & Use of Volatile keyword & Use of # preprocessor operator Embedded Systems Concepts Review the main concepts of Real time embedded systems and Real time OS (RTOS) - Imp. Study the SW Life Cycle (named V Cycle) - Imp. Study the difference between Validation and Verification - Imp. Study the difference between the different types of testing, (unit testing, integration testing and validation) - Imp. Difference between Simulator, Debugger and Emulator - Imp. Read about Model based development - Just know the idea Pre-compile , Link time and post build configuration Benefits of XML You need to have an experience with one microcontroller atleast Automotive

Understand the need of multiple ECUs in cars and check some examples of ECUs (ex. Climate control, Wipers, Engine management) Know how different ECUs communicate and make a brief reading of the different bus used in the cars (LIN and CAN) - Imp. Read about the car diagnostics (UDS and OBD) - Just know the idea Read about AUTOSAR standard (Benefits and Architecture)

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF