Anda di halaman 1dari 11

Interview Questions Software Engineering

1. Define software engineering? According to IEEE, Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of sofware. 2. What are the categories of software? System software Application software Embedded software Web Applications Artificial Intelligence software Scientific software. 3. Define testing? Testing is a process of executing a program with the intent of finding of an error. 4. What is white box testing? White box testing is a test case design method that uses the control structure of the procedural design to derive test cases. It is otherwise called as structural testing. 5. What is Black box testing? Black box testing is a test case design method that focuses on the functional requirements of the software. It is otherwise called as functional testing. 6. What is verification and validation? Verification refers to the set of activities that ensure that software correctly implements a specific function. Validation refers to the set of activities that ensure that the software that has been built is traceable to customer requirements. 7. What is debugging? Debugging is the process that results in the removal of error. It occurs as a consequence of successful testing.

8.

Define cyclomatic complexity? Cyclomatic complexity is a software metric that provides a quantitative measuer of the logical complexity of a program.

9.

What is error tracking? Error tracking is an activity that provides a means for assessing the status of a current project.

10.

What are case tools? Computer Aided Software Engineering - CASE tools assist software engineering managers and practitioners in evey activity associated with the software process. They automate project management activities manage all work products produced throughout the process and assist the engineers in their analysis, design, coding and test work.

11.

What is data design? Data design transforms the information domain model created during analysis into the data structures that will be required to implement the software.

12.

Define cohension and coupling? Cohension is a measure of the relative functional strength of a module. Coupling is a measure of the relative interdependence among modules.

13.

What are the different types of cohension? There are different types of cohension are Coincidental cohension Logical cohension Temporal cohension Procedural cohension Communicational cohension

14.

What are the different types of coupling? There are different types of coupling are Data coupling Stamp coupling Control coupling

External coupling Common coupling Content coupling 15. What is user interface design? User interface design creates an effective communication medium between a human and a computer. 16. What is meant by specification? A specification can be a written document, a graphical model, a formal mathematical model, a collection of usage scenarios, a prototype or any combination of these. 17. Define process? A series of steps involving activities, constraints, and resources that produce an intended output of some kind is known as process. 18. How spiral model works? The spiral model is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall lifecycle model. It also has an emphasis on the use of risk management techniques. 19. What is winwin spiral model? Winwin spiral model defines a set of negotiation activities at the beginning of each pass around the spiral. The best negotiations strive for a win-win result. 20. Mention the various views in system engineering hierarchy? The various views in system engineering hierarchy from top to bottom in order are World view Domain view Element view Detailed view 21. What is software requirements definition? A software requirements definition is an abstract description of the services which the system should provide and the constraints under which the system must operate.

22.

What is SDLC ? A software cycle deals with various parts and phases from planning to testing and deploying. All these activities are carried out in different ways, as per the needs. Each way is known as a Software Development Lifecycle Model (SDLC).

23.

What are data aquistion systems? Systems that collects data from sensors for subsequent processing and analysis are termed as Data acquistion systems. Data collection process and processing processes may have different periods and deadlines.

24.

Define software configuration model? SCM is the art of identifying, organizing, and controlling modifications to the software being built by a programming team. It is an umbrella activity that is applied throughout the software process.

25.

What are the SCM activities? SCM activities are developed to Identify change Control change Ensure that change is being properly implemented Report changes to others who may have an interest.

26.

What are the advantages and disadvantages of white box testing? Advantages : Softwares structure logic can be tested. Disadvantages : Doesnt ensure that user requirements are met. Its test may not mimic real world situations.

27.

What is meant by loop testing? Loop testing is a white box testing techniques that focuses exclusively on the validity of loop constructs. This technique can be applied to simple loops, nested loops, concatenated loops and unstructured loops.

28.

What is meant by smoke testing? Smoke testing is an integration testing approach that is commonly used ehen shrink wrapped software products are being developed.

29.

What is alpha and beta tests? Alpha test is the test that is conducted at the developers site by a customer. Beta test is the test that is conducted at one or more customer sites by the end-user of the software.

30.

What is meant by system testing? System testing is actually a series of different tests whose primary purpose is to fully exercise the computer based system. It verifies whether the system elements have been properly integrated and perform the allocated functions.

31.

Mention the categories of debugging approaches? There are three categories of debugging approaches as follows : Brute force Back tracking Cause elimination

32.

Define metric? IEEE93 defines as a quantitative measure of the degree to which a system, componen, or process possesses a given attribute.

33.

Mention some of the process models appropriate for the software to be engineered? Linear sequential or waterfall model Prototyping model Rad model Incremental model Spiral model Winwin spiral model Component based development model

34.

What is adaptive maintenance? Adaptive maintanence is the maintenance to adapt software to a different operating environment. It involves changing a system so that it operates in a different environment from its initial implementation.

35.

What are the advantages and disadvantages of black box testing? Advantages: Simulates actual system usage. makes no system structure assumptions. Disadvantages : Potential of missing logical errors in software. Possibility of redundant testing.

36.

What are the broad categories of system requirements? System requirements may be either functional or non-functional requirements.

37.

What are user requirements? User requirements should describe functional and non-functional requirements so that they are understandable by system users who dont have detailed technical knowledge. User requirements are defined using natural language, tables and diagrams.

38.

What is test scenario ? Test scenario is the hypothetical story to test the particular functionality of an application. It serves as an input to functional testing. For test scenario we need use case.

39.

Define an analysis model? An analysis model is a set of models that serves as the technical representation of system.

40.

Define prototype? Prototype is an initial version of a software system which is used to demonstrate concepts, try out design options and generally to find out more about the problem and its possible solutions.

41.

What is the function of the user model? The user model establishes the profile of end users of the system.

42.

What is system image? The system image combines the outward manifestation of the computer based system, coupled with all supporting information that describes system syntax and semantics.

43.

what is transform mapping? Transform mapping is a set of design steps that allows a DFD with transform flow charactersistics to be mapped into a specific architectural style.

44.

What is tracebility matrix? Traceability matrix is a document in which we map the test cases with the requirements. In general we check whether the application works as per requirements or whether we had covered all the required functionality through test cases.

45.

List the metrics for specifying non functional requirements? The possible metrics that specify the non-functional requirements are : Speed Size Easy of use Reliability

46.

What is the difference between black box testing and white box testing? Black box testing : No knowledge of the internal logic of the system is used to develop test cases. Uses validation techniques. Applied during later stages of testing. Examples include unit testing, integration testing, system testing, acceptance testing. White box testing : Knowledge of the internal logic of the system is used to develop test cases. Uses verification techniques Performed early in the testing process.

47.

Mention the various types of maintenance? The various types of maintenance are : Corrective maintenance Adaptive maintenance Perfective maintenance Preventive maintenance

48.

What is the difference between software engineering and system engineering? System Engineering - is concerned with all aspects of computer based systems development including hardware, software and process engineering. System Engineering - are involves in system specification architectural design intergration and deployment.

Requirements
1. Can you name a number of non-functional (or quality) requirements? 2. What is your advice when a customer wants high performance, high usability and high security? 3. Can you name a number of different techniques for specifying requirements? What works best in which case? 4. What is requirements tracing? What is backward tracing vs. forward tracing? 5. Which tools do you like to use for keeping track of requirements? 6. How do you treat changing requirements? Are they good or bad? Why? 7. How do you search and find requirements? What are possible sources? 8. How do you prioritize requirements? Do you know different techniques? 9. Can you name the responsibilities of the user, the customer and the developer in the requirements process? 10. What do you do with requirements that are incomplete or incomprehensible?

Functional Design
1. What are metaphors used for in functional design? Can you name some successful examples? 2. How can you reduce the user's perception of waiting when some functions take a lot of time? 3. Which controls would you use when a user must select multiple items from a big list, in a minimal amount of space? 4. Can you name different measures to guarantee correctness of data entry? 5. Can you name different techniques for prototyping an application? 6. Can you name examples of how an application can anticipate user behavior? 7. Can you name different ways of designing access to a large and complex list of features? 8. How would you design editing twenty fields for a list of 10 items? And editing 3 fields for a list of 1000 items? 9. What is the problem of using different colors when highlighting pieces of a text? 10. Can you name some limitations of a web environment vs. a Windows environment?

Technical Design
1. What do low coupling and high cohesion mean? What does the principle of encapsulation mean? 2. How do you manage conflicts in a web application when different people are editing the same data? 3. Do you know about design patterns? Which design patterns have you used, and in what situations? 4. Do you know what a stateless business layer is? Where do long-running transactions fit into that picture? 5. What kinds of diagrams have you used in designing parts of an architecture, or a technical design? 6. Can you name the different tiers and responsibilities in an N-tier architecture? 7. Can you name different measures to guarantee correctness and robustness of data in an architecture? 8. Can you name any differences between object-oriented design and component-based design? 9. How would you model user authorization, user profiles and permissions in a database? 10. How would you model the animal kingdom (with species and their behavior) as a class system?

Construction
1. How do you make sure that your code can handle different kinds of error situations? 2. Can you explain what Test-Driven Development is? Can you name some principles of Extreme Programming? 3. What do you care about most when reviewing somebody else's code? 4. When do you use an abstract class and when do you use an interface? 5. Apart from the IDE, which other favorite tools do you use that you think are essential to you? 6. How do you make sure that your code is both safe and fast? 7. When do you use polymorphism and when do you use delegates? 8. When would you use a class with static members and when would you use a Singleton class? 9. Can you name examples of anticipating changing requirements in your code? 10. Can you describe the process you use for writing a piece of code, from requirements to delivery?

Algorithms
1. How do you find out if a number is a power of 2? And how do you know if it is an odd number? 2. How do you find the middle item in a linked list? 3. How would you change the format of all the phone numbers in 10,000 static html web pages? 4. Can you name an example of a recursive solution that you created? 5. Which is faster: finding an item in a hashtable or in a sorted list? 6. What is the last thing you learned about algorithms from a book, magazine or web site? 7. How would you write a function to reverse a string? And can you do that without a temporary string?

8. What type of language do you prefer for writing complex algorithms? 9. In an array with integers between 1 and 1,000,000 one value is in the array twice. How do you determine which one? 10. Do you know about the Traveling Salesman Problem?

Data Structures
1. 2. 3. 4. 5. 6. 7. 8. 9. How would you implement the structure of the London underground in a computer's memory? How would you store the value of a color in a database, as efficiently as possible? What is the difference between a queue and a stack? What is the difference between storing data on the heap vs. on the stack? How would you store a vector in N dimensions in a datatable? What type of language do you prefer for writing complex data structures? What is the number 21 in binary format? And in hex? What is the last thing you learned about data structures from a book, magazine or web site? How would you store the results of a soccer/football competition (with teams and scores) in an XML document? 10. Can you name some different text file formats for storing unicode characters?

Testing
1. Do you know what a regression test is? How do you verify that new changes have not broken existing features? 2. How can you implement unit testing when there are dependencies between a business layer and a data layer? 3. Which tools are essential to you for testing the quality of your code? 4. What types of problems have you encountered most often in your products after deployment? 5. Do you know what code coverage is? What types of code coverage are there? 6. Do you know the difference between functional testing and exploratory testing? How would you test a web site? 7. What is the difference between a test suite, a test case and a test plan? How would you organize testing? 8. What kind of tests would you include for a smoke test of an ecommerce web site? 9. What can you do reduce the chance that a customer finds things that he doesn't like during acceptance testing? 10. Can you tell me something that you have learned about testing and quality assurance in the last year?

Maintenance
1. 2. 3. 4. 5. What kind of tools are important to you for monitoring a product during maintenance? What is important when updating a product that is in production and is being used? How do you find an error in a large file with code that you cannot step through? How can you make sure that changes in code will not affect any other parts of the product? How do you create technical documentation for your products?

6. 7. 8. 9.

What measures have you taken to make your software products more easily maintainable? How can you debug a system in a production environment, while it is being used? Do you know what load balancing is? Can you name different types of load balancing? Can you name reasons why maintenance of software is the biggest/most expensive part of an application's life cycle? 10. What is the difference between re-engineering and reverse engineering?

Configuration Management
1. Do you know what a baseline is in configuration management? How do you freeze an important moment in a project? 2. Which items do you normally place under version control? 3. How can you make sure that team members know who changed what in a software project? 4. Do you know the differences between tags and branches? When do you use which? 5. How would you manage changes to technical documentation, like the architecture of a product? 6. Which tools do you need to manage the state of all digital information in a project? Which tools do you like best? 7. How do you deal with changes that a customer wants in a released product? 8. Are there differences in managing versions and releases? 9. What is the difference between managing changes in text files vs. managing changes in binary files? 10. How would you treat simultaneous development of multiple RfC's or increments and maintenance issues?

Project Management
1. How many of the three variables scope, time and cost can be fixed by the customer? 2. Who should make estimates for the effort of a project? Who is allowed to set the deadline? 3. Do you prefer minimization of the number of releases or minimization of the amount of workin-progress? 4. Which kind of diagrams do you use to track progress in a project? 5. What is the difference between an iteration and an increment? 6. Can you explain the practice of risk management? How should risks be managed? 7. Do you prefer a work breakdown structure or a rolling wave planning? 8. What do you need to be able to determine if a project is on time and within budget? 9. Can you name some differences between DSDM, Prince2 and Scrum? 10. How do you agree on scope and time with the customer, when the customer wants too much?