Software Testing Fundamentals

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

What is the primary goal of software testing?

  • To ensure the software is visually appealing to users.
  • To reduce development costs by identifying reusable components.
  • To accelerate the software development lifecycle.
  • To verify that the software product aligns with expected requirements and is free from defects. (correct)

What aspects does software testing typically evaluate?

  • Only the efficiency of the software's algorithms.
  • Only the correctness of the software's calculations.
  • Only the security and reliability of the software.
  • Correctness, completeness, security, quality and reliability. (correct)

How does early software testing contribute to a project's success?

  • Ensures that marketing strategies are aligned with product capabilities.
  • It helps to allocate resources more efficiently.
  • Establishes a baseline for future performance improvements.
  • Uncovers problems before a product goes to market, allowing for timely feedback and resolution. (correct)

What is the main purpose of debugging in software development?

<p>To locate programming faults in a program. (C)</p> Signup and view all the answers

Which option states what software testing can achieve?

<p>Show errors in coding, measure performance, and indicate quality. (C)</p> Signup and view all the answers

Which is NOT typically a role found on a software testing project?

<p>Marketing Manager. (B)</p> Signup and view all the answers

According to the content, what should be tested in software development?

<p>Everything if you are concerned about it being correct. (A)</p> Signup and view all the answers

In software testing, what is the focus of 'analysis'?

<p>Evaluating if the relationships are really present in the problem and if all requirements can be met with the model. (B)</p> Signup and view all the answers

What are the three main types of software testing?

<p>Functional, Non-Functional, Maintenance. (D)</p> Signup and view all the answers

Which of the following testing types is categorized under Functional Testing?

<p>Smoke Testing. (D)</p> Signup and view all the answers

What is the primary objective of Unit Testing?

<p>To check that low-level modules work in isolation. (B)</p> Signup and view all the answers

What is the role of a 'test harness' in software testing?

<p>To automate the execution of test cases, compare outcomes, and generate reports. (A)</p> Signup and view all the answers

In the context of software testing, what is the purpose of 'stubs and drivers' within a test harness?

<p>To simulate missing components or dependencies. (D)</p> Signup and view all the answers

After each unit has been tested, what is the next step in the testing process?

<p>Integration testing. (A)</p> Signup and view all the answers

What is the primary focus of Integration Testing?

<p>Testing whether the components communicate with each other properly and provide appropriate behavior. (B)</p> Signup and view all the answers

Which testing type validates the system's functionality, performance, and reliability?

<p>System Testing. (C)</p> Signup and view all the answers

What is a key aspect that testing strategies should aim to achieve in software engineering?

<p>Discovering faults in the software. (B)</p> Signup and view all the answers

What is an example of typographical errors that could occur in C programming?

<p>Typing <code>if (a = b)</code> instead of <code>if (a == b)</code>. (C)</p> Signup and view all the answers

What is White Box testing?

<p>Write tests for the internals of the class - the if statements, while statements, algorithms etc. (C)</p> Signup and view all the answers

Which statement best describes the boundary conditions to examine when testing for common faults?

<p>Those areas where the behaviour of the system changes dramatically from one state to another. (B)</p> Signup and view all the answers

What is the main reason why the modern method of software development encourages lots of small changes to ensure software is always kept runnable?

<p>This results in lots of testing - the only solution is to automate the process. (D)</p> Signup and view all the answers

According to the material, how can the effectiveness of software testing be maximized?

<p>By combining a number of methods, you can get extremely close (99%). (B)</p> Signup and view all the answers

What is a valid reason provided in the materials on why companies separate the role of testing from that of developer?

<p>people are blind to the problems in their own code. (C)</p> Signup and view all the answers

What considerations are an important step in determining how much testing should be conducted?

<p>The testing scope is determined by establishing release criteria. (A)</p> Signup and view all the answers

When establishing release criteria, what should be ensured about the criteria?

<p>That they are SMART (Specific, Measurable, Attainable, Relevant, Trackable). (E)</p> Signup and view all the answers

Which statement best summarizes the key points about software testing?

<p>Testing is never a substitute for developing software with a good process. (D)</p> Signup and view all the answers

What are the five steps to Write Test Scenarios? Put these in the best overall order:

  1. Read the Requirement Documents
  2. Figure out possible users actions and objectives
  3. Review by supervisors and stakeholders
  4. List out different test scenarios
  5. Create a 'traceability matrix'

<p>1, 2, 4, 5, 3 (D)</p> Signup and view all the answers

What is the meaning of Software Verification?

<p>The process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. (B)</p> Signup and view all the answers

What does a Test/QA Team Lead have as their day-to-day tasks?

<p>Is responsible for leading a team that ensures software quality through testing. (C)</p> Signup and view all the answers

When should 'Documentation' be tested?

<p>At any point when you are concerned about it being correct! (C)</p> Signup and view all the answers

What should your reaction be as a developer, when the Tester finds issues in your work?

<p>Be happy they found it!, it is much better to be found now, instead of Production. (A)</p> Signup and view all the answers

What would be the actions taken when performing Black Box testing?

<p>Testing from an external or end-user perspective. (A)</p> Signup and view all the answers

What is a key characteristic of Boundary Conditions when testing for common faults?

<p>The areas where the behavior of the system changes dramatically from one state to another. (B)</p> Signup and view all the answers

What is the key benefit that Automated Testing usually provides?

<p>Identifies issues a lot earlier in the development lifecycle. (B)</p> Signup and view all the answers

According to the material that was provided, what are some of the top aspects of a 'well-defined process'?

<p>The team must not be afraid to re-write code to ensure that the client can see progress quickly. (D)</p> Signup and view all the answers

What is the role performed by 'Stubs and Drivers'?

<p>Simulates software components or the dependencies. (C)</p> Signup and view all the answers

In software testing, what is the primary purpose of 'Fault Tracking'?

<p>To record what their status is, and identify what versions of the software they occur in. (B)</p> Signup and view all the answers

Flashcards

Software Testing

A method to check if software matches expected requirements and is defect-free.

Purpose of Testing

Process to identify correctness, completeness, security, quality, and reliability of software.

Importance of Early Testing

Uncovers problems before a product goes to market, addressing flaws and vulnerabilities.

Fault

A difference from expected behavior.

Signup and view all the flashcards

Defect

The cause of the fault.

Signup and view all the flashcards

Debugging

Locating and fixing programming faults.

Signup and view all the flashcards

Unit Testing

Validates individual software components in isolation.

Signup and view all the flashcards

Module Stubs

Simplified version of a module used in unit testing.

Signup and view all the flashcards

Test Harness

Collection of tools to automate software testing.

Signup and view all the flashcards

Integration Testing

Tests if integrated components communicate correctly and provides appropriate behavior

Signup and view all the flashcards

System Testing

Tests all components together as delivered to the customer.

Signup and view all the flashcards

Best Tests

Discovering faults in software.

Signup and view all the flashcards

Typographical Errors

Errors related to mistyping or wrong symbol selection.

Signup and view all the flashcards

White Box Testing

Testing internals and algorithms of a class.

Signup and view all the flashcards

Black Box Testing

Testing modules based on the service they offer, ignoring internal implementation.

Signup and view all the flashcards

Boundary Conditions

Areas where system behavior changes; high error potential.

Signup and view all the flashcards

Benefits of small changes

Ensure software is always runnable.

Signup and view all the flashcards

Automated testing

Modern development relies on this

Signup and view all the flashcards

Release criteria

Helps address testing efforts

Signup and view all the flashcards

Testing Roles

A testing project consist of these

Signup and view all the flashcards

Fault Tracking

A way to keep up with the status of errors

Signup and view all the flashcards

Study Notes

  • Software Testing checks if the software matches expected requirements and is defect-free.
  • Testing involves using manual or automated tools to evaluate software/system components.
  • The purpose of software testing is to identify errors, gaps, or missing requirements.
  • Testing helps identify correctness, completeness, security, quality, and reliability to determine if software is useful for its intended purpose.

Testing Tasks

  • Determine if documentation, processes, and programs work as expected.
  • Testing can show the presence of bugs but not the absence of them.
  • Companies can save millions per year via good testing techniques and QA processes.
  • Early software testing uncovers problems before a product goes to market.
  • Early detection of architectural flaws, poor design decisions, invalid/incorrect functionality, security vulnerabilities, and scalability issues is ideal.
  • Faults are differences occur from expected behavior; they are caused by defects in software.
  • When a fault is discovered, classify its urgency based on whether colors are not displayed correctly or a cash machine is dispensing incorrect amounts.
  • Locating a programming fault involves debugging the program.
  • The next step may to ignore it, realize the requirements are incorrect or fix it.
  • Testing can reveal errors in coding, increase confidence in software, measure performance, and indicate quality.
  • Testing is not a substitute for quality, but it reveals poor quality systems.

Testing Activities

  • Software Verification
  • Validation and Testing
  • Black Box Testing
  • White Box Testing

Testing Roles

  • Tester
  • Test Designer
  • Test/QA Team Lead
  • Test Build Manager
  • Test Configuration Manager
  • Test automater/automation developer
  • Test administrator
  • All aspects of a computer system should be tested
  • Testing of aspects include translations, installation, fault logging & tracking, payment systems and backups!
  • Requirements regarding reality, previous systems (feasibility analysis), self-consistency, and user feedback needs tested
  • Analysis includes relationships in the problem and ability to meet all requirements with the model.

Design Considerations for Testing

  • Determining if the system can be implemented within given time constraints
  • Assessing if the design can be built within budget
  • Implementation entails confirming each class works as specified and that the classes work together properly
  • Documentation testing involves verifying user understanding and matching functionality of the system

Types of Software Testing

  • Functional Testing
  • Non-Functional Testing
  • Maintenance Testing

Functional Testing Sub-Types

  • Unit Testing
  • Integration Testing
  • Smoke Testing
  • UAT (User Acceptance Testing)
  • Localization
  • Globalization
  • Interoperability

Non-Functional Testing Sub-Types

  • Performance
  • Endurance
  • Load
  • Volume
  • Scalability
  • Usability

Maintenance Testing Sub-Types

  • Regression
  • Maintenance

Unit Testing Explained

  • Checks if low-level modules work in isolation.
  • Modules typically interact with other modules, which requires creating a framework to support them.
  • Replace modules can be replaced with simple versions which are for easy coding, which return values to test sufficiently.
  • Code is required to call the module and is called a test harness.

Test Harness Elements

  • Test Execution Engine: Runs test cases automatically.
  • Test Data Management: Provides necessary input data.
  • Logging and Reporting: Captures test results and logs issues.
  • Stubs and Drivers: Simulates missing components or dependencies.
  • Configuration Management: Ensures consistency in test environments.
  • PyTest test harness example: If a function adds two numbers, then the harness automates testing, logs results, and reports failures.

Integration Testing

  • After unit tests, units are combined to form larger groups
  • Integration tests see if components communicate correctly and provide correct behaviour
  • Establish pre/post conditions/invariants
  • Identify requirements that components must satisfy.

System Testing

  • System testing tests components delivered to customer
  • These tests are based against use cases and scenarios created during requirements.
  • System testing validates the system's functionality, performance, and reliability across the entire system, including its components and interfaces.
  • Focus involves checking system-wide issues, performance bottlenecks, and usability problems on real-world user conditions.

Integration Testing vs. System Testing

  • Integration tests focus on component interactions, using simulated environments, to verify data exchange correctness
  • Software errors often arise from not knowing the language (i.e., not understanding “break”), typographical errors, problem solving logic or poor results.
  • Errors also arise from critical input values, data structure defects, or misinterpretation of specifications.
  • When computing with floating point numbers or static code checking tools, errors can occur.

White Box vs Black Box Testing

  • White box testing involves writing tests for internal aspects of the class, such as if statements and algorithms.
  • White box testing involves code reviews or pair programming.
  • Black box testing ignores internal implementation details
  • Black box testing concentrates on the service that the modules offer and tests sequences of calls into the object.
  • Testers should not have information on the internal system workings.
  • Black box testing focuses on the behavior of the software from an external or end-user perspective.
  • White box testing looks at branching points where decisions are made, like if statements, loops, or switch statements.
  • Boundary conditions for variables, such as testing for a month value outside of range, should be tested.

Testing Common Faults

  • "Bugs lurk in corners and congregate at boundaries"
  • Boundary conditions are where the behaviour of the system changes dramatically from one state to another.
  • Test cases should ensure "a" is set to values above and below boundary conditions.
  • Modern methods utilize lots of small changes which ensures software is always runnable.
  • Modern methods encourage automated testing.

Testing Realities

  • Unit testing has limits of defects discovered.

Release Criteria

  • Testing is never a substitute for developing software with a good process, to identify a program's divergence from requirements
  • Not all faults need to be fixed.
  • Automated testing simplifies testing and development.
  • Companies separate testing team roles since developers are blind to problems.
  • Testers often work under extreme pressure as the last line in the product release cycle.

Testing Roles Breakdown

  • Tester: Executes tests and reports results.
  • Test Designer: Creates test cases and scenarios.
  • Test/QA Team Lead: Manages the testing team.
  • Test Build Manager: Oversees the test build process.
  • Test Configuration Manager: Manages test environments.
  • Test automater/automation developer: Develops automation scripts.
  • Test administrator: Manages test infrastructure.
  • Correct faults need to be identified, recorded and tracked on which version of the software they occur.
  • Fault tracking software helps automate things with things like Roundup and TestTrackPro

Release Criteria Factors

  • Define criteria to check before agreeing to release, including defining success, providing customer value, matching company needs, and using SMART criteria (Specific, Measurable, Attainable, Relevant, Trackable).
  • Ensure "SMART" criteria is similar to requirements.
  • Example criteria states all code must compile, no high-priority bugs, documentation for all bugs, QA tests, and decreasing defects.

Test Scenario Generation Steps

  • Read requirement documents related to the System Under Test (SUT),.
  • Figure out user actions/objectives for each requirement.
  • Determine technical aspects and system abuse scenarios.
  • List test scenarios to verify features and create a traceability matrix to ensure each requirement has a test scenario.
  • Have scenarios reviewed by a supervisor and stakeholders.

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Software Testing Fundamentals
16 questions

Software Testing Fundamentals

DetachableSanctuary378 avatar
DetachableSanctuary378
Software Testing Fundamentals
42 questions
Software Testing Fundamentals
42 questions
Use Quizgecko on...
Browser
Browser