1 Abstract

In software engineering process, software testing is a final “quality gate” for an application. Most of the software projects cannot be delivered within the specific time line successfully because higher priority is set for development and as a result, priority for testing will be low. Some of the test scenarios take ample time and are too difficult to test. Moreover there is no enough time to do integrated test again after developers fix the bugs for the specific components or modules as well as higher risk for product if the time is limited. In testing, lack of the role and responsibilities make failure the project. However, this is important to understand how test management is essential for part of the software process before deliver the software to end user. This paper discuses test strategy, test plan, test design, test execution and implementation of black box testing, test management team's their roles, responsibilities and challenges of the test management throughout software development process and also cover how to reach goals and show results by defining and enforcing flexible testing processes with various techniques.

2 Introduction

Software testing is integral part of the software development life cycle (SDLC) and identifying the accuracy, correctness and efficient of the software. (Tauhida P, Scott T, George G, 2007) The objective of software testing is to find the defects of the software and provide the reliable quality for customers. Moreover conducting the testing processes the company can reduce the cost for software development as well as opportunity to deliver reliable quality products. (R.P.Mahapatra, Jitendra S, 2008)

The enterprises or organizations are depending on the reliability of software systems and it uses for business processes to support their tasks smoothly. To achieve the reliable software system for organizations, software companies are emphasizing not only on development process but also quality assurance of the software. Nowadays most of the organizations want to introduce the variety of services to their customers for fulfill customer's satisfaction. In order to increasing demand for organization, background of software processes are complex and software testing are the crucial parts of the SDLC. Besides, as the test processes are not proper apply during the development stage, company will face the problem which is more costing on development, cannot deliver on-time, and also effect quality of the software products.

The following section give black box testing technique and how to manage testing process starting from test strategy until implementation of the software.

3 What is Black Box Testing?

Black box testing is one of the software testing to test the external visible aspects of the system without knowing the internal design of the system by focusing on requirement and functionality. (Rex Black, 2007) Sometimes black box testing is known as “Opaque Testing”, “Functional/Behavioral Testing” and “Closed Box Testing”. (Nilesh Parekh)

The foundation of black box testing is based on the selection of appropriate data that are derived from the system functionality and against the functional specifications in order to test for normal and abnormal behavior of the system. Furthermore system treats as black box and only inputs, outputs result are visible. Testers determine whether output results are corresponding with inputs and test cases are derived from the requirement specification. (Jiantao Pan)

The advantages of black box testing are independent between tester and developer. Tester who can be non-technical person, do not need to concern about the inner working and implementation of system. Black box testing helps to expose ambiguities or inconsistencies in the requirement specifications after defining the test case scenario. Test case scenario can be created at the phase of requirement specification covered appropriate functional requirements. Moreover testers can determine whether the application meets the functional requirements during the testing phase.

4 What is Test Management?

Test management is process to provide organizing, collaborating and controlling of development process and manages testing team. Test management highlights strategy required for testing effort, risk mitigation, planning test activities and managing the bugs in order to achieve the software correctness, reliability and security. Test management enables the testing team to plan, develop, and execute the test activities of a project.

4.1 Test Strategy

Test strategy will give the roadmap for what need to be tested first and how to accomplish test process within the time line and also guiding how to approach the testing such as people, tools, and procedures. It also helps increase productivity.

4.1.1 Determining the software test strategy

Test strategies apply based on the system goals what testing technique should be used. Test strategy is the foundation for establishing test management, test scope, timescales, other responsibilities and resource count. (Craig & Jaskiel, 2002) Every project should implement own strategy. The following are inputs and outputs of the process. (OneStopTesting.com)

  • Make sure describe requirement of hardware, software components, and test tools.
  • Make sure describe role and responsibilities of the resources for the test and schedule constraints such as man-hours and schedules.
  • Testing methodology example: who will perform the test, who will involve the test, etc.
  • Functional and technical requirements of the application.
  • Make sure describe the system limitations.
  • Describe testing issues requiring resolution
  • Make sure describe approved and signed off test strategy document, test plan and test case.

The above figure illustrates sample of test strategy. Firstly, we have to define project scope. Project statement need to be a list of activities whether it will be in scope or out of scope such as list of software to be tested, hardware to be tested and documentation to be validated. There should do proper schedule what time is suitable, who is going to test and need to choose right people and what type of the test are suitable.

4.1.2 How to apply test strategy in black box testing

Before implementation of black box testing, good test strategy must do properly because it is guiding to achieve user goal. Black box testing is that tester can make a test without any knowledge of internal design or code such as logic or code structure. The strategy of black box testing is focused on the software requirement and functionality. When tester implements black box testing strategy, testers have to know how the system should behave in response to the particular action. There are various testing types under black box testing strategy, namely functional testing, stress testing, recovery testing, volume testing, User Acceptance Testing, system testing, Sanity or Smoke testing, load testing, Usability testing, Exploratory testing, ad-hoc testing, alpha testing, beta testing etc.

4.2 Test Plan

Test plan provide overall structure and decide how to evaluate the test results and test environment by guiding from initiation to implementation. It is highest level testing plan that encompasses the entire testing with the clearly outline the test requirements and test result to achieve the testing goal. There are four components in a master test plan, namely unit test, integration test, system test and acceptance test. IEEE 829 describes structure of test plan and detailed of the structure can be found in appendix - I.

4.2.1 “V” Model of testing between test and test plan

Objectives should be listed and specific test plan should choose base on each requirement and the user acceptance criteria by measuring the expected results for each testing. There is V model for testing approach which describes the levels and types of testing and “V” model of testing give us an idea what types of testing should to test the system, who should be involved, where it should occurs. Each development phase should be described by the specific testing methodology. Every participant has their roles and responsibilities for testing activities in order to achieve system goal. Process improvement requires enhancing the process, deliverables and metrics used in the testing. In software testing, schedule makes to estimate time for each task and the dependences for each. (Craig & Jaskiel, 2002) In this test plan state, V model is suitable for black box testing because it decides between test and test plan.

4.3 Test Design

Test design achieves creation of high-quality test cases to discover the test information that you want to test. IEEE Standard 610 (1990) defines test case is “A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement.” For the black box testing, test cases are determined from the test object's specification (Andreas S, Tilo L and Hans S, 2007). A good test case designs are suitable for the following - reasonable probability of catching error, neither too simple nor complex, not redundant with other tests and makes failure obvious. Sample test case template is shown in “6.1 Preparation for test case”.

During the creating of test cases, we have to prepare proper test data. Test data is the important part of “Test environment setup”. Moreover preparing the test data, test case will not be missed using by improper test data. (SoftwareTestingHelp.com) Preparation of test data should be knowledge based on equivalence partitioning technique, boundary value analysis which is discuss in later.

4.4 Test Execution

4.4.1 Planning Test Execution Environment

Test execution phase involves actual running of the test after test strategy, test planning and test designing are developed. Managing the test execution consists of test team and they must focus on and understand those areas which the tests are validating, coverage of requirement functionality, defect fixes are verified, and regression testing conducted within the schedule and resources. (Cynthia Lovin, Tony Yaptangco, 2006)

4.4.2 Applying test execution in black box testing

In many projects, there is not enough time to test all of the test cases. When that happens, prioritized the test cases, choose the important test cases and execute first. So that important problems are found and corrected early. (Andreas S, Tilo L and Hans S, 2007)

The aim of black box testing is to find the external behavior of the code such as incorrect or missing functionality, user interface errors, data structure error use in interfaces, behavior or performance errors and initialization and termination errors. After execution, we can determine whether applications are meets require functionality. (Laurie Williams, 2006)

4.4.3 Recommendation for test execution

According to Laurie Williams (2006), planning the test execution for black box testing must not be programmer who developed and involved in project because programmer knows what they programmed for applications.

Test environment are also important when executing the testing processes. Test environment must be segregated from the development environment. Without segregate environment tester and developer will conflict when during testing such as developer wants to integrate new features into system and tester may need stable version to complete testing. Moreover developer applies fixing bugs or other changes in development and modifies or adds new data without informing the testing team. If tester just written the defect base on the current environment, that defect may not be reproducible when developer received the defect report. (Elfriede Dustin, 2003)

5 Test Management Team

5.1.1 Define roles and responsibilities

Testing team must be properly structured with roles and responsibilities, which is prevent minimal overlap and uncertainty giving team member and duties. Test team should assign to the right people based on their skill and strengths. Tester must understand detail of problem domain to create effective test artifacts and data and implement test scripts. Elfriede Dustin (2003) explains how to get the most out of your team, by getting the right mix of people and evaluating the testers' effectiveness. The following table illustrates Elfriede Dustin's explanation how to get right people for testing team by checking their skills and responsibilities.

Role

Responsibilities

Skills

Test Manager

Representative of testing team interaction between customer

Manage test team such as scheduling, budgeting

Understand testing methodology and testing technique

Familiar with test-program and tools

Good planning and developing test goals, objectives and strategy.

Test Leader

Technical control for the test program and test approach

Manage for test team such as planning, progress status reporting etc.

Understands application business area and requirement

- Familiar with test program and test tools and technical skill

Usability Test Engineer

Responsibilities designs and develops usability testing scenarios and documentation

Understanding usability issues, skilful designing test suites and GUS design

Manual Test Engineer

Responsibilities for Designs and develops test manually procedures and cases

Understanding of GUI design, skilful software testing and designing test suites and testing techniques

Automated Test Engineer (Automater/Developer)

Responsibilities for Designs and develops test procedures

Good understanding of GUI design and skilful software testing, designing test suites

Network Test Engineer

Responsibilities for network, database, and middle-ware testing

Develop load and stress test design, case and procedures

Familiars with network, database and system administration and technical skill

Test Environment Specialist

Responsible for installing test tool, creating and controlling test environment

Maintains test database

Network, database and system administration skills

Technical skill

Test tool and database experience

Security Test Engineer

Responsible for security testing of the application

Understands security testing techniques and tool

Test Library and Configuration Specialist

Responsible for Change management, version control, maintain test-script

Network, database, and system administration, technical skills, Configuration-management tool

Table 1 - Roles and Responsibility of Test Management Team (Elfriede Dustin, 2003)

5.1.2 Motivating the test team

Test leader must know how to keep their team motivated and energize. First strategy is team work that test team might be developing relationship with the team, help team members each other and meeting must be positive and informative. The second strategy is to find bugs; tester pays attention so that tester will recognize any bugs. Peter Farrell (2008) said that “Recognizing ability is better value than a company ‘Jolly'”. Another strategy is randomizing responsibilities. For example, we should not give same test case twice to same member and make schedule for each individual to focus on strategy, process or personal discover. But we have the challenge for this strategy; we must be familiar with team member's individual personalities, strengths and weaknesses.

The following are motivated by. (Peter Farrell - Vinay, 2008)

  • Lust for power
  • Attention seeking
  • Determination to get a good product out
  • Community buzz
  • Self-aggrandizement
  • Greed

6 Implementation of Black Box Testing

Testing should be done throughout the implementation process, which is the activity to transform test conditions and logical test cases into concrete test cases. This section describes test case preparation and black box testing technique in order to implement what technique is suitable for black box testing strategy.

6.1 Preparation for test case

The formatting of test case is the important part of the black box testing. Without test cases, it is hard to determine whether testing is efficient for functional specification or not. Moreover test cases can be reusable when conduct the regression testing. Test case design should be depend on the particular application and format must be simple and clear. The following table shows sample of test case template.

Test ID

Description

Expected Results

Actual Results

1.

Precondition:

Stock balance = 30

Supplier balance = S$750

Purchase processing:

Purchase stock = 5

Total Amount = 200

After processed purchase:

Stock balance = 35

Supplier balance = S$ 950

Table 2 - Test Case Template (Laurie Williams, 2006)

The “Test ID” is the unique identifier for each test case. It can easily manage when test the large application. “Description” of test case must be clear and specific so that users can understand and easy to follow the direction of test case. Moreover we defined the “Expected Results” to pre-determine the outcome when execute the application so that users can know whether program responds properly.

6.2 Black box testing techniques

There are various techniques in black box testing, namely Equivalence Partitioning (EP), Boundary Value Analysis (BVA), Decision Table, Domain Analysis, Orthogonal Arrays, State-Transaction Diagrams, Invalid combinations and processes and so on. In this section, we briefly discuss some of the black box testing techniques. Most of the black box testing techniques are based on functional requirement test cases and also related with each others.

6.2.1 Equivalence Partitioning (EP)

In EP method, the domain of possible input data is divided into different equivalence data class. Testers can assume that the test objects data are the same for all equivalence class. Testing for one representation of equivalence data is sufficient because it is assumed that for other input value of equivalence class will not show different behavior or reaction. Subsequently testers can test correct input values as well as incorrect input values. (Andreas S, Tilo L and Hans S, 2007) Moreover this method can reduce the testing time and the total numbers of test cases. (Software Testing Help)

6.2.2 Boundary Value Analysis (BVA)

According to Boris Beizer (1990), “Bugs lurk in corners and congregate at boundaries”. Most of the programmers mistakes are often appear at the boundaries of equivalence class. Because boundary values are not defined clearly or programmers are misunderstand that boundary value. (Andreas S, Tilo L and Hans S, 2007) Boundary value includes minimum values, maximum values, typical values and error values of the equivalence class. Therefore each boundary values have three test cases.

In many cases, a real boundary value does not exist because the boundary value belongs to other equivalence class. For that case it can be sufficient to test inside the equivalence class and outside the equivalence class. (Andreas S, Tilo L and Hans S, 2007)

6.2.3 Decision Table Testing

A decision tables are recorded for complex business rules that are implemented in the programs/modules of the system. (Laurie Williams, 2006) Decision table is the best way to deal with combination of inputs which produce different results.

Decision table has two parts - condition parts and action parts. Each condition represents possible input and combinations of conditions define a set of alternatives. For each alternative, a test action should be considered. (Jean-Claude Vauthier)

Decision table testing is the most suitable for applications - where there are many decision making, calculations involve subset of inputs variable, cause and effect relationship between input and output and complex logic computation.

6.2.4 Orthogonal Arrays Testing Strategy (OATS)

“Orthogonal Arrays Testing Strategy (OATS) is a systematic, statistical way of testing.” (Wiki) In addition, OATS is a value pair-wise combination to provide representative coverage. OATS can apply user interface testing, integration testing and regression testing.

OATS is suitable when test the many possible combinations of settings or components. Furthermore it is efficient and can cover all combination of variables with fewer test cases. (Jeremy M. Harrell, 2001)

7 Test Management Challenges

There are many obstacle software developments. The following are challenges for test management. (Chip Davis, 2006)

Not enough time to test

Time constraints are critical for software testing because most of the software projects cannot give sufficient time in the development lifecycle. The effects of this obstacle on test management are changing tasks, making changing priorities continuously and reduced data. The challenge is how to manage to get enough time to test.

Not enough resources to test

Because of the time constraints, right resources are difficult to get for software testing. Sometimes resource needs to be shared with other project. The effects of this obstacle on test management are delays, difficulties upon hardware and human resources.

Testing teams are not always in one place

Testing teams is not possible at the same place even testing resources are available. It become challenges that how the project can maximize efficiency with geographically obstacles. Some time, it can conflict between tester and developer within the same place.

Difficulties with requirements

The effective of test management is to seamless access to the changing system and business requirement. This is the challenge of test management because it is difficult with the requirement such as which one need to test first and to be completed based on the requirement as well as need to consider the priority, status and other attributes.

Reporting the right information

After testing finished, there is no bug. It does not mean software is perfect. Some time project stakeholders give too little information or too much information and obstruct share information to different roles in different locations. The challenges are how to arrange information and in what format, which is flexibility and capability in providing a wide range of reporting formats.

8 Conclusion

To summary, firstly we described how to implement testing by using test management which covers four states of test management framework from test strategy until test execution and implementation. Good test strategy guide how approach the testing within the time line. Besides without the test plan, it is not possible to do test execution because test plan give clear outline to do testing such as areas of testing, timing and responsibility for tester. Moreover roles and responsibilities are important for test team so that right person with their right position can evaluate their effectiveness. In addition, recommendation for test execution provides tester should not be programmer at execution time and test environment must be separate from development environment to avoid conflict between tester and developer. Lastly we discussed what case make obstacles to develop the software and it become challenges of test management.. After we learnt, we understand that every software process should do proper test management to improve the productivity, time, cost, and provide the final goal of reliable product.

Source: Essay UK - http://www.essay.uk.com/free-essays/information-technology/software-development-life-cycle.php



About this resource

This Information Technology essay was submitted to us by a student in order to help you with your studies.


Search our content:


  • Download this page
  • Print this page
  • Search again

  • Word count:

    This page has approximately words.


    Share:


    Cite:

    If you use part of this page in your own work, you need to provide a citation, as follows:

    Essay UK, Software development life cycle. Available from: <https://www.essay.uk.com/free-essays/information-technology/software-development-life-cycle.php> [27-05-20].


    More information:

    If you are the original author of this content and no longer wish to have it published on our website then please click on the link below to request removal: