The Role of Testing in a Software Project

In: Computers and Technology

Submitted By kinahsama
Words 979
Pages 4
Testing is performing all of the following:
• Providing software with inputs (a “workload”)
• Executing a piece of software
• Monitoring software state and/or outputs for expected properties, such as:
– Conformance to requirements
– Preservation of invariants (e.g., never applies brakes and throttle together)
– Match to expected output values
– Lack of “surprises” such as system crashes or unspecified behaviours
General idea is attempting to find “bugs” by executing a program.

Testing terminology
Workload:
• “Inputs applied to software under test”
• Each test is performed with a specific workload Behaviour:
• “Observed outputs of software under test”
• Sometimes special outputs are added to improve observability of software (e.g., “test points” added to see internal states) Oracle:
• “A model that perfectly predicts correct behaviour”
• Matching behaviour with oracle output tells if test passed or failed
• Oracles come in many forms:
– Human observer
– Different version of same program
– Hand-created script of predicted values based on workload
– List of invariants that should hold true over behaviour

What is a bug?
A “bug” can be one or more of the following:
• Failure to provide required behaviour
• Providing an incorrect behaviour
• Providing an undocumented behaviour or behaviour that is not required
• Failure to conform to a design constraint (e.g., timing, safety invariant)
• Omission or defect in requirements/specification
• Instance in which software performs as designed, but it’s the “wrong” outcome
• Any “reasonable” complaint from a customer
• … other variations on this theme …

The goal of most testing is to attempt to find bugs in this expanded
Sense.
Types of testing
Smoke testing
• Exploratory testing
• Black box testing
• White box testing

Testing situations:
• Unit test
• Subsystem test
• System…...

Similar Documents

Software Project

...Global Bank ATM PROJECT REVISIONS HISTORY TABLE Date Version Description Author February 20, 2013 ATM se5 Software development for ATM machines Sindiso Suzzy Moyo 1. Project Plan Overview Project Goals 1.1 Project Summary 1.1.1 Purpose, Scope, and Objectives This project was designed to study the requests, designs, implementation and maintenance of the software for both the bank server and the ATM client devices which will include the Global Bank ATM network, in accordance with the requirements specified by the client. Every activity directly linked to the purpose is measured to be in scope. Any activity that is not directly related to the purposes is obviously considered out of scope. Let take for instance, issues concerning: The availability of ATM hardware and network are out of the scope of the project. Please find below the objectives of the project are: •Project to be completed by project due date • Project to be completed within its budget • All deliverables will be provided as identified in section 1.1.3 by the project due date •All stated request should be fulfill as in the SRS of the software product deliverable, and it falls within any of the below categories — The modification of Global Bank customer database — The interface with the bank’s computerized account system — ATM transactions of customers — Customer ATM statement — Periodic numerical report of ATM operations 1.1.2 Assumptions and Constraints This project is planned with......

Words: 808 - Pages: 4

The Role of Software Testing in the Development of Quality Software

...The Role of Software Testing in the Development of Quality Software MehwishZulfiqar 13414, MS (CS) Iqra University, Islamabad. Abstract: In software testing organizations, effective knowledge management of the testing process is the key to improve the quality of software testing. Quality must be built into our products and it can never be tested in after the fact. Although QA has an important role in assuring the quality of our products, their work is entirely indirect. Their role is to influence others in the organization. Testing programs are conducted to ensure that the software application meets the specifications and service level expectations of their product. Testing improves product quality. However, there is rarely enough quality control time built into development projects, and there is an endless possibility of testing that could be executed. In this article major issues are discuss that improve the quality of software and also discuss the role of software testing in the delivery of quality software product.Simply we say that process of testing is basic, but knowing what to test for is challenging for a developer. Software testing requires well-analyzed test cases and proper execution in order to find issues in the software. It also requires efficient management of the procedures. 1. Introduction: Software systems are an increasing part of life, from business applications to consumer products. Most people have had an experience with software that did......

Words: 2071 - Pages: 9

Software Testing

...Testing is a process used to help identify the correctness, completeness and quality of developed computer software. With that in mind, testing can never completely establish the correctness of computer software. [pic]There are many approaches to software testing, but effective testing of complex products is essentially a process of investigation, not merely a matter of creating and following rote procedure. One definition of testing is "the process of questioning a product in order to evaluate it", where the "questions" are things the tester tries to do with the product, and the product answers with its behavior in reaction to the probing of the tester. Although most of the intellectual processes of testing are nearly identical to that of review or inspection, the word testing is connoted to mean the dynamic analysis of the product—putting the product through its paces. The quality of the application can and normally does vary widely from system to system but some of the common quality attributes include reliability, stability, portability, maintainability and usability. Refer to the ISO standard ISO 9126 for a more complete list of attributes and criteria. Testing helps is Verifying and Validating if the Software is working as it is intended to be working. Thins involves using Static and Dynamic methodologies to Test the application. Because of the fallibility of its human designers and its own abstract, complex nature, software development must be accompanied by......

Words: 13150 - Pages: 53

Software Project Management Plan

...Software Project Management Plan August 27, 2012 IT Management System Luvianka Olivares Table of Contents Scope Statement.........................................................................................3-4 Work breakdown structure..........................................................................5 Network diagram...........................................................................................6 Risk management plan............................................................................7-10 Resource management plan..................................................................11-12 Communication management plan......................................................13-14 Scope Statement Project Name: IT Management System Project Manager: Luvianka Olivares Project Objectives: To design and install a computer network for a small business. Deliverables: Software package will manage: * Running of all computers in the business * Training and extensive end-user documentation * Technical support self-service website * Full backup process * Security of IT development tools * Project Management- Project charter, project scope statement, status reports, final project report, lessons-learned report, and any other document required to manage this project Milestones: Training digital video files Preliminary......

Words: 1828 - Pages: 8

Software Testing Myths

...Software Testing Myths Any IT professional is sure to know the different phases of the Software Development Life Cycle or SDLC, namely Requirement Analysis, Design, Construction or Coding, Testing, Implementation, Maintenance & Support - the activities carried out in each phase & their significance. But, very few agree on the importance of Software Testing phase. “Software implementation is a cozy bonfire, warm, bright, a bustle of comforting concrete activity. But beyond the flames is an immense zone of darkness. Testing is the exploration of this darkness.” - extracted from the 1992 Software Maintenance Technology Reference Guide Testing is often considered as a thankless job. While developers say with pride: "Wow!! My code is running in production", testers usually don’t say "Wow!! The code that I tested is running in production"!!! This attitude can also be justified if we consider some examples of the usual talk that goes on among colleagues/peers/friends in the IT circle, like: Mr. A: Which project are you working on? Mr. B (Tester): Currently, I’m in a Testing project. Mr. A: Oh...Umm...OK... Mr. A: Mr. C, how about you? Mr. C (Programmer/Developer): A Development & Maintenance project Mr. A: Oohh?? What technology? Which platform? What’s the project all about?? … And so on Even though there's no denying the fact that Construction/Coding is a very significant phase in the life cycle of any software product, the role of Testing as an activity should be...

Words: 1551 - Pages: 7

Software Quality Assurance and Testing Methodologies

...Title: CSC 415 / Software Engineering Date of Submission: September 20, 2013 Software Quality Assurance and Testing Techniques Subject: This memo delves into unit testing, integration testing, and other aspects of software quality assurance. Software quality assurance is essential for any business that provides products that are to be used by others. This memo serves as a documentation of software testing methodologies that support a recommendation for GF Software Solutions approach to SQA. Addressed are various components of the software development lifecycle and the different techniques that exist for their implementation. Unit tests focus on the verification of the smallest unit of software design, or the software module. Integration testing can be performed using a number of different methods including top-down, bottom-up, and big bang integration. Integration tests address problems or bugs that may occur when interfacing individual software components and building the complete system architecture. System tests are applied when the software is incorporated with other systems elements such as hardware, people, or information. Stress testing is a method of determining the stability of an application when tested beyond the bounds of normal operation. Each of the aforementioned steps is crucial to the software quality assurance procedure and is defined more thoroughly in the following sections. A critical component of software......

Words: 1958 - Pages: 8

Software Testing Overview

...Software Testing What is testing? Testing is the process of evaluating a system or its component(s) with the intent to find that whether it satisfies the specified requirements or not. This activity results in the actual, expected and difference between their results. In simple words testing is executing a system in order to identify any gaps, errors or missing requirements in contrary to the actual desire or requirements. Who does testing? It depends on the process and the associated stakeholders of the project(s). In the IT industry, large companies have a team with responsibilities to evaluate the developed software in the context of the given requirements. Moreover, developers also conduct testing which is called Unit Testing. In most cases, following professionals are involved in testing of a system within their respective capacities: Software Tester Software Developer Project Lead/Manager End User When to Start Testing? An early start to testing reduces the cost, time to rework and error free software that is delivered to the client. However in Software Development Life Cycle (SDLC) testing can be started from the Requirements Gathering phase and lasts till the deployment of the software. However it also depends on the development model that is being used. For example in Water fall model formal testing is conducted in the Testing phase, but in incremental model, testing is performed at the end of every increment/iteration and at the end the whole application is tested.......

Words: 6175 - Pages: 25

Software Testing Tools Survey

...Easynet in 2006, the idea was formed with testers and developers Nat Pryce and Steve Freeman. Concordion was then later ported and improved upon by several developers, specifically Nigel Charman, the designer of the Concordion Extensions API. The Concordion tool is available for free at concordion.org/Download.html. 2. What testing purpose does the tool serve? (i.e., what problem does it attempt to solve? How does it improve productivity?) Concordion is an open source tool that is used for the automation of Specification by Example. Using simple HTML, developers can create concrete examples in any specifications with certain commands. This allows for Concordion to check the examples against a real-life system. The specifications allow for complete cover of any behavior important to a customer. Based on this, specifications can be used as unit tests. Concordion specifications are also clear and readable so they can also serve as system documentation. This means a project’s specifications can be easy to understand for the development team, as well as anyone outside it. This would ultimately allow for a better maintenance of software quality as the software can be reviewed as a group effort. 5. What do you need to do in order to use the tool? There is ample documentation provided on the Concordion website to guide you through the install and configuration process. Concordion requires JDK5.0 and the following JARs in the......

Words: 1393 - Pages: 6

A Unified Theory of Software Testing

...A Unified Theory of Software Testing This paper presents a theory, or model, for analyzing and understanding software test techniques. It starts by developing a theory for describing analytical test techniques, such as equivalence classes, pair-wise coverage and state modeling. It then develops the theory to cover other, more heuristic test techniques. This theory states that all testing techniques are composed of a modeling schemata, one or more coverage objectives, a dispersal strategy and a theory of error. All testing techniques address a fundamental problem of testing: vastly more tests are conceivable than you could possibly run. Each technique therefore consists of a method for modeling the software in a way that allows a coverage measure to be specified and achieved and a dispersal strategy that allows this to done efficiently. Testing theory has traditionally focused on the issue of coverage and the different ways to think of it (Kaner, 101 methods for code coverage). The obverse concept is dispersal, or a method for identifying and reducing tests that are "redundant". Take, for example, the pair-wise coverage technique. This technique is often applicable when the interaction of several independent inputs or configuration parameters create more combinations than is practical to test. Suppose you have an application that supports each of the following components: DATABASE Oracle DB2 SQLServer WEB SERVER IIS Apache Netscape APP......

Words: 983 - Pages: 4

It Project Roles

...Roles and Responsibilities for IT Projects Project Title | [type the project title here] | Project Manager | | Document Version & Change History & Update Date | | | Title | Role | Name | Project Sponsor | Commissions the team to deliver the project and champions the cause throughout the project. Typically a senior member of staff with a relevant area of responsibility that will be affected by the outcome of the project. This may be a senior executive, director, or program manager. The sponsor is continually involved, including defining the project and actively reviewing the progress. | (Name of Individual) | Responsibilities | * Ultimate authority and responsibility for the success of the project. * Communicates on behalf of the project or defers to Project Manager. * Garners commitment from other key stakeholders. * Assures availability of essential project resources. * Approves the budget and decides tolerance levels. * Authorizes and approves/rejects “Project Change Requests” issues that affect Scope, Cost, Time or Quality which are outside of tolerance levels. * Leads the project steering committee. * Facilitates organizational level problem solving and ensures escalated risks/issues are resolved. * Makes key decisions on changes, risks, conflicting objectives and any other issue that is outside of the project manager's designated authority. * Negotiates a path through complex diplomatic areas of the......

Words: 1125 - Pages: 5

Software Testing Resume

... |Over 5 years of experience in Information Technology with extensive experience in performing Manual and Automated testing | | | | | |Extensive experience in testing Web and GUI based Client-Server applications by performing validation, manual as well automated testing in various | | |industry domains | | | | | |Experienced in implementing QA methodologies, Test Case Design, Test Tool Usage, Test Execution, Defect Management and Defect Tracking | | | | | |Strong experience in System, GUI, Positive, Negative, Volume, Smoke, Regression, Black Box, Unit, UAT, Functional, Integration and Stress testing | | | ...

Words: 1421 - Pages: 6

Software Project Management

...Project Management for Information Systems A refreshingly readable, realistic and relevant view of project management within the context of information systems. This comprehensive and practical book is an excellent starting point for any practicing project managers or students of Project Management for Information Systems, whether they are from a computing or a business background, at undergraduate or masters level. In this book, the practical perspective and industry experience of the authors complements the clear explanation of project management theory and methodologies. The authors strike a good balance covering both the mechanics of project management and the human factors involved and plentiful case studies, exercises and good and bad examples from real life help the reader to put the theory into context and into practice. This fifth edition has new material on: • development life-cycles and approaches (including agile approaches) • different types of IS projects and how to manage them • implementing change through information systems • updated coverage of leadership and management. Project Management for Information Systems is all you need to plan every aspect of an IS project and ensure that it is implemented on time, within budget and to quality standards. ‘This is an excellent starting point: a practical down-to-earth and comprehensive guide to many facets of IS project management. Cadle and Yeates draw on a wealth of experience in......

Words: 178628 - Pages: 715

Software Testing

...Publication House http://www.irphouse.com A Review of Software Testing Techniques Manpreet Kaur1 and Rupinder Singh2 1 Department of CSE CGC, Gharuan Mohali, India 2 CSE CGC, Gharuan Mohali, India Abstract Software testing is important to reduce errors, maintenance and overall software costs. One of the major problems in software testing area is how to get a suitable set of test cases to test a software system. We identify a number of concepts that every software engineering student and faculty should have learned. There are now many testing techniques available for generating test cases. This set should ensure maximum effectiveness with the least possible number of test cases. The main goal of this paper is to analysed and compare the testing technique to find out the best one to find out the error from the software. Keywords: Software testing; process model; testing techniques; 1. Introduction Software testing is a process or a series of processes designed to verify computer code does what it was designed to do. According to ANSI/IEEE 1059 standard [1, 2], Testing can be defined as ―A process of analyzing a software item to detect the differences between existing and required conditions (that is defects/errors/bugs) and to evaluate the features of the software item. Another more appropriate definition is this: [3] Testing is the process of executing a program with the intent of finding errors. The concept of testing is as old as coding and is change along with time.......

Words: 4928 - Pages: 20

Software Testings

...Software Testing Types: Black box testing – Internal system design is not considered in this type of testing. Tests are based on requirements and functionality. White box testing – This testing is based on knowledge of the internal logic of an application’s code. Also known as Glass box Testing. Internal software and code working should be known for this type of testing. Tests are based on coverage of code statements, branches, paths, conditions. Unit testing – Testing of individual software components or modules. Typically done by the programmer and not by testers, as it requires detailed knowledge of the internal program design and code. may require developing test driver modules or test harnesses. Incremental integration testing – Bottom up approach for testing i.e continuous testing of an application as new functionality is added; Application functionality and modules should be independent enough to test separately. done by programmers or by testers. Integration testing – Testing of integrated modules to verify combined functionality after integration. Modules are typically code modules, individual applications, client and server applications on a network, etc. This type of testing is especially relevant to client/server and distributed systems. Functional testing – This type of testing ignores the internal parts and focus on the output is as per requirement or not. Black-box type testing geared to functional requirements of an application. System testing – Entire system......

Words: 6035 - Pages: 25

Agile Software Testing

...An Introduction to Agile Software Testing 1 Course Objectives After this seminar, you will:  Understand what an Agile project  Know the differences between Kanban and Scrum  Understand what and how a tester performs the testing in Scrum process  Understand what testing techniques required for a tester in Agile  Know what challenges of Agile Software Testing 2 Course Content  What is an Agile Project?  What are Scrum and Kanban?  What are Scrum & Kanban Processes?  What are testing Activities in Scrum?  What are Agile Testing Techniques? 3 What is an Agile Project? All projects are “agile”, but some agile projects are more agile than others How to “agile” a project An Agile purist would point to agile manifesto and its principles Individuals and interactions over process and tools  Working SW over comprehensive documents In practice, “Agile” labeled to projects that its delivery of each increment taking no longer 4 weeks Is it met level of agility?  Customer collaboration over contract negotiation  Responding to change over following a plan 4 Agile Project An introduction of Scrum and Kanban 5 What is Scrum? Scrum in 100 words • Scrum is an agile process that allows us to focus on • • • delivering the highest business value in the shortest time. It allows us to rapidly and repeatedly inspect actual working software (every two weeks to one month). The business sets......

Words: 3303 - Pages: 14