Типовая задача собеседования — протестировать лифт. И почему лифты пробивают крышу
Invite pending
Многие наверное видели как скоростной лифт ударяется в крышу. Кто не видел вот:
http://www.youtube.com/watch?v=QSLa4yUyHH0
Когда лифт тестируют тестировщики, то они разбивают задачу на классы эквивалентности. Лифт ездит с 1 по последний этаж, с последнего по первый, и в середине, скажем с 3 по 6. Но мало какой тестировщик, тем более проводящий собеседование, задумывается над тем, что лифт это физический объект, которому нужно замедляться и разгоняться.
Вот, например, едет лифт с 3 по 6 этаж. Чуть больше одного этажа он разгоняется, затем работает в режиме постоянной скорости поездки, после чего переходит к режиму остановки. Три отдельных программных модуля:
1. Разгон с нуля до транспортировочной скорости
2. Транспортировка
3. Торможение с транспортировочной скорости до нуля.
А если по этой схеме лифт поедет с 3 по 4 этаж? Разгон до транспортировочной скорости произойдет выше 4-го этажа. И если условие о переходе к этапу торможения находится в этапе транспортировки, а в этапе разгона оно отсутствует, то лифт попросту не встретится с условием остановки, и в итоге хорошо если будет остановлен крышей, как в примере с тем небоскребом из видео.
http://www.youtube.com/watch?v=QSLa4yUyHH0
Когда лифт тестируют тестировщики, то они разбивают задачу на классы эквивалентности. Лифт ездит с 1 по последний этаж, с последнего по первый, и в середине, скажем с 3 по 6. Но мало какой тестировщик, тем более проводящий собеседование, задумывается над тем, что лифт это физический объект, которому нужно замедляться и разгоняться.
Вот, например, едет лифт с 3 по 6 этаж. Чуть больше одного этажа он разгоняется, затем работает в режиме постоянной скорости поездки, после чего переходит к режиму остановки. Три отдельных программных модуля:
1. Разгон с нуля до транспортировочной скорости
2. Транспортировка
3. Торможение с транспортировочной скорости до нуля.
А если по этой схеме лифт поедет с 3 по 4 этаж? Разгон до транспортировочной скорости произойдет выше 4-го этажа. И если условие о переходе к этапу торможения находится в этапе транспортировки, а в этапе разгона оно отсутствует, то лифт попросту не встретится с условием остановки, и в итоге хорошо если будет остановлен крышей, как в примере с тем небоскребом из видео.