Software Testing (Definitions and Terms) – part 1

Use Case

A use case is a technique to capture the functional requirements of a system. It uses actors/roles and events to represent business functionality.

use case

use case

Use cases provide a description of interaction between business roles and the system under test. Use cases utilize “actors” to represent the initiator role which interacts with the system. These actors can be end users, other systems, or hardware. A use case shows a series of events or actions which are executed by the actor. From a software testing perspective, use cases provide a firm foundation for how tests should be designed to validate business functionality.

Test Case

A test case is a set of conditions and variables built to determine if software meets expected criteria.

test case

test case

Traditional test cases are built from formal software requirements and are used to measure if the product meets the business needs. The most optimal situation calls for test cases to built from established use cases in order to cover business flows of the software.

Test Script

Test scripts are test cases are manual or automated.

test script

test script

A test script is often interchanged with the term test case in many organizations. The differentiator with test scripts is that they can be manual or automated tests. Software testing organizations generally dedicate particular testers to develop automation testing programs which are called test scripts.

Test Suite

A test suite, or validation suite, is a collection of test cases designed to conduct and validate a business process.

test suite

test suite

The concept of a test suite arises when testers feel a need to combine several test cases in order to complete a business process (also known as a business function). Software testers use the results of these test suites to report the stability of business processes. Test suites are an important component of a software tester’s arsenal.

Defects

A software defect is generally defined as a discrepancy between established software requirements and software functionality.

defect

defect

Software issues are commonly referred to as defects. From a software testing perspective, a defect is loosely defined as a discrepancy between software requirements and software functionality. There can be many types of defects other than those related to testing. For example, a software requirement can not match the needs of the business and it would generate a defect in the requirements. Defects are often managed in a defect management system that allows developers and testers to enter, assign and prfioritize them. These systems can also generate reports to measure the quality state of the software.

Benchmark

A benchmark is a standard by which something is evaluated or measured.

benchmark

benchmark

A benchmark in the SDLC consists of measuring a set of activities or data in order to determine improvement. An example of a benchmark is the STLC is taking a snapshot of the number of critical defects within software build. The benchmark could determine if future software builds are better or worse than the one measured.

Reference: Introduction to Testing, HP Software University Student Guide.

3 simple steps for creating forms that are accessible

html5-css-javascript

html5-css-javascript

Placeholders are not labels.

Don’t count on the placeholder attribute as a label – it’s just there to suggest a possible value. Browsers and screen readers do not consistently support the placeholder attribute, and it’s also ignored when the input has received content.

Multi-part inputs

Many developers ignore labeling on multi-inputs. Users tend to put their entire phone number in the area code field and are confused by following inputs. This example uses a fieldset and legend to group the phone number sections. Use the title attribute as the legend already provides a visual references.

What’s next?

Let the user know where they are in a multi-part form, and how many parts are left – this will help your new visitors, as well as those with cognitive disabilities. Amazon customers know how many steps are left before purchasing their next cat toy.

 

Introduction to Software Testing

What is Software Testing?

Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. http://en.wikipedia.org/wiki/Software_testing

Software testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results. http://users.ece.cmu.edu/~koopman/des_s99/sw_testing/

In general, software  testing verifies that software behaves according to a predefined set of requirements. For example, if an application is defined to search for a term on the internet, a software test would verify the appropriate search results are returned. Software testing is a process. It is a methodical series of techniques to ensure quality and repeatability.

Who typically does software testing?

  • Software developers
  • End Users
  • Business Analysts
  • Support Staff

In some organizations, two groups perform software testing. Software developers and end users.

  • Software developers are the writers of the software program and understand the inner-workings. They typically validate their area of expertise and the “code” level using basic sanity testing.
  • Business Analysts are individuals who are familiar with the business processes (or business functions) and tend to validate the business needs are met with the software from their perspective.
  • End users are the users of the software. They use the software for day-to-day activities and “test” the application simply by using it for its purpose. If an issue or discrepancy is found in the software, in the end users would report it and solicit feedback through various mechanisms.
  • Support staff are responsible for supporting the end users and/or customers. They report issues found by end users and customers through various feedback mechanisms and also provide valuable feedback on steps to reproduce.

Who should do software testing?

Software testing, like software development, is a profession.

  • Software testers employ unique skill sets to ensure software quality
  • Certifications level were created by the International Software Testing Qualifications Board (ISTQB)

If developers end users test based on their own needs, who’s going to represent the business? Who is going to make sure the business requirements are met? Who is going to manage and mitigate risk when it occurs? The answer it software testers.

Software testers should have some technical skill coupled with a business mentality. To perform testing the right way (not through trial and error), it requires time and money. Time and money are not always readily available to a majority of companies.

software testing

software testing

Reference: Introduction to Testing, HP Software University Student Guide.