Software Testing and Specification Quiz
41 Questions
1 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 (B)

    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 (B)</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 (C)</p> Signup and view all the answers

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

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

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

    <p>True (A)</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 (B)</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. (C)</p> Signup and view all the answers

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

    <p>True (A)</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 (C)</p> Signup and view all the answers

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

    <p>False (B)</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 (A)</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 (B)</p> Signup and view all the answers

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

    <p>False (B)</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 (D)</p> Signup and view all the answers

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

    <p>False (B)</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 (B)</p> Signup and view all the answers

    Concurrency allows modules to execute sequentially, one after another.

    <p>False (B)</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 (C)</p> Signup and view all the answers

    Flashcards

    Integration Testing

    The process of combining different modules of a software product into a working system.

    Alpha Testing

    Testing done by the development team to ensure the integrated system meets the original requirements.

    Beta Testing

    Testing performed by external users (like customers) to ensure the product functions correctly and meets their needs.

    Acceptance Testing

    Testing conducted by the customer after delivery to decide whether to accept or reject the product.

    Signup and view all the flashcards

    Corrective Maintenance

    The process of detecting and correcting errors found in a software product after its initial release.

    Signup and view all the flashcards

    Perfective Maintenance

    Enhancing existing functionality of the software based on customer requirements.

    Signup and view all the flashcards

    Adaptive Maintenance

    Adapting the software to work in new environments, like different operating systems or platforms.

    Signup and view all the flashcards

    Cohesion

    A measure of how well the elements within a module relate to each other. Higher cohesion means a module is more focused and organized.

    Signup and view all the flashcards

    Co-incidental Cohesion

    A weak type of cohesion where elements are grouped together for no clear reason, making the module difficult to understand and maintain.

    Signup and view all the flashcards

    Temporal Cohesion

    When elements are grouped because they are processed at similar times, even if they have unrelated functions.

    Signup and view all the flashcards

    Coupling

    A measure of how much modules depend on each other. Lower coupling means modules are more independent and easier to maintain.

    Signup and view all the flashcards

    Functional Cohesion

    The strongest type of cohesion, where all elements contribute to a single well-defined function.

    Signup and view all the flashcards

    Formal Technique

    A mathematical method used to describe and analyze software or hardware systems. It involves rigorous techniques to ensure correctness, reliability, and efficiency.

    Signup and view all the flashcards

    Formal Specification Language

    A language that employs a formal system to define the behavior and structure of a system.

    Signup and view all the flashcards

    Syntactic Domain

    A set of rules for combining symbols to form well-formed formulas in a formal language.

    Signup and view all the flashcards

    Semantic Domain

    A set of objects and their relationships used to interpret the meaning of formulas in a formal language.

    Signup and view all the flashcards

    Rule

    A collection of rules in a decision table representing a condition and its corresponding action.

    Signup and view all the flashcards

    Decision Table

    A table that organizes conditions and actions in a structured format, where each column represents a rule.

    Signup and view all the flashcards

    Specificand

    A formal specification that describes a desired behavior or functionality of a system.

    Signup and view all the flashcards

    Specification

    A formal specification that describes how a system is implemented or realized.

    Signup and view all the flashcards

    Model

    A representation of the system that satisfies the given specification.

    Signup and view all the flashcards

    Software Design

    A process that transforms user needs into a usable form for programmers.

    Signup and view all the flashcards

    SRS (Software Requirement Specification)

    A document outlining the detailed requirements for a software project.

    Signup and view all the flashcards

    Architectural Design

    The highest level of abstraction in software design, outlining the overall structure and components of the system.

    Signup and view all the flashcards

    Module Design

    A design level that focuses on specific modules and their interactions within the software.

    Signup and view all the flashcards

    Detailed Design

    A design level that specifies the internal working of each module, including data structures and algorithms.

    Signup and view all the flashcards

    Pure Function

    A function that always produces the same output for a given input and doesn't modify any external data.

    Signup and view all the flashcards

    Pre-conditions

    Conditions that must be true before executing a function.

    Signup and view all the flashcards

    Post-conditions

    Conditions that must be true after a function completes execution.

    Signup and view all the flashcards

    Function Signature

    A declaration defining the type, name, input arguments, and output of a function.

    Signup and view all the flashcards

    Axiomatic Specification

    Utilizing statements in function specifications to ensure correctness and maintainability.

    Signup and view all the flashcards

    High-Level Design

    High-level design breaks down the abstract system into smaller, interacting subsystems and modules. It focuses on how the system can be implemented in modular form.

    Signup and view all the flashcards

    Modularization

    Modularization is splitting a software system into independent units called modules that perform specific tasks. Each module can be built and tested separately.

    Signup and view all the flashcards

    Advantages of Modularization

    Smaller components are easier to maintain, the system can be divided by function, desired levels of abstraction can be achieved, reusable modules can be created, concurrent execution is possible, and security is improved.

    Signup and view all the flashcards

    Sequential Execution

    Software traditionally ran in a sequential manner, executing instructions one by one. This means only one part of the program was active at a given time.

    Signup and view all the flashcards

    Concurrency

    Concurrency splits software into independent units of execution (like modules) and runs them in parallel. This allows multiple parts of the code to execute simultaneously.

    Signup and view all the flashcards

    Benefits of Concurrency

    Concurrency in software improves performance by allowing multiple parts of the program to execute simultaneously, making better use of available resources.

    Signup and view all the flashcards

    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