Software Testing and Deployment

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/40

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.

41 Terms

1
New cards

Software testing

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
New cards

Direct objectives

To identify and reveal as many errors as possible in the tested software

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.

To perform the required tests efficiently and effectively and within the budgetary and scheduling limitations

To establish with a degree of confidence that the software package is ready for delivery or installment at customer premises

3
New cards

Indirect objectives

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

4
New cards

Unit Testing

Type of testing that is performed by the developer on the completed unit or module of the software and before its integration with other modules

5
New cards

Unit Testing

Type of testing that is the technical tests of the code, and these require writing test harnesses and creating test data.

6
New cards

Integration Testing

Type of testing that the project team performs this type of testing on the integrated systems once all of the individual units work correctly in isolation

7
New cards

Integration Testing

Type of testing and 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..

8
New cards

System Testing

Type of testing that is tests the functionality of an entire system together with interdependencies between system components. It may include security testing, usability testing, and performance testing.

9
New cards

Performance Testing

Type of testing that the objective of this testing is to ensure that the performance of the system is within the bounds specified by the non-functional requirements.

10
New cards

Acceptance Testing

Type of testing that the system users or customers perform this testing before accepting the product

11
New cards

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.

12
New cards

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

13
New cards

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.

14
New cards

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.

15
New cards

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

16
New cards

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.

17
New cards

test case or test scenario

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

18
New cards

Test Case ID

part of test case that is a name and number to identify a test case

19
New cards

Objective/Description

part of test case that the reason for the test (this may include the type of test)

20
New cards

Unit testing

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.

21
New cards

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

22
New cards

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

23
New cards

JUnit

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

24
New cards

TestNG

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

25
New cards

test-driven development (TDD)

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

26
New cards

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.

27
New cards

Step 2

Write just enough code to compile the test successfully

28
New cards

Step 3

Run the test but it will fail because no functionality has been put in the code

29
New cards

Step 4

Write just enough code to satisfy the test.

30
New cards

Step 5

Run the test. It should now pass

31
New cards

Step 6

Refactor the code as necessary, verifying with tests. Refactoring is a process of improving the code without changing its external behavior.

32
New cards

Step 7

Repeat all the steps by writing another test and until all requirements are coded and testable.

33
New cards

Software deployment

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.

34
New cards

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.

35
New cards

Security

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

36
New cards

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.

37
New cards

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.

38
New cards

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

39
New cards

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.

40
New cards

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

41
New cards

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.