Terminology in English
Below are some terms that will help you understand the parts and exercises of the book that the software testing. They are mostly terms in software development and testing, but I have also included a few terms relating to the activities of companies.
Agile development = a way of software development where you continuously learn from the software that you have already created and decide on the following tasks based on feedback. What you considered most important in the beginning is not necessarily the most important in the end.
Algorithm = A detailed description of how you perform a task.
Artificial Intelligence = software that can independently learn as you teach it. Not only does it repeat tasks like test automation does, but it can do tasks in a new way. It can, for example, creatively combine automation tests, just like a real tester would.
Bank = a company that manages people's money. Banks help you pay for your purchases.
Black hat = a criminal who breaks into a system by exploiting security defects and misuses the information he finds, for example, by releasing it to the world or selling it.
Business = the activity of a company that its customers pay. Customers receive a product or service. The company receives money to pay its employees and owners for their time, who, in turn, use the money to live.
Code = a series of instructions that a person has written for a computer. You can create code in different programming languages, just as people can speak different languages.
Coder = the person who codes the software. Also called programmer or software developer.
Coding = a task that results in functioning software. Also, the period during which you do the coding. Also called programming. Also called software development, which is a somewhat broader term, including all the possible tasks you need to make the software work.
Company = a community of many people, which has a name, purpose, and place in the world. People work in companies and get paid in return.
Component = a part of the software or hardware. Also called a module.
Computer = the device on which the software runs. Actually, a computer is a device with a big screen and a keyboard, such as a laptop. A mobile phone is also a small computer. The car has a computer running car’s software.
Context-driven testing = the mindset that the context, or situation, affects how you test. For example, the software under construction, problems encountered, users, and the team all affect the context.
Continuous integration = you create the code in small pieces, which you immediately add to, or integrate with, existing software. At the same time, you run automated tests to immediately detect any defects in the new code or the code already completed.
Coverage = test coverage. You perform an appropriate number of different tests to examine the various options for using the software. You have to decide how good test coverage you want because there is no time to do all possible tests. You can't achieve exhaustive, complete coverage.
Data = information.
Database = the part of the information system where the information is stored.
Debugging = locating and fixing a defect.
Defect = a problem in the software code that causes a failure in software. Commonly called a bug. People sometimes call it an error, even though, strictly speaking, an error is a human act that results in a defect in the code.
Defect seeding = deliberately creating defects in the software. The idea is that once you have found all these defects, you have found all defects in the software. Defect seeding helps you decide when you have done enough testing.
DevOps = Combining software development and operations of the software. The same team builds and maintains the software.
Documentation = plans and instructions on what the software should do and how to use it.
Documentation defect = difference between the documentation and the software. The documentation explains that the software works one way, but the software actually works differently.
Emergency fix = a change that makes the software work until you do the actual fix.
Error = a human error that creates a defect in the code.
Fail = previously working hardware breaks down, and a hardware defect appears. In general, something doesn't work.
Failure = something that is malfunctioning in the software. The failure is usually caused by a software defect.
Feedback = views on what works in software and what doesn't. Everyone gives feedback, but the feedback from users is especially interesting because the software is created for them.
Fix the code = make the necessary changes, usually to the code, for it to work correctly.
Free up memory = release memory. When the software no longer needs memory to run a line of code, you need to free up memory for other uses. The release may be automatic, or you may do it on another line of code.
Functionality = what the software does. You can buy things from the online store or get money from the bank. The functionality should work well under all circumstances.
Hardware = computers, networks, and other devices that the software uses.
Heuristics = a rule of thumb on how something often works. A heuristics can say that it is worth testing with zero, as there are often defects associated with using zero in calculations. There are many heuristics.
Information system = when the software is more extensive than software for just one device, it is an information system or a system. Information systems are not stored directly on the user’s computer in their entirety. They are accessed over a network or the internet.
Information system administrator = a person who ensures that the information system operates appropriately. The administrator will fix problems and change the information system as needed. Changes can be defect fixes, but may also include new functionality that the software development team has created. Also called the operator.
Information Technology = all the things you need to run computers, including software and hardware.
Information Technology project = a collaborative process during which the team creates the agreed functionality in the software within the agreed time. You use the word sometimes to describe the work of a software development team, even without the agreed time.
Line of Code = the code consists of many lines, or rows, similarly as there are many rows of text in a book. One line can have many different instructions for your computer.
Loan = money that a bank temporarily lends to a person. The bank transfers the money to the user's account, from where the user takes the money, for example, to pay off the mortgage. The user must pay the money back to the bank later, as agreed.
Locate a defect = not only do you need to detect the defect through testing, but you also need to locate the defect to a line of code, in other words, to figure out what causes the defect.
Maintenance team = the administrators, the people who take care of the software operation when people use it. The maintenance team often tries to deal with problems on its own but can ask for help from the development team if needed. It is also called the operations team.
Memory = the memory of the computer where the software runs, similarly as a person keeps things in memory to know how to work. There is a limited amount of memory.
Memory chip = The part of the computer where the computer memory runs. Also called a memory circuit.
Memory leak = the computer runs out of memory and can no longer do new or old things.
Memory measurement software = a software used by the programmer to measure the amount of memory used. It can be a standalone utility or part of a software development environment.
Network = an information technology structure that consists of different computers that connect all devices in the network, wired or wireless. The largest of the networks is the Internet, to which almost all computers in the world are connected.
Online store = a shop accessible via a computer and the network. You buy things there that later will arrive home by mail. An online store is one kind of information system.
Performance defect = a problem with the speed of the information system. The system is running, but slower than expected or planned.
Performance testing = a type of testing that measures system speed when one or more users are using the system. Often, you use performance testing software to represent multiple users and to measure system speed.
Plan = thoughts on how to build the software. Plans can be verbal or written.
Product = the software or the information system.
Product owner = a person who asks to build a software product, or software. The product owner can also be a company that, of course, is represented by a person. The product owner is constantly updating the software requirements with the development team.
Professional tester = A person who specializes in testing and is particularly good at it.
Program = computer code that allows a person to do something, such as play a game. Also called software, even though actually many programs make up software.
Programming = a task that results in functioning software. Also, the period during which you do the programming. Also called coding. Also called software development, which is a somewhat broader term, including all the possible tasks you need to make the software work.
Programming language = an agreed way to always write software code in the same way, with the same structure, with the same words.
Quality = how well you have done something. Different people experience good quality differently.
Ready-made software = software made by someone else that you can use as a platform or component of new software. Also known as COTS, commercial of the shelf, software. Also known as third-party software.
Regression testing = tests that you run again each time you add new code to the software. This way, you determine whether the new code has broken the code that previously worked. You usually do regression testing with test automation.
Release memory = see: free up memory.
Requirements = things that the software must be able to do.
Reserve memory = when running a line of code in software, you need to reserve memory for its use. The reservation prevents another program from accessing that portion of memory at the same time.
Root cause = The original cause of the defect. The root cause can result in a large number of similar defects, so you should remove the root cause.
Safety = whether the system is safe for humans. Nobody should be injured or killed.
Security = how well you have eliminated the system security defects and prevented attacks. Also called information security.
Security defect = a vulnerability in a software that could allow an attacker to compromise your information system.
Security testing = a form of testing for security issues. The software development team can do it, but often the people who specialize in security testing do it.
Server software = a part of the information system used by all users. The server often holds all the information in the system. The server also often performs a large part of the tasks of the information system. The user interface of the information system connects to the server software.
Severity = you often classify defects by severity. A defect can be severe, which means it is expensive or very damaging. A defect can also be less severe. You must fix severe defects quickly.
Software = computer code that allows a person to do something, such as play a game. Also called a program, even though actually many programs make up software. Also, the software product.
Software architect = a person who considers and prepares software structure and technology.
Software development = all possible tasks required to make the software work. Tasks include defining requirements, coding, and testing.
Software development environment = software for software development, such as coding or testing tools.
Software development team = a group of people who build and test software together. With complex software, you have a whole team of people instead of one developer. In short, the development team.
Technical architecture = choices you make about the ready-made software used by your information system, the programming language used, and how the components of the information system connect.
Technical debt = defects that you have not fixed, emergency solutions, and other things that you should have done before but have not completed. Technical debt is costly to remove later in a project.
Test = to try, check or test with different values, in a different order, in different ways whether something works at all or how well it works. As a result of testing, you sometimes find a defect. Strictly speaking, testing will usually detect a failure in the software, generally due to a defect in the code.
Test automation = tests that you can run with test automation software, without tester involvement. The tester creates and modifies automated tests.
Test data = all numbers, text, content, images, and usernames that you use in the software during testing. The test data should correspond to real user data.
Test environment = installation of software on a computer for testing. The test environment should match the real environment of the users, but this is not always the case. You keep the test environment separate from the real environment so that users can’t access the unfinished code.
Test object = software or information system under test.
Test technique = a way in which you choose the appropriate number of tests for testing with good coverage. There are a wide variety of techniques for different needs.
Testability = how easy it is to test. The software development environment and the developers' choices affect testability, improve, or weaken it.
Tester = a person who tests. A person with testing skills. The tester can be a full-time tester, programmer, administrator, or user.
Testing defect = a defect caused by testing that does not really exist. For a tester, this kind of defect initially seems like a real defect. The defect is due to a misunderstanding, test environment, or other choices made by the tester.
Tool = software used as a tool to build software, e.g., software development environment.
Version = software or code at a given time. When you make a code change, you create a new version of the software.
Version control = a way or software that saves each addition to the code as a new copy of the software. Also called version management.
Version control defect = a defect that recurs even though the developer has previously fixed it. Version control has failed.
Update = a change to the software that is already in use. An update may be small or large. It brings defect fixes or new functionality to the software.
Usability = how easy, comfortable, or smooth the software is to use.
Usability defect = usability problem. An aspect of the software that isn’t strictly right or wrong but doesn’t satisfy all users. Something can be hard to find, learn, or use.
Usability expert = a person who specializes in designing information systems with good usability. Many times the expert also performs or directs usability testing.
Usability tester = a person who tests the information system for usability. Often a member of the software development team, or a user.
User = a person who uses the software. The software user does not need to own the software, although sometimes that is the case. Many times the employer of the person, a company, owns the software. The software company may also own the software.