Professional Documents
Culture Documents
by
TABLE OF CONTENTS BLACK BO X TESTING VERSUS W HITE BO X TESTING ............ 2 OVERVIEW ................................................................................................ 2
Black box testing ........................................................................................... 2 White box testing .......................................................................................... 2
AGILE SOFTW ARE DEVELOPM ENT M ODEL .......................... 5 OVERVIEW ................................................................................................ 5 FURTHER DESCRIPTION .............................................................................. 6 AGILE AND WATERFALL ............................................................................. 7 REFERENCES ............................................................................................. 8
Nauman Mithani
CF 109 : Unit 1 : Assignment 1b inputs. The test is the mechanism or the path of the code that leads to its respective output. Determination of all valid and invalid inputs for a software may be considered White box testing as it requires knowledge of the implementation of the underlying code. In contrast to Black boxs predominant applicability, White box testing is applicable mostly to lower levels such as Unit and Integration Testing.
COMPARISON OF BLACK AND WHITE BOX TESTING BLACK BOX TESTING: ADVANTAGES
1. Absence of bias: The designer/programmer and tester are two independent parties with independent objectives. 2. Quicker development (of tests): Knowledge and understanding of internal structure is not required since only the external front-end functions are tested. 3. Lower costs: Specific knowledge expertise is not required. 4. Simplicity: In the case of large or complex applications, the inherent nature of Black box testing offers simplification by verifying the appropriate outputs received based on the inputs.
Nauman Mithani
In reality, Grey box testing methods, a combination of both, are commonly employed.
Nauman Mithani
OVERVIEW
The Agile Software Development Model (approach or methodology) is one where software development is iterative, incremental and evolutionary. This term was introduced in 2001 in the Agile Manifesto by its lead proponents. Under this approach, software developers are (self-)organised into crossfunctional teams which then focus on their respective modules. It promotes a time-boxed iterative approach and evolutionary development. This approach dynamically accommodates changes in the user requirements and changes are made as the development progresses/evolves. The Manifesto cites the following points as its core philosophy: Organisation and interactions: Self-organisation and motivation are key aspects, and where the environment promotes interactions such as co-location (in-person conversation) and pair programming. Working software: In meetings or presentations to the client, working software is far more practically useful and welcome measure of progress. Client collaboration: not all requirements of the client may be collected at the start of the software development AND/OR requirements may change (evolve) over the course of the development; therefore, involvement of and cooperation with the client is crucial. Rapid response to change and continuous development are key features of the Agile approach. Increments and iterations: further functioning modules are added and delivered frequently.
Nauman Mithani
FURTHER DESCRIPTION
The Agile methodology functions by dividing the software development project into smaller tasks and accomplishes them in an incremental manner. Planning is short-term where the iteration time-boxes are of 1 to 4 weeks in duration with the objective of implementing or adding certain new functions (increments) or correcting existing ones. Such an iteration time-box is thus also known as Sprint. During each sprint, cross-functional teams work simultaneously on all aspects such as planning, analysis of requirements, design, coding and testing (unit and acceptance). At the conclusion of each sprint, the software that has incorporated the incremental change is demonstrated to the client. This way, the project can adapt better to desired changes or corrections.
During the planning stages of the project, the Product Backlog list is created, comprising all requirements known at the time. The requirements are then prioritised and the required resources estimated. The Product Backlog is dynamic and is subject to new items and details, as well as revisions or updates of priorities and estimations of required resources. The Backlog is reviewed by the development team at every sprint.
Communication under the Agile method involves routine daily in-person meetings. The meetings are conducted at the same time and place everyday and involve the participants remaining standing for the duration; this ensures the meetings are brief (15 min. maximum). Thus, the routine and brief nature of these meetings have lent it the term (daily) scrum meetings . During the scrum meetings, the team members discuss their accomplishments over the last day, their objectives for the current day and their challenges. A characteristic feature of the Agile daily scrum is the inclusion of two types of personnel: (1) Scrum Master and (2) customer representative. The Scrum Master is the facilitator of the scrum meetings who ensures it is productive and flows smoothly. He does not assign tasks to the members of the team as that is a team responsibility, rather assist the team members in tackling their challenges. The Customer Representative is the liaison between the customer and the development team. It is his role to maintain focus on the requirements and Nauman Mithani
CF 109 : Unit 1 : Assignment 1b serves as a source of reference in that capacity. He is also the keeper of the Product Backlog.
In cases where the environment is stable and where there is no room for deviation from the predetermined design, Waterfall is apt. It is also better suited to cases where frequent interactions with the customer is not possible or when possibility exists that developers may quit the project midway. Waterfall is also prominent in safety-critical, documentation-heavy and modelling-dependant environments. Since the Waterfall model places its stress on the end-product vs. the process, it has maintained its presence in environments where safety and quality are paramount over speed.
It must be ever borne in mind that neither model is perfect; both are sensitive to the developers that practise it and the contexts in which they are deployed.
Nauman Mithani
REFERENCES
Abrahamsson P. Agile software development methods : review and analysis. VTT; 2002. Available from: http://www.worldcat.org/isbn/9513860108. Beck, Kent. Manifesto for Agile Software Development; 2001. Ambler SW. Examining the Agile Manifesto; 2011. Larman C, Basili VR. Iterative and incremental developments. a brief history. Computer. 2003 Jun;36(6):4756. Available from: http://dx.doi.org/10.1109/MC.2003.1204375.
Nauman Mithani