Process Models and Testing Flashcards

1
Q

What are the design options for embedded systems both hardware and software.

A

App-specific software runs on general-use computers.

App-specific software runs on a combination of general-purpose computing hardware supported by application specific circuits.

Almost all of the functionality is realised in hardware.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are some hardware options

A

Hardware Options:

General Purpose computing hardware

Microcontrollers

App specific integrated circuits, and field progammable gate arrays.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What can you do with FPGAs?

A
  • Design your own CPU/memory structure
  • Add extra circuits for app specific functionality.
  • Hardware description languages

Most Popular: Verilog, VDHL

Look like programming languages but describe the functionality of integrated circuits.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a Hardware Description Language?

A

It Describes the functioning of the hardware
– The compiler creates a specification of the
required signal lines and logic gates

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What was the Traditional Design Process and its drawbacks.

A

It starts by partioning the design process into software and hardware, the software and hardware work are designed separately, then they are integrated and the final product is made.

The drawbacks are:

Late system integration

Impact of HW and SW on each other cannot be assessed easily.

Poor quality designs

May require costly late modifications

May need schedule extensions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are Hadware/Software co-design’s aims and interdisciplinary design groups.

A

Hardware/Software is the concurrent design of hardware and software.

The aims are:

-Exploit synery between hardware and software

-Optimise cost, performance, power of the product.

-Reduce time to market

—-Interdisciplinary design groups

  • Firmware, OS, and application developers.
  • Hardware developers and chip designers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the different architectural design decisions and partitioning objectives and strategies?

A

Architectural design decisions
-Type of processor, interface style.

Partitioning objectives
- Speedup, latency requirement, silicon size, cost

Partitioning strategies
- High-level partitioning by hand, computer-aided partitioning technique.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Difference between sequential development and hardware/software codesign

A

For Sequential development of hardware and software, the software team cannot start until hardware is available.

For Hardware/Software codesign. There is a shorter critical path, more options for early testing and more options for testing alternative

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is SDLC?

A

The Software Development Life Cycle is a detailed plan to describe how to develop, maintain, replace, alter and/or enhance specific software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the steps of SDLC?

A

Step 1: Planning and Requirement Analysis

Step 2: Defining Requirements

Step 3: Designing the Product Architecture

Step 4: Building or Developing the Product

Step 5: Testing the Product

Step 6: Deployment in the Market and Maintanence.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the Waterfall Model

A

The waterfall was the first SDLC Model to be used. In this model the whole process of software development is divided into separate phases.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the steps of Waterfall Model

A
  1. Requirements
  2. Analysis
  3. Design
  4. Coding
  5. Testing
  6. Maintanence
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Advantages of Waterfall Model

A

Simple and easy to understand and use

Clearly defined stages

Well understood milestones

Easy to arrange tasks.

Process and results are well documented

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Disadvantages of Waterfall Model

A

No working software is produced until late during the life cycle

High amounts of risk and uncertainty

Not a good model for complex and object-oriented projects.

Poor model for long and ongoing

It is difficult to measure progress within stages

Adjusting scope during the life cycle can end a project.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the advantages of Agile method

A

Is a very realistic approach to software development.

Promotes teamwork and cross training

Functionality can be developed rapidly and demonstrated

Resource requirements are minimum

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the disadvantages of Agile Method

A

Not suitable for handling complex dependencies

More risk of sustainability, maintainability and extensibility

Transfer of tech to new team members may be challenging due to lack of documentation.

Depends on customer interaction, so if customer is not clear, team can be driven in wrong direction.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is Sofware Testing and what can it reveal or not reveal?

A

Testing is intended to show that a program does what is intended to do and to discover program defects before being put into use.

Testing can reveal the presence of errors, not their absence.

18
Q

Factors of Verification Testing

A

Is the project being built correctly?

Ensure the software conforms to the specifications?

Absence of run-time errors.

Test cases don’t reflect typical usage, but aim at exposing defects.

19
Q

Factors of Validation Testing

A

Is the right project being built

Ensures software does what the user requires.

The requirements are realistic.

Software tests needed for every requirement and every system feature.

20
Q

What does software inspections involve as well as their characteristics?

A

Looking at the source code or UML diagrams to discover problems

Includes tool-based document/code analysis.

Applicable to incomplete code, since the program is not executed.

Also suitable for other documents, requirements, design, configuration data, test data.

Effective technique for discovering program errors.

21
Q

What does software testing include

A

It is concerned with observing product behaviour and the system is executed with test data and it’s operational behaviour is observed.

22
Q

What are the stages of testing

A
  1. Development Testing

Testing the system during development to discover bugs and defect.

  1. Release Testing

Tesitng of a complete version of the system by a separate testing team before it is released to users.

  1. User Testing

Testing by users or potential users of a system in their own environment.

23
Q

What tests does development testing consist of and explain them

A

It consists of unit tests, component tests and system tests.

Unit tests:
Individual program units or object classes are tested.

Unit tests focus on the functionality of the methods.

Component Tests:
Where several individual units are integrated to create composite conponents.

Component tests focus on testing component interfaces. Checking the behaviour of the component to see if it’s correct and checking for interface errors.

System Tests:
Where some or all components in a system are integrated and system is tested as a whole.

System testing focuses on testing component interactions

24
Q

What is Regression Testing?

A

Resgression testing checks that the code changes have not broken previously working code.

In automatic testing, regression testing is simple and straightforward but with a manual testing process it’s expensive.

All tests are rerun every time a change is made to the program. Tests must run ‘successfully’ before the change is comitted.

25
Q

What is Release Testing

A

Releasing testing is the process of testing a particular release of a system that it is intended for use outside of the development team

The primary goal of the release testing process is to convince the supplier of the system that it is good enough for use.

Release testing has to show that the system delivers its specified functionality, performance and dependability, and that it doesn’t fail during normal use.

Release testing is a black box testing porcess where tests are only derived from the system specification.

26
Q

What is the difference between release testing and system testing.

A

A separate team, that has not been involved in the system development, should be responsible for release testing.

System testing by the development team should focus on discovering bugs in the system (defect testing).

The objective of
release testing is to check that the system meets its requirements and is good enough for external use (validation testing).

27
Q

What is Requirements based testing

A

Requirements-based testing involves examining each requirement and
developing a test or tests for it.
Devise scenarios from the requirements and develop tests for these scenarios.

28
Q

What is Performance Based Testing

A

Part of release testing may involve testing the emergent properties of a system,
such as performance and reliability.

– Tests should reflect the profile of use of the system.

– Performance tests usually involve planning a series of tests where the load is
steadily increased until the system performance becomes unacceptable.

– Stress testing is a form of performance testing where the system is deliberately
overloaded to test its failure behavior.

29
Q

What is User Testing and why it’s important.

A

User or customer testing is a stage in the testing process in which users or customers provide input and advice
on system testing.

User testing is essential, even when comprehensive system and release testing have been carried out.

The reason for this is that influences from the user’s working environment have a major effect on the reliability, performance,
usability and robustness of a system. These cannot be replicated in a testing environment.

30
Q

What are the different types of User Testing and explain what occurs for each type.

A

Alpha Testing
Users of the software work with the development team to test the software at the developer’s site.

Beta Testing
A release of the software is made available to users to allow them to experiment and to raise problems that they discover with
the system developers.

Acceptance Testing

Customers test a system to decide whether or not it is ready to be accepted from the system developers and deployed in the
customer environment. This is primarily for custom systems.

31
Q

What are the stages in Acceptance Testing?

A
  1. Define acceptance criteria
  2. Plan acceptance testing
  3. Derive acceptance tests
  4. Run acceptance tests
  5. Negotiate test results
  6. Reject/accept system
32
Q

What relationship does the user have with dev team in agile methods?

A

In agile methods, the user/customer is part of the development team
and is responsible for making decisions on the acceptability of the
system

33
Q

What are some testing strategies?

A

Partition Testing is where you identify groups of inputs that have common characteristics and should be processed in the same way.

Automated Testing

Guideline-based Testing is where you use testing guidelines to choose test cases.

34
Q

What are the general testing guidelines

A

– Choose inputs that force the system to generate all error messages

– Design inputs that cause input buffers to overflow

– Repeat the same input or series of inputs numerous times

– Force invalid outputs to be generated

– Force computation results to be too large or too small

35
Q

Why are testing policies needed

A

Exhaustive system testing is impossible so testing policies
which define the required system test coverage may be
developed

36
Q

Examples of Testing Policies

A

– All system functions that are accessed through menus should be
tested

– Combinations of functions (e.g. text formatting) that are accessed
through the same menu must be tested

– Where user input is provided, all functions must be tested with both correct and incorrect input

37
Q

What is Test Driven Development ?

A
  • Test-driven development (TDD) is an approach to program development in which
    you interleave testing and code development
  • Tests are written before code and ‘passing’ the tests is the critical driver of
    development
  • You develop code incrementally, along with a test for that increment. You don’t
    move on to the next increment until the code that you have developed passes its
    test.
38
Q

What are the TDD Process Activities?

A

Start by identifying the increment of functionality that is required. This should
normally be small and implementable in a few lines of code.

Write a test for this functionality and implement this as an automated test.

Run the test, along with all other tests that have been implemented. Initially, you
have not implemented the functionality so the new test will fail.

Implement the functionality and re-run the test.

Once all tests run successfully, you move on to implementing the next chunk of
functionality.

39
Q

Benefits of TDD

A

Code coverage
– Every code segment that you write has at least one associated test, so all code written has
at least one test.

Regression testing
– A regression test suite is developed incrementally as a program is developed.

Simplified debugging
– When a test fails, it should be obvious where the problem lies. The newly written code
needs to be checked and modified.

System documentation
– The tests themselves are a form of documentation that describe what the code should be
doing.

40
Q

What does Defect Management consist of?

A

It includes bug severity and bug priority which are decided by the QA Team and PM respectively.

Bug Severity
1. Blocker: Impossible to use/test software
2. Critical: Business-critical error
3. Major: Significant error, but limited to a single aspect of the software.
4. Minor: Confusing or undesirable behaviour
5. Low: Types or problems with third-party software.

Bug Priority
1. High: Needs to be fixed ASAP.
2. Medium: Error can be fixed during the next sprint.
3, Low: Fix it later or never.