Software Testing and Specification Quiz
41 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What are the upper rows of a decision table used for?

  • To specify actions to be taken
  • To display error messages
  • To denote the rules
  • To represent conditions that are evaluated (correct)
  • A rule in a decision table indicates that if a condition is true, then the corresponding action will not be executed.

    False

    What is the primary goal of system testing?

  • To identify all bugs in the software
  • To ensure the system conforms to its requirements (correct)
  • To check the user interface design
  • To improve software performance
  • What does a formal specification language consist of?

    <p>Syntactic and semantic domains.</p> Signup and view all the answers

    In a decision table, if the valid selection condition is false, the action taken is to 'display _____ message'.

    <p>error</p> Signup and view all the answers

    Acceptance testing is performed by the development team.

    <p>False</p> Signup and view all the answers

    What are the three kinds of maintenance activities involved in software maintenance?

    <p>Corrective maintenance, perfective maintenance, adaptive maintenance</p> Signup and view all the answers

    Match the following components of a formal specification language:

    <p>Syntactic domain = Set of formation rules and symbols Semantic domain = Modeling of system's semantics Satisfaction relation = Relation between syntactic and semantic domains</p> Signup and view all the answers

    During α-testing, the system is tested by the __________ team.

    <p>development</p> Signup and view all the answers

    What does the satisfaction relation denote in formal specification?

    <p>Relationship between syntax and semantics</p> Signup and view all the answers

    Which type of maintenance involves enhancing functionalities according to customer requirements?

    <p>Perfective maintenance</p> Signup and view all the answers

    Abstract data type specification languages are primarily used to specify programs.

    <p>True</p> Signup and view all the answers

    What do the lower rows of a decision table represent?

    <p>Actions to be taken when conditions are satisfied.</p> Signup and view all the answers

    Match the types of testing with their correct descriptions:

    <p>α-testing = Performed by the development team β-testing = Performed by a friendly set of customers Acceptance testing = Performed by the customer after product delivery</p> Signup and view all the answers

    What is the typical ratio of effort spent on software development compared to maintenance?

    <p>40:60</p> Signup and view all the answers

    A formal technique is a _____ method used for specifying systems and verifying specifications.

    <p>mathematical</p> Signup and view all the answers

    Which of the following best describes a pure mathematical function?

    <p>It does not change its input value.</p> Signup and view all the answers

    The pre-conditions of a function must specify the expected input values.

    <p>True</p> Signup and view all the answers

    What does the post-condition of a function describe?

    <p>The state of outputs after the function has executed.</p> Signup and view all the answers

    The architectural design is the highest __________ version of the system.

    <p>abstract</p> Signup and view all the answers

    In the function specified for halving or doubling a number, what will be the output if the input is 150?

    <p>300</p> Signup and view all the answers

    The transform process in software design starts from the solution domain.

    <p>False</p> Signup and view all the answers

    What does SRS stand for in software design?

    <p>Software Requirement Specification</p> Signup and view all the answers

    If a function modifies an input parameter named X, it is referred to as __________ after execution.

    <p>X′</p> Signup and view all the answers

    Match the software design levels with their descriptions:

    <p>Architectural Design = High-level system abstraction Detailed Design = Specific implementation decisions User Interface Design = How users interact with the system</p> Signup and view all the answers

    What is one of the main outputs of the software design process?

    <p>Requirements for implementation</p> Signup and view all the answers

    Which type of cohesion involves elements that are organized to be processed at a similar point in time?

    <p>Temporal cohesion</p> Signup and view all the answers

    Functional cohesion is considered to be the lowest degree of cohesion.

    <p>False</p> Signup and view all the answers

    What is the term used to describe the quality measures of design modules and their interactions?

    <p>coupling and cohesion</p> Signup and view all the answers

    _________ cohesion is when elements of a module are grouped together and executed sequentially because one element’s output serves as another element’s input.

    <p>Sequential</p> Signup and view all the answers

    Match the following types of cohesion with their definitions:

    <p>Co-incidental cohesion = Unplanned random cohesion Logically categorized cohesion = Logical cohesion Execution sequence-based cohesion = Procedural cohesion Data-focused cohesion = Communicational cohesion Single well-defined function cohesion = Functional cohesion</p> Signup and view all the answers

    What is the primary focus of high-level design?

    <p>Interaction among sub-systems and modules</p> Signup and view all the answers

    Detailed design is less focused on module implementation compared to high-level design.

    <p>False</p> Signup and view all the answers

    What does modularization aim to achieve in software design?

    <p>Divide a software system into multiple discrete and independent modules.</p> Signup and view all the answers

    In software execution, _____ provides the capability to run more than one part of code in parallel.

    <p>concurrency</p> Signup and view all the answers

    Match the following advantages of modularization with their descriptions:

    <p>Easier maintenance = Smaller components are easier to manage. Functional division = Program can be divided based on functional aspects. Reusability = Components with high cohesion can be reused. Security = Modular design offers desired security aspects.</p> Signup and view all the answers

    Which of the following is NOT an advantage of modularization?

    <p>High execution speed</p> Signup and view all the answers

    Concurrency allows modules to execute sequentially, one after another.

    <p>False</p> Signup and view all the answers

    Describe one benefit of using modular design in software development.

    <p>It makes components easier to maintain.</p> Signup and view all the answers

    High-level design recognizes the _____ structure of each sub-system.

    <p>modular</p> Signup and view all the answers

    Which design deals specifically with the logical structure and interface of modules?

    <p>Detailed design</p> Signup and view all the answers

    Study Notes

    Lecture Notes - Software Engineering

    • Course Code: BCS-306
    • Instructors: Dr. H.S. Behera, Asst. Prof K.K. Sahu, Asst. Prof Gargi Bhattacharjee
    • Institution: Veer Surendra Sai University of Technology, Odisha, Burla
    • This document is a compilation of lecture notes and is not intended to replace prescribed textbooks or be used as the sole material for studying software engineering.
    • Information contained within is collected by committee members for teaching assignments, including various textbooks, and freely available internet resources.

    Syllabus

    • Module I: Introductory concepts, definition, life cycle, requirements analysis, and specification, design and analysis (cohesion, coupling, data flow oriented design, transform-centered design, transaction-centered design), analysis of systems (inventory control, reservation system)
    • Module II: Object-oriented design (UML, use case diagrams, class diagrams, interaction diagrams, activity diagrams, unified development process)
    • Module III: Implementation and Testing (programming language characteristics, fundamentals, classes, coding style efficiency, testing objectives, black box and white box testing, strategies, debugging techniques, maintenance, reliability and availability, characteristics controlling factors, maintenance tasks, side effects, preventive maintenance, re-engineering, reverse engineering, configuration management, reliability and availability models, Recent trends and developments)
    • Module IV: Software quality, SEI CMM, ISO-9001, software reliability and fault-tolerance, software project planning, monitoring, and control, Computer-aided software engineering (CASE), component model of software development, software reuse.

    Contents

    • Module 1: Introduction to Software Engineering, Software Development Life Cycle - Classical Waterfall Model, Iterative Waterfall Model, Prototyping Model, Evolutionary Model, Spiral Model, Requirements Analysis and Specification, Formal System Specification (problems, decision tree, decision tables), Software Design Strategies, Software Analysis & Design Tools, Structured Design.
    • Module 2: Object Modelling Using UML, Use Case Diagram, Class Diagrams, Interaction Diagrams, Activity and State Chart Diagram
    • Module 3: Coding, Black-Box Testing, White-Box Testing, Debugging, Integration and System Testing, Software Maintenance, Software Maintenance Process Models, Reliability and Quality Management, Reliability Growth Models, Software Quality, SEI Capability Maturity Model, Software Project Planning, Metrics for Software Project Size Estimation.
    • Module 4: Software Project Planning, Metrics for Software Project Size Estimation, COCOMO Model, Intermediate COCOMO Model, Staffing Level Estimation.

    Lecture Note 1 - Introduction to Software Engineering

    • Software engineering is a branch of computer science focused on software development using scientific principles.
    • Software is more than just executable code, it includes code, libraries, and documentation.
    • Software engineering utilizes systematic and disciplined methodologies, enabling effective and reliable software product development.
    • Reduction in complexity is achieved through abstraction and decomposition.
    • It is important for large programs.
    • Crucial for avoiding errors in large programs due to exponential growth in complexity.
    • Effective methods include abstraction and decomposition.

    Lecture Note 2 - Software Development Life Cycle

    • A software life cycle model maps the activities and order in which they occur during software development.
    • Models address and guide the various steps in software production like iterative waterfall model, prototyping model, and evolutionary model.
    • Various Models use predefined steps that are common to all models.
    • Importance of the methodology.
    • Need for a software life cycle model for systematic and disciplined software development.
    • different models, classical waterfall, iterative waterfall, prototyping, evolutionary, spiral models.

    Other Notes

    • This document contains a variety of topics on software engineering, including methodologies, tools, processes, and best practices.
    • It covers various models, tools, and techniques used in the software engineering process.
    • It also includes the concepts of risk analysis that are crucial for successful project completion.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Test your knowledge on software testing processes, decision tables, and formal specification languages with this quiz. Explore concepts like system testing, acceptance testing, and maintenance activities as you answer a variety of questions.

    More Like This

    Use Quizgecko on...
    Browser
    Browser