1/71
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
Software testing
It is the activity of executing a system or component under specified conditions, observing or recording the results, and evaluating some of the aspects of the system or component.
Software testing
It is a software quality approach used for detecting defects in software and conforming that requirements are correctly implemented before deploying the software.
identify and reveal
Direct objectives: To ______ and _______ as many errors as possible in the tested software
Acceptable
Direct objectives: To bring the tested software to an __ level of quality after correcting the identified errors and retesting – This means that a certain percentage of bugs tolerable to users will remain unidentified upon installation of the software.
tests
Direct objectives: To perform the required ______ efficiently and effectively and within the budgetary and scheduling limitations
degree of confidence
Direct objectives: To establish with a _ __ _ that the software package is ready for delivery or installment at customer premises
software errors
Indirect objectives: To compile a record of _______ _______ for use in software process improvement by corrective and preventive actions and for decision-making
Unit Testing
This is performed by the developer on the completed unit or module of the software and before its integration with other modules. Unit tests are technical tests of the code, and these require writing test harnesses and creating test data.
Unit Testing
The developer writes these tests, and the objective is to determine if each unit of the software performs its expected output. The unit test case is generally documented, and it should include the test objective and the expected results.
Integration Testing
The project team performs this type of testing on the integrated systems once all of the individual units work correctly in isolation. The objective of this test is to verify that all of the modules and their interfaces work correctly together and to identify and resolve any issues.
Integration Testing
This test benefits from an existing enterprise architecture that provides information on all existing systems and their alignment with each other.
System Testing
This tests the functionality of an entire system together with interdependencies between system components. It may include security testing, usability testing, and performance testing.
System Testing
The objective of this test is to verify that the implementation is valid with respect to the system requirements. It involves the specification of system test cases in which the execution of the test cases will verify that the system requirements have been correctly implemented.
test group
In System Testing, A _ generally conducts this type of testing, and the system tests are traceable to the system requirements. Any system requirements that have been incorrectly implemented will be identified, and any defects will be logged and reported to the developers.
Performance Testing
The objective of this testing is to ensure that the performance of the system is within the bounds specified by the non-functional requirements. It may include load performance testing, where the system is subjected to heavy loads over a long period, and stress testing, where the system is subjected to heavy loads during a short time interval.
Performance testing
It often involves the simulation of many users using the system as well as the measurement of the response times for various activities. Test tools are employed to simulate a large number of users and heavy loads.
Acceptance Testing
System users or customers perform this testing before accepting the product. The customers will see the product in operation and will determine whether or not the system is fit for purpose.
Acceptance Testing
The objective of this test is to demonstrate that the product satisfies the business requirements and meets customer expectations.
Unit Testing, Integration Testing, System Testing, Performance Testing, Acceptance Testing
The following types of testing may be conducted: HINT: UT IT ST PT AP
Requirements analysis and specification
The objective of testing in this phase is to evaluate the gathered requirements. Each requirement should be evaluated to ensure it is correct and testable, and the requirements together are complete. Software inspections and prototyping can be employed to ensure the good quality of requirements.
Requirements analysis and specification
The activities to perform testing in this phase are to prepare for system testing and requirements analysis activities. The test plan should include the scope and objectives for testing at each phase, and the testing requirements should describe support software needed for testing at each stage.
System and software design
This phase partitions the requirements into hardware or software systems and builds the overall system architecture. The objective of testing in this phase is to verify the mapping between the requirements specification and the design. Any changes to the requirements specification should be reflected in the corresponding design changes. The testing at this stage helps to validate the design and interface. The activities to perform testing in this phase is to prepare for acceptance and usability testing. An acceptance test plan should include acceptance test requirements, test criteria, and a testing method.
Intermediate design
In this phase, the software system is broken into components and then classes are associated with each component. Design specifications are written for each component and class.
Intermediate design
The objective of testing in this phase is to avoid mismatches of interfaces.
Intermediate design
The activities to perform testing in this phase is to prepare unit testing, integration testing, and system testing by writing the test plans. The unit and integration test plans are refined at this phase with information about interfaces and design decisions.
Implementation design
In this phase, the developers start writing and compiling classes and methods.
Implementation design
The objective of testing in this phase is to perform effective and efficient unit testing. Unit test results and defects should be saved and reported properly for further processing.
System deployment
This is the process of delivering a completed software product to clients. The testing activities in this phase is to perform system testing, acceptance testing, and usability testing.
System testing, Acceptance testing, Test cases
In System deployment, validates whether the software meets the functional and non-functional requirements, while __ __ can be started when the system testing is completed. _ are derived from acceptance test plans and test data set up.
Requirement analysis and specification, System and software design, Intermediate design, Implementation design
The common phases of a software development process are the following: HINT: RAaS SaSD IntD ImpD SD
Test Case
A test case or test scenario is a software artifact with a set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path to verify compliance with a specific requirement and as documentation for a test item.
Test Case
It comprises user inputs that are provided to the application and the procedure for executing the test case during the test.
Test Case ID
a name and number to identify a test case
Objective/Description
the reason for the test (this may include the type of test)
Test Procedure
the activities or steps required on the part of the tester to carry out the test
Test data
the data to enter the system (made up of valid and invalid sets of test data)
Expected results
the expected results of the test
Actual results
a placeholder for recording the actual result as the test case gets executed.
Status
determines whether the test was a Pass or Fail. The status can also be Not Executed.
Remarks
any comments on the test case or execution
Administrative details
may include the name of the tester carrying out the tests, date of execution of the test, the environment in which the test was executed such as hardware and software.
Unit testing
It is the activity of writing code that tests other codes. This test focuses on a single unit of the software system, which can be modules such as methods, class, and interface.
Unit testing
It is also a source code that can be compiled and executed.
reports
As each unit test runs, it _______ the test’s success or failure with a simple true or false. If all of the unit tests pass, the production code that they test is considered to be working—meeting its requirements. If even a single unit test fails, the production code overall is deemed not to be meeting its requirements.
Developers
They perform unit tests before writing any production code to create a safety net to catch any subsequent errors when the code changes. If a unit test transitions from a passing state to a failing state, this means that the last change that ___ made will be responsible for breaking the code.
feedback loop
The process of writing unit tests and then improving code toward better design creates a positive __ ______ whereby the code quality increases while implementing new requirements.
test cases
In unit testing, _ are used to evaluate the input and expected output of the unit.
White-Box Testing
This testing approach is used to verify the internal logic and program statements of components or software. It involves stepping through every line of code and every branch in the code.
Knowledgeable
In White-Box Testing, the tester should be _ in the software programming language and should understand the structure of the program to perform this test. Then,s/he can look inside the class to review the code itself. The tester will insert a set of input through the code and compare the outputs from the expected results. This testing approach ensures that all program statements and all control structures are tested. Integrated Development Environments (IDEs) contains tools that perform white-box testing.
Black-Box Testing
In this testing, the tester derives tests from external descriptions of the software, including specifications, requirements, and design. This test is concerned with the inputs and outputs of the system where a set of input is inserted to the software’s user interface, and the outputs delivered by the software are compared with the expected outputs.
Black-Box Testing
The tester focuses on whether the class or module meets the requirements stated in the specifications.
user interface
Black-box testing is performed from the _________ of the software. It invokes the program, gives the necessary inputs to the software, then processes the test data and user inputs to generate outputs, which can be compared with the expected outputs to determine whether the software functioned correctly or not. The effectiveness of black-box testing depends on the design of test cases. If the test cases were extensive, then the testing would also be extensive and detect more defects in the software.
White-Box Testing, Black-Box Testing
There are two (2) approaches to unit testing: HINT: WBT BBT
manually or automatically
Unit testing can be performed _____ or ________ using unit testing tools or frameworks.
JUnit and TestNG
These are open-source unit testing frameworks designed for Java programming language. The JUnit unit testing framework supports test-driven development and can be run as stand-alone Java programs or within an IDE.
NUnit
This is an open-source unit testing framework for all .NET languages.
JUnit, TestNG, NUnit
Tools for unit testing: HINT: JU TNG NU
Test-Driven Development
The _____ _____________ ____________ is an iterative process where tests for the code are written before writing the code. The application is written with testability in mind, and the developers must consider how to test the application in advance.
Test-Driven Development
This approach forces the developer to write testable code.
unit tests
In TTD, The _ are used as a method for deriving the design of a component in an iterative process. The end result of the process is a completely functional component and a set of unit tests to verify that functionality. These same unit tests can be used when further modifications are made to the component to ensure the new modifications do not change the current functionality.
Generate
The test-driven development is intended to __ just enough design to pass the unit tests and prevent over-reengineering the code architecture.
Software deployment
It is the process of delivering a completed software product to clients. This involves packaging, testing, distributing, and installing the software product. Software files can be deployed manually or through automated deployment tools.
Automation
This eliminates the manual tasks of deploying software products. These tools perform tasks such as bug detection, patch protection, performance testing, and code analyzing.
Security
It manages the permission settings of users and groups who can access the information in the software.
Updates
These automate system updates, scan vulnerabilities, and practice regular patch management of latest software versions across applications. Software patching involves acquiring, testing, and installing the code – known as a patch – into an executable program to provide an update, fix, or improved version of the program or its supporting data.
Monitoring
It monitors and analyzes the activities and interactions of the software users. This helps in optimizing the performance and eliminates issues in the software before they spread in the entire network.
Automation, Security, Updates, Monitoring
The deployment tools are used to automate deployment tasks and are designed with the following features: HINT: A S U M
Jenkins
It is a self-contained, open-source automation server that can be used to automate all activities related to building, testing, and delivering or deploying software. This can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed. Jenkins’ functionalities can be extended through the installation of plugins in IDEs.
Octopus Deploy
This automated deployment tool is compatible with ASP.Net, Java, Node.js, and Windows services, as well as various script languages and database types. This is designed to automate application deployments in the cloud, corporate data center, and on-site.
Bamboo
This offers support for the delivery aspect of continuous delivery. Deployment projects automate the releasing into each environment while letting the project team control the flow with per-environment permissions. This supports real-time monitoring across all tools and flag errors of software as soon as they occur.
SolarWinds Patch Manager
This is an automated patch management software for Microsoft servers, workstations, and third-party applications. This facilitates easier patching, reporting, and information gathering for servers and workstations, and allows the project team to manage patch deployments with advanced scheduling and rebooting across servers and workstations.
Jenkins, Octopus Deploy, Bamboo, SolarWinds Patch Manager
Some of the commercially available deployment tools are as follows: HINT: J OD B SWPM