Software Testing and Deployment

full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/50

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

51 Terms

1

Software testing

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.

2

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.

3

o   To identify and reveal as many errors as possible in the tested software
o To bring the tested software to an acceptable 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.
o   To perform the required tests efficiently and effectively and within the budgetary and scheduling limitations
o   To establish with a degree of confidence that the software package is ready for delivery or installment at customer premises

What are the (4) four direct objectives of software testing?

4

o   To compile a record of software errors for use in software process improvement by corrective and preventive actions and for decision-making

What is the indirect objective of software testing?

5

Unit Testing
Integration Testing
System Testing
Performance Testing
Acceptance Testing

What are (5) five types of software testing?

6

Unit

Testing

This is performed by the developer on the completed unit or module of the software and before its integration with other modules. These tests are technical tests of the code, and these require writing test harnesses and creating test data. 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.

7

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. This test benefits from an existing enterprise architecture that provides information on all existing systems and their alignment with each other.

8

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. 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.
A test group 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.

9

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.
This testing 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.

10

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. The objective of this test is to demonstrate that the product satisfies the business requirements and meets customer expectations.

11

Test process in software testing

To ensure high quality in software products, integrate software testing into the software development process. Testing activities begin as soon as development activities begin and are carried out in parallel with the development stages. The objective of integrating testing to software development process is to find errors at each phase and prevent these errors from propagating to other phases.

12

Requirements analysis and specification
System and software design
Intermediate design
Implementation design
System deployment

What are the (5) five common phases of a software development process?

13

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.
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.

14

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.

15

System and software design

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.

16

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. The objective of testing in this phase is to avoid mismatches of interfaces.
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.

17

Implementation design

In this phase, the developers start writing and compiling classes and methods. 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.

18

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 validates whether the software meets the functional and non-functional requirements, while acceptance testing can be started when the system testing is completed. Test cases are derived from acceptance test plans and test data set up.

19

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 cases comprise user inputs that are provided to the application and the procedure for executing the test case during the test.

20

Test scenario

What is the other term for Test case?

21

Test Case ID
Objective/Description
Test Procedure
Test data
Expected results
Actual results
Status
Remarks
Administrative details

What are the (9) nine general test case formats that can be extended and used for design:

22

Test Case ID

a name and number to identify a test case

23

Objective/Description

the reason for the test (this may include the type of test)

24

T
est

Procedure

the activities or steps required on the part of the tester to carry out the test

25

Test

data

the data to enter the system (made up of valid and invalid sets of test data)

26

Expected

results

the expected results of the test

27

Actual

results

a placeholder for recording the actual result as the test case gets executed.

28

Status

determines whether the test was a Pass or Fail. The status can also be Not Executed.

29

Remarks

any comments on the test case or execution

30

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.

31

Unit testing

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. It is also a source code that can be compiled and executed. As each unit test runs, it reports the test’s success or failure with a simple true or false.

32

White-Box Testing
Black-Box Testing

What are the two (2) approaches to unit testing?

33

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. The tester should be knowledgeable 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.

34

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. The tester focuses on whether the class or module meets the requirements stated in the specifications.

35

Black-Box Testing

is performed from the user interface 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 this 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.

36

JUnit

TestNG
NUnit

What are the (3) three unit testing tools?

37

JUnit and TestNG

These are open-source unit testing frameworks designed for Java programming language.

38

JUnit

The_ unit testing framework supports test-driven development and can be run as stand-alone Java programs or within an IDE.

39

NUnit

This is an open-source unit testing framework for all .NET languages.

40

test-driven development (TDD)

is an iterative process where tests for the code are written before writing the code. This approach forces the developer to write testable code

41

(READ-ONLY-TEXT)

(READ-ONLY-TEXT)
These are the steps of a test-driven development process:
Step 1. Write a unit test that tests the functionality to satisfy a given requirement. Run the test, but it will not even compile because there is no supporting code yet.
Step 2.  Write just enough code to compile the test successfully.
Step 3.  Run the test but it will fail because no functionality has been put in the code.
Step 4.  Write just enough code to satisfy the test.
Step 5.  Run the test. It should now pass.
Step 6. Refactor the code as necessary, verifying with tests. Refactoring is a process of improving the code without changing its external behavior.
Step 7.  Repeat all the steps by writing another test and until all requirements are coded and testable.

42

Software deployment

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.

43

(READ-ONLY-TEXT)

Software Deployment Tools
The deployment tools are used to automate deployment tasks and are designed with the following features:
Automation
Security
Updates
Monitoring
Jenkins
Octopus Deploy
Bamboo
SolarWinds Patch Manager

44

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.

45

Security

It manages the permission settings of users and groups who can access the information in the software.

46

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.

47

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.

48

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.

49

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.

50

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.

51

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